梯度累积与批次大小有何关系

GPU
小华
2026-09-16

梯度累积(Gradient Accumulation)批次大小(Batch Size) 的关系可以一句话概括:

梯度累积是用“多个小批次”模拟“一个大批次”的训练效果。
下面分层说明。

1. 基本定义

  • 批次大小(Batch Size)

一次前向+反向传播中使用的样本数量。

  • 梯度累积步数(Accumulation Steps, (k))

在更新模型参数前,连续计算 (k) 个小批次的梯度并求和(或平均)。

2. 数学关系

若:

  • 单步实际批次大小 = (b)
  • 梯度累积步数 = (k)

等效批次大小为:
[
B_{text{eff}} = b times k
]
例如:

  • (b = 8),(k = 4)
  • 等效批次大小 = (32)

3. 为什么需要梯度累积?

显存限制

大模型 + 大批次 → 显存爆炸
梯度累积允许:

  • 用小批次训练
  • 获得大批次的收敛稳定性

训练行为近似

理想情况下(学习率不变、梯度取平均):

  • 梯度累积 ≈ 大批次训练
  • 更新方向和方差特性相似

4. 关键注意事项

✅ 梯度处理方式

  • 通常:累积梯度后取平均

[
g = frac{1}{k} sum_{i=1}^{k} g_i
]

⚠️ 学习率

  • 等效批次变大 → 常需线性缩放学习率

[
eta_{text{new}} = eta_{text{base}} times frac{B_{text{eff}}}{B_{text{base}}}
]

⚠️ Batch Normalization

  • BN 仍按真实小批次统计
  • 大等效批次 ≠ 大 BN 批次

→ 可能引入偏差

5. 与大批次训练的区别

对比项大批次梯度累积
显存占用
并行效率较低
BN 统计
收敛行为更接近理论近似

6. 一句话总结

梯度累积是“时间换空间”的手段,用多次小批次计算,等效实现一个大批次的训练效果。
如果你愿意,我也可以结合 PyTorch 示例代码LLM 训练中的实际应用 来讲。
亿速云提供售前/售后服务

售前业务咨询

售后技术保障

400-100-2938

7*24小时售后电话

官方微信小程序