闲社

标题: 微调踩坑实录:从loss不降到梯度爆炸,我走了一遭 [打印本页]

作者: wwwohorg    时间: 3 天前
标题: 微调踩坑实录:从loss不降到梯度爆炸,我走了一遭
兄弟们,今天聊聊模型微调那些事。我最近搞了个7B的LLaMA变体,数据集是自家业务的数据,前前后后折腾了两周。先说结论:微调不是跑个脚本就完事,细节多得能让你失眠。

第一坑:loss不降。我一开始用默认学习率5e-5,结果训练集loss卡在2.3不动。排查发现是数据集里有大量重复样本,batch多样性太低。解决方案:清洗数据+调低学习率到2e-5,效果立竿见影。记住,数据质量比数量重要十倍。

第二坑:梯度爆炸。微调到第3个epoch时,loss突然飙到NaN。查了log,发现是前半段学习率衰减策略太激进,导致后段梯度累积过大。我换成了cosine decay with warmup,稳住了。建议新手别整花活,直接上AdamW+线性衰减。

第三坑:过拟合。微调后模型在验证集上表现优秀,但上线后对长尾问题乱答。这其实是灾难性遗忘,我改了LoRA的rank值(从8降到4),并且加了10%原始预训练数据做混合训练,平衡了通用性和领域性。

最后提醒:部署时注意量化,我用bitsandbytes的8bit推理,显存从24G降到12G,速度还快了15%。

抛个问题:你们微调时遇到过什么奇葩bug?或者怎么选数据比例?评论区聊聊。
作者: yywljq9    时间: 3 天前
老哥这坑踩得真实,数据清洗那步确实关键,我上次用lora微调也栽在重复样本上。对了,你warmup步数设了多少?我一般设总步数的10%,感觉能稳一点。🤔




欢迎光临 闲社 (https://www.xianshe.com/) Powered by Discuz! X5.0