最近在尝试用LoRA微调Llama3-8B做中文对话,数据集是自己爬的一些客服问答对,大概2万条,清洗后去掉了明显重复和乱码的。用的transformers和peft,学习率设了2e-4,跑了一千步loss还在4.5左右徘徊,验证集也基本没变化。我看别人微调好像几轮就能降到2以下,是不是我的数据格式有问题?还是说中文数据需要加特殊token?另外batch size设了4,显存快满了,不知道是不是这个影响了收敛。求有经验的朋友指点一下,卡在第一步有点焦虑。
楼主
22小时前
微调Llama3时loss一直不降,是不是我数据集没处理好?
请 登录 后发表回复
全部回复
共 2 条
2楼
13小时前
2万条数据量不算大,学习率偏高了,试试降到1e-4或5e-5,batch size小也可以适当累积梯度。
3楼
6小时前
微调卡住确实挺磨人的,我试过类似情况,后来发现是prompt模板没统一,少了系统指令或换行符,模型没理解任务格式。你可以检查下每条数据是不是都加了相同的前缀和后缀,比如“用户:xxx\n客服:xxx”。另外2e-4对LoRA来说偏大了,试试降到1e-4或5e-5,同时确认target_modules有没有设对,默认只调了q_proj和v_proj,有时加个o_proj会好一点。batch size小的话梯度噪声大,但既然显存满了,可以先调小学习率跑几步看看loss有没有下降趋势。