mirror of
https://github.com/KoboldAI/KoboldAI-Client.git
synced 2025-06-05 21:59:24 +02:00
Changed alt_multi_gen to experimental and UI2 only
This commit is contained in:
10
aiserver.py
10
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)
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user