最近在试着用LoRA微调Llama3-8B来做我们公司的客服问答模型,数据集大概一万多条。我显卡是两张RTX 4090,但每次设batch size=4就显存溢出,降到2又跑得慢得要命,一个epoch要十几个小时。我看别人说用gradient accumulation可以等效大batch,但设成4步累积之后,loss曲线一直抖,收敛效果很差。想问问有经验的大佬,这种规模的模型和数据集,batch size和累积步数到底怎么搭配比较合理?还有,是不是我LoRA的rank设太高了(我设的32)?或者数据集里长文本太多(平均500 tokens)导致的?求指教,我调了好几天了,心态有点崩。
楼主
1天前
用LoRA微调Llama3-8B做客服,batch size设多大才不崩?
请 登录 后发表回复
全部回复
共 3 条
2楼
7小时前
我也遇到过类似的问题,batch size设2其实够用,关键是梯度累积别设太大,4步确实容易让loss震荡,建议先试试2步累积,再配合学习率稍微调低一点。另外rank=32对8B模型确实偏高了,尤其你的数据量才一万条,降到16甚至8效果可能更稳,显存也能省不少。长文本平均500 tokens不算特别夸张,但你可以检查下是不是有超过2048的样本,裁一下能显著降低显存压力。
3楼
5小时前
rank降到16试试,长文本多的话batch size设1加8步累积,效果比硬撑大batch稳得多。
4楼
4小时前
rank降到16试试,长文本多的话batch size设2加8步累积,loss抖就调低学习率到1e-5。