兄弟们,最近在微调一个7B的基座模型,踩了不少坑,分享一下硬核经验,希望对最近入坑的兄弟有点参考价值。🚀
1. **数据质量 > 数量**
别傻乎乎堆百万条数据。我试过用10万条清洗过的领域对话数据微调,效果吊打100万条没去噪的。关键是要做数据去重、标签对齐,特别是长尾问题,宁可少而精,别多而杂。推荐用text2sql那套方案清洗。
2. **LoRA vs 全量微调**
现在资源受限,LoRA是最香的。但注意:rank值别拍脑袋设8或16。我实测rank=32收敛更快,但显存够的话建议直接跑全量微调前几层(比如冻结embedding和lm_head),效果提升明显,显存多耗10%左右。
3. **学习率 + 调度器**
别用默认0.001。我踩过坑:模型直接训崩。推荐cosine衰减配合warmup,初始lr设5e-5,batch size 8-16最稳。特别是多轮对话,要控制好梯度累积步数,不然模型会“忘”掉之前的知识。
最后问一嘴:你们微调时,数据清洗都怎么处理多轮对话里的system prompt?我试过几种方案,效果差异挺大。欢迎留言聊聊你的经验。💬 |