兄弟们,最近搞了波LLaMA-2和ChatGLM3的微调,踩了不少坑,分享点硬核经验,省得你们再走弯路。
先说数据集。别信那些“万能数据集”的鬼话,我试过用通用对话库调代码模型,结果输出全是废话。👎 一定要筛选高质量、垂直领域的数据,至少1000条,清洗掉噪声,比如重复、错别字。我用alpaca格式,但自己加了字段控制输出长度,效果直接提升20%。
再说学习率和训练轮次。新手最容易犯的错:lr开太高,1e-4以上,模型直接崩。我推荐3e-5起步,用OneCycle学习率调度器,前10%轮次预热,后面衰减。轮次别超过3-5,否则过拟合,尤其小模型。
别忘了验证集。我每200步跑一次评估,看loss和BLEU。如果loss下降但BLEU不动,说明学偏了,赶紧调数据或回滚。😅
最后是部署。微调后模型体积暴增?用LoRA或QLoRA,节省80%显存,推理时合并权重即可。我搭配vLLM做推理框架,吞吐量直接起飞。
提问时间:你们微调时,最头疼的坑是啥?是数据清洗还是训练收敛?评论区聊聊,我帮你们诊断。 |