如何从本地文件加载LoRA微调后的PeftModel而非Hugging Face平台?
本地加载LoRA微调后的Llama模型
你只需要将代码中的peft_model_id替换为本地存放adapter_config.json和adapter_model.bin文件的文件夹路径即可,无需上传到Hub。具体操作如下:
先确认两个LoRA文件在同一个本地目录中,比如将它们放在
./local_lora_adapter文件夹下,目录结构如下:local_lora_adapter/ ├── adapter_config.json └── adapter_model.bin修改加载代码,把Hub模型ID替换为本地目录路径:
from peft import PeftModelForCausalLM from transformers import LlamaForCausalLM import torch # 加载基础Llama模型,这部分和原有代码一致 model = LlamaForCausalLM.from_pretrained( "<model_name>", torch_dtype=torch.float16, device_map='auto', llm_int8_enable_fp32_cpu_offload=True ) # 替换为本地LoRA文件所在的文件夹路径(相对/绝对路径均可) local_peft_path = "./local_lora_adapter" peft_model = PeftModelForCausalLM.from_pretrained(model, local_peft_path)(可选)如果需要合并LoRA权重到基础模型,得到可独立加载的完整模型,可执行以下操作:
# 合并权重并卸载LoRA模块 merged_model = peft_model.merge_and_unload() # 将合并后的模型保存到本地 merged_model.save_pretrained("./merged_llama_model")之后直接用
LlamaForCausalLM.from_pretrained("./merged_llama_model")就能加载完整模型,无需再处理单独的LoRA文件。
注意事项
- 确保本地路径填写正确,系统能定位到目标文件夹及文件
- 基础模型的版本要和微调时使用的版本保持一致,避免兼容性问题
内容的提问来源于stack exchange,提问作者a7777777
相关产品推荐
相关产品推荐

