兄弟们,最近搞了个LLaMA-2的LoRA微调项目,踩了不少坑,今天聊聊干货,不搞虚的。
先说数据清洗:别拿原始语料直接喂,至少要去重、去噪。我试过用中文百科数据,结果模型老输出“你知道吗?”这种废话,后来加了规则过滤和人工标注,效果才起来。建议用ChatGPT生成一些高质样本,但一定得人工校验,否则模型容易学会“水话”。
再说参数调优:LoRA的rank值别迷信默认,我试过r=8和r=64,结果64反而过拟合严重。learning rate从5e-4降到1e-4,loss才稳定下来。另外,batch size别太大,显存不够就用gradient accumulation,我一般设8*4步。
最后是部署坑:微调完导出模型时,记得合并权重。有些框架的转换脚本有bug,导致推理结果全乱码。我习惯在本地跑几个case验证,再上线。
问大家个问题:你们微调时,遇到过loss震荡不收敛的情况吗?怎么处理的?评论区聊聊。 |