initial commit
This commit is contained in:
28
Merger.py
Normal file
28
Merger.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from Context import Context
|
||||
from ModelLoader import ModelLoader
|
||||
from transformers import AutoTokenizer
|
||||
from peft import PeftModel
|
||||
|
||||
class Merger:
|
||||
def mergeAndStore(self, context: Context):
|
||||
if not context.mergeFull:
|
||||
return
|
||||
if not context.storeAdapter:
|
||||
raise Exception("Configuration problem: mergeFull requires storeAdapter")
|
||||
|
||||
print("Reloading original model on CPU")
|
||||
baseModel = ModelLoader().load(context.locBaseModel, True, False, context)
|
||||
peftModel = PeftModel.from_pretrained(baseModel, context.locAdapter)
|
||||
|
||||
print("Merging")
|
||||
mergedModel = peftModel.merge_and_unload()
|
||||
|
||||
print("Storing model")
|
||||
mergedModel.save_pretrained(save_directory = context.locFull)
|
||||
|
||||
print("Storing tokenizer")
|
||||
tokenizer = AutoTokenizer.from_pretrained(
|
||||
context.locBaseModel,
|
||||
trust_remote_code = True)
|
||||
tokenizer.save_pretrained(context.locFull)
|
||||
|
||||
Reference in New Issue
Block a user