← 返回题目列表

Gradient Noise Scale 在预训练中有什么意义?

困难 第 25 / 25 题 更新于 2026/09/18
大模型预训练Gradient Noise ScaleBatch Size优化

简化版

Gradient Noise Scale(GNS)衡量 mini-batch 梯度中随机噪声相对真实梯度信号的大小,可用于估计“临界 Batch”:Batch 小于该尺度时扩 Batch 往往能有效减少噪声并加速,远大于它后边际收益递减。GNS 是动态诊断量,不是固定超参数,需在不同训练阶段估计并结合吞吐与收敛实验使用。

详细版

设单样本梯度均值为 g、协方差迹为 tr(Σ),一种标量近似为 B_noise ≈ tr(Σ)/||g||²。Batch 为 B 时,平均梯度噪声方差约缩小为 Σ/B;当 B 与 B_noise 同量级,信号和噪声进入拐点。实际可比较两个不同 micro-batch 的梯度范数统计估计,而无需逐样本存梯度。

GNS 上升意味着可有效利用更大 Batch,但估计受数据异质性、梯度累积、裁剪、混合精度和分布式归约影响。用途包括选择 global batch、制定 batch ramp-up、判断扩卡是提高样本效率还是仅提高吞吐。最终仍需以固定 Token 的 validation loss 和墙钟成本验证,不能把噪声尺度当作质量保证。

小 Batch:噪声主导 -> 扩 Batch 明显改善梯度估计
B ≈ GNS:收益开始弯折
超大 Batch:信号已稳定 -> 再扩主要减少更新次数

完整版教学

一、梯度噪声从哪里来

训练目标是数据分布上损失的期望,但每一步只抽一小批样本。不同样本给出的梯度方向不完全相同,mini-batch 平均梯度因此围绕总体梯度波动。这个波动就是随机梯度噪声,它既可能帮助探索,也可能让更新效率变差。

若 batch 中样本近似独立,平均梯度的协方差会随 1/B 缩小。把 Batch 扩大四倍,标准差约减半,而不是降到四分之一。这个规律解释了为什么增大 Batch 最初有效、随后不会无限带来收益。

二、GNS 的直觉公式

设真实平均梯度是 g,单样本梯度噪声协方差是 Σ,可用以下比例描述噪声相对信号:

B_noise ≈ tr(Σ) / ||g||²

当梯度方向很一致,||g||² 相对大、GNS 小,小 Batch 已能估得不错;当样本差异大或真实信号弱,GNS 变大,需要更多样本平均。不同论文在归一化和实现上会有变体,使用时必须说明定义。

记忆钩子:GNS 可以理解为“要平均多少样本,噪声才降到与有效梯度信号相当的量级”。

三、它为何与临界 Batch 相关

Batch 远小于 GNS 时,梯度估计噪声较大,扩大 Batch 可减少达到同一 loss 所需的更新步数。Batch 接近 GNS 时开始出现弯折;远大于 GNS 后,梯度已经相对稳定,更多样本被用在同一次更新中,样本效率收益有限。

区间扩大 Batch 的主要结果决策
B << GNS明显降噪、近线性步数收益可积极扩展
B ≈ GNS收益开始递减结合吞吐找拐点
B >> GNS更新次数减少,数据效率变差谨慎扩展

临界点不是硬边界,硬件效率也可能让略超临界的 Batch 仍有更短墙钟时间。

四、怎样在大模型上估计

逐样本计算梯度内存和计算太贵。实践可在同一参数点上,用不同 Batch 的梯度范数统计推断信号项与方差项,或周期性抽取少量层/参数做近似。估计窗口内模型参数应变化不大,否则时间变化会混入噪声。

例如分别测 micro-batch 32 与 128 的平均梯度平方范数,多次采样求期望,根据方差随 1/B 的关系解出信号与噪声。需要足够重复次数和稳定数据源;只测一次会有很大方差。工程日志保存估计误差区间,而非只给单个整数。

五、GNS 会随训练变化

训练早期梯度信号强,GNS 可能较小;后期接近收敛时平均梯度变弱,噪声比例可能升高。数据 mixture 切换、序列长度变化和学习率阶段也会改变它。因此在 step 1000 测得的临界 Batch 不能覆盖整个训练。

这为 batch ramp-up 提供依据:早期使用较小 Batch 获得更多更新,随后随着 GNS 增长逐渐扩大。改变 Batch 时同步调整学习率、warmup/decay 的 Token 口径,并检查全局训练预算没有被意外改变。

六、哪些实现细节会污染估计

梯度裁剪改变范数,应该在裁剪前估计;FP16 溢出和 loss scaling 会制造异常;Dropout、数据增强和 MoE 路由也贡献随机性。梯度累积若 micro-batch 高度相关,不满足简单独立假设。分布式 all-reduce 前后的缩放必须一致。

数据桶异质性尤其重要:多个领域轮流出现会让“噪声”包含真实分布变化。可以按域分别估计,也可确保估计窗口按目标 mixture 随机采样。模型并行不会增加独立数据样本,不能误计为 Batch 扩大。

七、如何把 GNS 用于容量规划

假设当前 global batch 为 1M Token,GNS 估计约 4M,增加 DP 和 batch 可能仍有优化收益;若当前已是 16M 而 GNS 只有 2M,再扩卡并保持每卡 batch 会大幅超过临界。此时可缩短单次作业、训练多个实验,或保持 global batch 仅提升容错,而非盲目扩大。

必须用实验证实:选择 GNS 下方、附近和上方三个 Batch,分别调学习率,在相同训练 Token 下比较 loss,并测 Token/s。若估计的拐点与实际不符,检查估计器和数据相关性。GNS 是筛选实验范围的工具,不替代实验。

八、常见误区与追问

  • 误区:GNS 就是梯度方差。 它通常是噪声相对梯度信号的比例,单看方差不够。
  • 误区:测一次 GNS 就能固定全程 Batch。 它会随参数、数据和训练阶段变化。
  • 误区:Batch 等于 GNS 时训练质量最佳。 它只提示扩 Batch 的效率拐点,不直接决定泛化质量。
  • 追问:为什么不逐样本精确计算? 大模型代价过高,通常通过多 Batch 统计或子参数近似。
  • 追问:GNS 大意味着什么? 梯度样本差异相对信号大,更大的 Batch 可能更有价值。
  • 追问:与学习率缩放什么关系? 它帮助选择 Batch 区间,具体 LR 仍需结合优化器做扫描。

九、加强记忆

GNS 可记成“噪声除信号,估 Batch 拐点”:mini-batch 随机性随 1/B 降低,GNS 给出信号与噪声同量级的参考 Batch;小于它扩 Batch 收益明显,大于它收益递减。周期估计、在裁剪前记录、按实际数据分布采样,再用等 Token 收敛与吞吐验证,才是正确用法。