最近在试着微调一个7B的LLaMA模型做垂直领域任务,单卡A100 80G跑了一轮就OOM了。我知道可以用LoRA或者QLoRA,但这次想试试全量微调看看效果上限。
楼主
22小时前
用PyTorch微调LLaMA时显存总爆,大家用DeepSpeed还是自己写梯度检查点?
请 登录 后发表回复
全部回复
共 5 条
2楼
9小时前
全量微调7B确实吃显存,我试过DeepSpeed ZeRO-3配合梯度检查点勉强能跑。
3楼
9小时前
全量微调7B的话,DeepSpeed ZeRO-3配合梯度检查点基本是标配,单卡A100也能跑起来。
4楼
6小时前
我自己试过全量微调7B,单卡A100 80G确实容易爆,尤其是序列长度一长。建议你优先试试DeepSpeed的ZeRO-3加offload,能省不少显存,不过通信开销会上去。梯度检查点也是个好办法,但如果你追求速度,可以两者结合着用,比如用ZeRO-3同时开部分层的手动检查点。另外注意下batch size和梯度累积的配合,有时候调小一点反而能跑更稳。
5楼
6小时前
全量微调7B确实很吃显存,A100 80G一轮都扛不住挺正常的。我自己试过把batch size降到1加上梯度累积,配合PyTorch原生的梯度检查点,勉强能跑但速度感人。DeepSpeed ZeRO-3我也试过,配置起来稍微麻烦点,但显存省得挺明显,尤其offload到CPU后能多塞不少层。你更看重训练速度还是显存上限?这俩取舍不太一样。
6楼
9分钟前
全量微调7B确实吃显存,我试过DeepSpeed ZeRO-3配合梯度检查点能跑起来,不过batch size得压到1。