概念界定

Batch size 决定每一步用多少样本估计梯度,梯度噪声描述 mini-batch 梯度相对真实梯度的随机波动。二者共同影响训练稳定性、吞吐、泛化和学习率选择。

背景与问题

大模型训练需要高吞吐,因此常使用很大的 global batch size。但 batch 变大后,梯度估计更稳定、硬件利用率更高,同时也会改变优化动态和学习率需求。

定义与记号

真实梯度:

g = E_{x~p_data}[∇L(x)]

mini-batch 梯度:

g_B = (1/B) Σ_i ∇L(x_i)

梯度噪声可以理解为:

g_B - g

直观解释

小 batch 像根据少量样本判断方向,方向更抖;大 batch 像综合更多样本再判断方向,方向更稳定。但过度稳定并不总是最好,因为梯度噪声也可能影响探索和泛化。

基本性质

  • batch size 越大,梯度估计方差通常越小。
  • 大 batch 可以提高并行吞吐,但需要更多显存或梯度累积。
  • batch size 增大后,学习率常需要重新调整。
  • gradient accumulation 可以在显存有限时模拟更大的 global batch。
  • 大 batch 训练可能需要 warmup 来稳定初期更新。

示例

如果每张 GPU 的 micro batch 是 4,使用 8 张 GPU,梯度累积 16 步:

global batch size = 4 × 8 × 16 = 512

优化动态更接近 batch size 512 的训练。

常见误解

  • 误解:batch 越大越好。
    • 正确理解:大 batch 提升吞吐和稳定性,但可能影响泛化和学习率选择。
  • 误解:gradient accumulation 和真实大 batch 完全没有差别。
    • 正确理解:在梯度同步和随机层行为等细节上可能存在差异。
  • 误解:batch size 只影响显存。
    • 正确理解:它也影响梯度噪声、优化路径和训练配方。

相关概念