假设你有两部分:

  • 一个是原始大模型(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 微调后的模型推理,无需合并!


Logo

更多推荐