兄弟们,最近又帮几个群友debug了LoRA微调,发现很多人还在重复我两年前踩过的坑。今天不扯虚的,直接上干货。
**1. 数据清洗比你想象的更重要**
别信那些“喂数据就能出奇迹”的毒鸡汤。我见过有人拿未去重的对话文本跑ChatGLM微调,结果模型学会复读机了。建议用text-dedup跑一遍去重,最少要剔除85%的重复样本,不然loss降不下去。
**2. LoRA rank不是越大越好**
很多新手上来就rank=64甚至128,结果显存直接爆炸。实测7B模型做指令微调,rank=8-16足够,再高就是浪费。记住:LoRA是低秩适配,不是全量微调。
**3. QLoRA的NF4量化不能随便用**
如果你是做domain-specific微调(比如医疗、法律),NF4会损失细节,最后模型像喝醉了说胡话。老老实实BF16,或者用GPTQ 4bit,至少保留80%的效果。
**4. 学习率调度器是隐藏BOSS**
别再用固定lr了!用cosine decay带warmup,前5%步数线性提升到5e-5,再衰减到1e-5。我试过这招,收敛速度直接快30%。
最后问个硬核的:你们在实际部署微调模型时,遇到过哪些反直觉的bug?比如quantization后推理崩了,或者prompt格式不兼容。来评论区battle一下,我拿我的踩坑笔记换你的经验💥 |