假設你有兩部分:
- 一個是原始大模型(base?model)
- 一個是保存的 LoRA?Adapter(adapter_config.json?+ adapter_model.bin)
不合并的情況下推理方法
你可以用?peft?的方式加載?LoRA?Adapter,推理時這樣寫:
from transformers import AutoModel, AutoTokenizer
from peft import PeftModel# 1. 加載原始大模型
base_model = AutoModel.from_pretrained("原始模型路徑",trust_remote_code=True
)
tokenizer = AutoTokenizer.from_pretrained("原始模型路徑",trust_remote_code=True
)# 2. 加載 LoRA Adapter
model = PeftModel.from_pretrained(base_model,"lora_adapter保存路徑"
)# 3. 推理
inputs = tokenizer("你的輸入", return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.decode(outputs[0]))
- "原始模型路徑":假設就是你原始?ChatGLM-3?6B?的本地路徑
- "lora_adapter保存路徑":就是你訓練保存的 lora?目錄
這樣就可以直接用 LoRA?微調后的模型推理,無需合并!