From 7521091e7ca0a4206c6df36c62a5dfb59e737f9d Mon Sep 17 00:00:00 2001 From: ebolam Date: Wed, 21 Dec 2022 10:25:50 -0500 Subject: [PATCH] Changed alt_multi_gen to experimental and UI2 only --- aiserver.py | 10 +++++----- gensettings.py | 4 +++- koboldai_settings.py | 10 +++++----- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/aiserver.py b/aiserver.py index 69acfac1..a94e7ba6 100644 --- a/aiserver.py +++ b/aiserver.py @@ -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) diff --git a/gensettings.py b/gensettings.py index 13d115e0..f2f0cb44 100644 --- a/gensettings.py +++ b/gensettings.py @@ -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, diff --git a/koboldai_settings.py b/koboldai_settings.py index 1012a45a..d2eee277 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -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