You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加载本地保存的LoRA权重用于模型推理?

本地加载LoRA适配器进行推理的正确方法

你之前的代码问题在于,get_peft_model是用来初始化新的LoRA训练配置的,不会加载你已保存的训练好的权重。要加载本地的LoRA适配器文件,应该用PEFT库的PeftModel.from_pretrained方法,具体操作如下:

操作步骤

  • 先加载训练LoRA时使用的基础预训练模型
  • 再通过PeftModel.from_pretrained将基础模型与本地LoRA适配器的权重绑定

完整代码示例

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

# 加载基础模型(替换为你训练时用的模型名称或本地路径)
base_model = AutoModelForCausalLM.from_pretrained(
    "原模型名称或本地路径",
    device_map="auto"  # 根据硬件调整,比如指定"cuda"或"cpu"
)
tokenizer = AutoTokenizer.from_pretrained("原模型名称或本地路径")

# 加载本地LoRA适配器(传入适配器文件所在的文件夹路径)
model = PeftModel.from_pretrained(base_model, "/path/to/adapter")

# 推理示例
inputs = tokenizer("你的输入文本", return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))

关键注意事项

  • 确保/path/to/adapter文件夹下包含adapter_model.bin和adapter_config.json文件(文件名需符合PEFT默认命名,若自定义过文件名需手动指定)
  • 基础模型必须和训练LoRA时使用的模型完全一致,否则会出现权重不匹配问题
  • 若训练的是其他任务类型(如序列分类),替换对应的AutoModelForXXX类即可

内容的提问来源于stack exchange,提问作者ASierra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:49:54