Changed alt_multi_gen to experimental and UI2 only

This commit is contained in:
ebolam
2022-12-21 10:25:50 -05:00
parent cd24766bf0
commit 7521091e7c
3 changed files with 13 additions and 11 deletions

View File

@@ -2306,7 +2306,7 @@ def patch_transformers():
option = koboldai_vars.actions.actions[koboldai_vars.actions.action_count+1]['Options'][x]
if option['Pinned'] or option["Previous Selection"] or option["Edited"]:
option_offset = x+1
batch_offset = int((koboldai_vars.generated_tkns-1) / koboldai_vars.genamt) if koboldai_vars.alt_multi_gen else 0
batch_offset = int((koboldai_vars.generated_tkns-1) / koboldai_vars.genamt) if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 0
for batch_index, batch in enumerate(scores):
probs = F.softmax(batch, dim = -1).cpu().numpy()
@@ -2489,7 +2489,7 @@ def patch_transformers():
self.halt = not koboldai_vars.lua_koboldbridge.generating
koboldai_vars.lua_koboldbridge.regeneration_required = False
for i in range(koboldai_vars.numseqs) if not koboldai_vars.alt_multi_gen else range(1):
for i in range(koboldai_vars.numseqs) if not (koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features) else range(1):
koboldai_vars.lua_koboldbridge.generated[i+1][koboldai_vars.generated_tkns] = int(input_ids[i, -1].item())
return self.regeneration_required or self.halt
@@ -5400,7 +5400,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
numseqs = koboldai_vars.numseqs
total_gens = None
for i in range(koboldai_vars.numseqs if koboldai_vars.alt_multi_gen else 1):
for i in range(koboldai_vars.numseqs if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 1):
while True:
# The reason this is a loop is due to how Dynamic WI works. We
# cannot simply add the WI to the context mid-generation, so we
@@ -5413,7 +5413,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
max_new=koboldai_vars.genamt,
do_streaming=koboldai_vars.output_streaming,
do_dynamic_wi=koboldai_vars.dynamicscan,
batch_count=numseqs if not koboldai_vars.alt_multi_gen else 1,
batch_count=numseqs if not (koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features) else 1,
# Real max length is handled by CoreStopper.
bypass_hf_maxlength=koboldai_vars.dynamicscan,
is_core=True,
@@ -5425,7 +5425,7 @@ def core_generate(text: list, _min: int, _max: int, found_entries: set, is_core:
already_generated += len(genout[0])
try:
assert already_generated <= koboldai_vars.genamt * koboldai_vars.numseqs if koboldai_vars.alt_multi_gen else 1
assert already_generated <= koboldai_vars.genamt * koboldai_vars.numseqs if koboldai_vars.alt_multi_gen and koboldai_vars.experimental_features else 1
except AssertionError:
print("AlreadyGenerated", already_generated)
print("genamt", koboldai_vars.genamt)

View File

@@ -414,6 +414,7 @@ gensettingstf = [
"ui_level": 2
},
{
"UI_V2_Only": True,
"uitype": "toggle",
"unit": "bool",
"label": "Alt Multi Gen",
@@ -427,7 +428,8 @@ gensettingstf = [
"sub_path": "Other",
"classname": "model",
"name": "alt_multi_gen",
"ui_level": 2
"ui_level": 2,
"extra_classes": "var_sync_alt_system_experimental_features"
},
{
"UI_V2_Only": True,

View File

@@ -780,13 +780,13 @@ class model_settings(settings):
#Setup TQDP for token generation
elif name == "generated_tkns" and 'tqdm' in self.__dict__:
if value == 0:
self.tqdm.reset(total=self.genamt * (self.numseqs if self.alt_multi_gen else 1) )
self.tqdm.reset(total=self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1) )
self.tqdm_progress = 0
else:
self.tqdm.update(value-self.tqdm.n)
self.tqdm_progress = int(float(self.generated_tkns)/float(self.genamt * (self.numseqs if self.alt_multi_gen else 1))*100)
self.tqdm_progress = int(float(self.generated_tkns)/float(self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1))*100)
if self.tqdm.format_dict['rate'] is not None:
self.tqdm_rem_time = str(datetime.timedelta(seconds=int(float((self.genamt * (self.numseqs if self.alt_multi_gen else 1))-self.generated_tkns)/self.tqdm.format_dict['rate'])))
self.tqdm_rem_time = str(datetime.timedelta(seconds=int(float((self.genamt * (self.numseqs if self.alt_multi_gen and self.koboldai_vars.experimental_features else 1))-self.generated_tkns)/self.tqdm.format_dict['rate'])))
#Setup TQDP for model loading
elif name == "loaded_layers" and 'tqdm' in self.__dict__:
if value == 0:
@@ -1790,8 +1790,8 @@ class KoboldStoryRegister(object):
self.story_settings.gamesaved = False
def stream_tokens(self, text_list):
if len(text_list) > 1 or (self.koboldai_vars.alt_multi_gen and self.koboldai_vars.numseqs > 1):
if self.koboldai_vars.alt_multi_gen:
if len(text_list) > 1 or (self.koboldai_vars.alt_multi_gen and self.koboldai_vars.experimental_features and self.koboldai_vars.numseqs > 1):
if self.koboldai_vars.alt_multi_gen and self.koboldai_vars.experimental_features:
#since alt_multi_gen is really just several single gens the text list is always 1 deep, so we need some
#other way to figure out wich spot in our options list we're on. We'll figure it out by seeing how many
#tokens we generated vs how many each option should take