經過昨天的訓練,AI導遊已經成功地從問答資料集中學習到了新知識。但此時的模型還不是一個完整的獨立個體,它只是一個基底模型加上LoRA適配器。
要讓這個模型能夠在沒有PEFT環境下獨立運行,需要對她做一個:權重合併。這個過程就像是將LoRA學到的新知識,永久地寫入到Gemma模型的核心權重中。
我們會使用model.merge_and_unload()這個方法,它會自動完成LoRA權重與原始模型權重的合併,並釋放記憶體。
from peft import PeftModel
from transformers import AutoModelForCausalLM
# model 是PeftModel實例
model = model.merge_and_unload()
print("成功合併")
合併完成後,模型將不再需要PEFT函式庫來運行,成為一個可以直接使用的獨立模型。
最後將合併後的模型儲存到本地,使用model.save_pretrained()。這個儲存後的模型包含了所有微調後的權重。這不僅方便將模型部署到其他伺服器或裝置上,也讓分享訓練成果變得更簡單。
SAVE_PATH = "./gemma-travel"
# 儲存合併後的模型和 Tokenizer
model.save_pretrained(SAVE_PATH)
tokenizer.save_pretrained(SAVE_PATH)
print(f"已儲存")