基于LoRA的模型增量学习踩坑记录
最近在尝试用LoRA进行大语言模型微调,过程中踩了不少坑,分享一下避免大家走弯路。
环境准备
pip install peft transformers accelerate
核心代码实现
from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM
# 配置LoRA参数
lora_config = LoraConfig(
r=8,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.1,
bias="none",
task_type="CAUSAL_LM"
)
# 加载基础模型并应用LoRA
model = AutoModelForCausalLM.from_pretrained("bert-base-chinese")
model = get_peft_model(model, lora_config)
model.print_trainable_parameters()
常见问题
- 显存溢出:调低r值到4,增加gradient_accumulation_steps
- 训练效果差:target_modules选择不当,建议先用默认值测试
- 保存加载:使用model.save_pretrained("./lora_model")和PeftModel.from_pretrained()方法
实践建议
- 微调前先做预训练验证
- 选择合适的r值(通常4-16之间)
- 注意模型架构适配性

讨论