预训练工程模块四 · 训练显存计算重点导读 · 10 分钟
训练显存到底怎么估:参数、梯度、优化器态、激活
「这个模型要多大显存才能训练?」是成人组必考的计算题,也是工程里天天遇到的问题。这节课给你一个能上手算的显存清单。
训练时显存主要被四块吃掉:模型参数、梯度、优化器状态、以及前向留下的激活。用混合精度 + Adam 训练时,有一个好记的经验公式。
显存 参数量 字节 激活
Adam 混合精度:fp16 参数 2B fp16 梯度 2B fp32 参数副本/动量/方差 B/参数
Adam 混合精度:fp16 参数 2B fp16 梯度 2B fp32 参数副本/动量/方差 B/参数
- 参数:1B 参数 fp16 ≈ 2 GB。
- 梯度:与参数同量级,fp16 再 ≈ 2 GB。
- 优化器态(Adam):fp32 主副本 + 一阶/二阶动量 ≈ 12 GB(每参数约 12B),故常按「参数 × 16B」估显存下限。
- 激活:随 batch × 序列长度增长,可用梯度检查点大幅压缩。
💡 记住这条:不含激活,训练 1B 参数模型光「参数+梯度+优化器态」就要约 16 GB。这解释了为什么大模型必须上 ZeRO / FSDP 把这些切到多卡。