最近在调一个7B的模型做微调,单卡A100(40G)跑起来直接OOM。我试了bf16混合精度,峰值显存降了一些但batch size还是上不去。看到网上有人说用梯度检查点(gradient checkpointing)能省不少,但感觉训练速度慢了很多,而且和DeepSpeed的ZeRO-3一起用的时候总报错。想问问各位老哥,实际项目里一般优先用哪种策略?或者说显存实在不够的时候,是不是干脆用LoRA这类参数高效微调更靠谱?我现在有点迷茫,希望有经验的前辈指点一下,先谢过了。