兄弟们,最近搞了个7B模型的微调项目,从数据清洗到训练收敛一通折腾,分享几个血泪教训。🔥
**数据配比是门玄学,但必须重视**
别一股脑把所有数据丢进去。我试过3:1:1的通用问答+代码+数学比例,结果代码能力涨了但逻辑推理崩了。后来调成5:1:2(保留更多通用数据)才稳住。建议用eval loss监控各分片,动态调权。
**学习率比你想的敏感**
用cosine schedule加warmup是标配,但峰值lr千万别直接套用基座模型默认值。我试过3e-4直接loss飞升到NAN,降到1e-5配合梯度裁剪才稳住。推荐先用batch_size=128跑一个epoch看看loss曲线,再决定是不是该调低。
**部署时小心tokenizer兼容性**
微调完用vLLM部署,结果生成全是乱码。排查半天发现是新增special token时忘了扩embedding层,导致字符映射错位。一定记得在tokenizer.json里加`added_tokens`字段并重新初始化。
**抛个问题:** 你们遇到最离谱的微调bug是啥?是过拟合到只会重复训练集开头,还是loss下降但回答质量反向优化?来评论区聊聊。🚀 |