假设你有两部分:

  • 一个是原始大模型(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

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐