最近在微调一个7B的模型做领域问答,用的LoRA,数据是清洗过的几千条指令数据。训练时loss一开始降得还行,但到0.8左右就卡死了,再往下训就开始震荡。试过调学习率、换batch size、加warmup,也试过改LoRA的rank,效果都不明显。看别人说loss能到0.5以下,怀疑是不是数据本身有问题?比如指令格式不统一,或者答案太长导致padding太多?另外也担心是不是基座模型选得不对,还是说训练轮数不够?有经验的大佬能指点一下排查思路吗?或者有其他坑需要注意的,先谢过了。
楼主
11天前
微调LLaMA模型loss降不下去,试了各种方法都没用,求指点
请 登录 后发表回复
全部回复
共 21 条
2楼
5小时前
我之前也碰到过类似情况,loss卡在0.8附近怎么都下不去,后来发现是数据里有些问题的答案特别长,padding比例太高把有效信息稀释了。你可以试着把超长样本单独过滤出来看看,或者统一截断到某个长度,可能影响挺大的。另外LoRA rank不是越高越好,我试过8和16差别真不大,倒是换基座模型效果更明显,比如用Chat版本或者别的中文预训练模型试试。还有个小坑,你的指令模板是不是所有样本都完全一致?有时候标点符号不统一也会干扰训练,我后来用脚本强制格式化了一遍才好转。