From 752e19a2bb261fe8de365a9455f942bdd29d845b Mon Sep 17 00:00:00 2001 From: Gnome Ann <> Date: Wed, 10 Nov 2021 17:38:30 -0500 Subject: [PATCH 1/3] Fix vars.modeldim not always being set --- aiserver.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aiserver.py b/aiserver.py index 176d5acb..afa2d4be 100644 --- a/aiserver.py +++ b/aiserver.py @@ -637,12 +637,15 @@ if(not vars.model in ["InferKit", "Colab", "OAI", "ReadOnly"]): generator = model.generate elif(vars.breakmodel): # Use both RAM and VRAM (breakmodel) model = AutoModelForCausalLM.from_pretrained(vars.model) + vars.modeldim = int(model.transformer.hidden_size) device_config(model) else: model = AutoModelForCausalLM.from_pretrained(vars.model) + vars.modeldim = int(model.transformer.hidden_size) generator = model.generate else: model = AutoModelForCausalLM.from_pretrained(vars.model) + vars.modeldim = int(model.transformer.hidden_size) generator = model.generate # Suppress Author's Note by flagging square brackets (Old implementation) From 11b0291bc4e9cac0e2fa2956bede010016d41704 Mon Sep 17 00:00:00 2001 From: Gnome Ann <> Date: Wed, 10 Nov 2021 17:47:14 -0500 Subject: [PATCH 2/3] Use model.transformer.embed_dim if model.transformer.hidden_size doesn't exist --- aiserver.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/aiserver.py b/aiserver.py index afa2d4be..0f908021 100644 --- a/aiserver.py +++ b/aiserver.py @@ -591,6 +591,12 @@ if(not vars.model in ["InferKit", "Colab", "OAI", "ReadOnly"]): return stopping_criteria transformers.generation_utils.GenerationMixin._get_stopping_criteria = new_get_stopping_criteria + def get_hidden_size_from_model(model): + try: + return int(model.transformer.hidden_size) + except: + return int(model.transformer.embed_dim) + # If custom GPT Neo model was chosen if(vars.model == "NeoCustom"): model_config = open(vars.custmodpth + "/config.json", "r") @@ -632,20 +638,20 @@ if(not vars.model in ["InferKit", "Colab", "OAI", "ReadOnly"]): if(vars.hascuda): if(vars.usegpu): model = AutoModelForCausalLM.from_pretrained(vars.model, device=0) - vars.modeldim = int(model.transformer.hidden_size) + vars.modeldim = get_hidden_size_from_model(model) model = model.to(0) generator = model.generate elif(vars.breakmodel): # Use both RAM and VRAM (breakmodel) model = AutoModelForCausalLM.from_pretrained(vars.model) - vars.modeldim = int(model.transformer.hidden_size) + vars.modeldim = get_hidden_size_from_model(model) device_config(model) else: model = AutoModelForCausalLM.from_pretrained(vars.model) - vars.modeldim = int(model.transformer.hidden_size) + vars.modeldim = get_hidden_size_from_model(model) generator = model.generate else: model = AutoModelForCausalLM.from_pretrained(vars.model) - vars.modeldim = int(model.transformer.hidden_size) + vars.modeldim = get_hidden_size_from_model(model) generator = model.generate # Suppress Author's Note by flagging square brackets (Old implementation) From 1fadcbe1e3e0cd4f7b57a3151b980f0f0f7b5357 Mon Sep 17 00:00:00 2001 From: Gnome Ann <> Date: Thu, 11 Nov 2021 00:18:46 -0500 Subject: [PATCH 3/3] Send allowsp command on connect instead of on startup --- aiserver.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aiserver.py b/aiserver.py index 0f908021..cd49b249 100644 --- a/aiserver.py +++ b/aiserver.py @@ -727,6 +727,8 @@ def do_connect(): emit('from_server', {'cmd': 'connected', 'smandelete': vars.smandelete, 'smanrename': vars.smanrename}) if(vars.remote): emit('from_server', {'cmd': 'runs_remotely'}) + if(vars.allowsp): + emit('from_server', {'cmd': 'allowsp', 'data': vars.allowsp}) if(not vars.gamestarted): setStartState() @@ -970,8 +972,6 @@ def get_message(msg): #==================================================================# def setStartState(): txt = "Welcome to KoboldAI! You are running "+getmodelname()+".
" - if(vars.allowsp): - emit('from_server', {'cmd': 'allowsp', 'data': vars.allowsp}, broadcast=True) if(not vars.noai): txt = txt + "Please load a game or enter a prompt below to begin!
" else: