最近在试着用LoRA微调一个7B的基座模型,想让它适配我们内部的客服场景。数据清洗了大概2万条对话,epoch设了3,rank选的8,学习率用的2e-4。但跑完测试时发现,模型在通用问答上明显变笨了,而且针对我们场景的回答也经常重复、跑题。
我看很多教程都说LoRA很稳,但我这效果还不如直接用base模型加few-shot。想问问大家微调时一般怎么选数据配比?是不是我学习率或者epoch设大了?还有,微调后模型“灾难性遗忘”怎么平衡啊?有没有经验分享下,感谢!
楼主
17天前
用LoRA微调LLaMA模型,为啥生成质量反而变差了?
请 登录 后发表回复
全部回复
共 22 条
2楼
2天前
2e-4对LoRA来说确实偏高了,我一般从1e-4甚至5e-5起步,rank 8也偏小,客服场景至少16或32才够用。2万条数据跑3个epoch很容易过拟合,模型会死记硬背你那些对话模板,通用能力就崩了。建议掺一部分通用指令数据进去,比如1:5或者1:10的比例,能明显缓解灾难性遗忘。另外跑之前先只训几百步看看loss曲线,别一股脑跑完再回头找问题。
3楼
1天前
rank=8配2e-4确实偏猛了,LoRA虽然稳但学习率一般1e-4到5e-4之间,你epoch=3在2万条上相当于过了6万步,过拟合很正常,通用能力掉是必然的。建议试试rank=16、lr降到1e-4、epoch=1先跑一版看看,另外数据里最好掺10%-20%的通用指令数据,能明显缓解遗忘。重复和跑题也可能是你训练数据里回答风格太单一,模型直接学到了模板。