模型预训练 / 训练配方 Recipe进阶 5 分钟阅读 查看源文件 ↗

联合调度:预训练的 batch 与学习率怎么配#

TL;DR#

本页内容7 个部分

1. 两种调度怎么选#

比较的配置 哪个更好 对照条件
固定小 batch 调学习率,或固定学习率调 batch 验证 loss 接近。把多个小步合成一个大步时,大 batch 方案的更新次数更少。[1] 300M nanoGPT,普通 SGD。同一 checkpoint、同一段数据,且对齐累计学习率和 batch 与学习率之比的变化过程。
训练后段,较快或较慢地提高 batch 与学习率之比 较快提高的一组验证 loss 更低,继续加快的收益递减。[1] 30M nanoGPT,固定 batch 和累计学习率终点。各组消耗的训练 token 数不同。

大 batch 少更新和小 batch 多更新,即使用了同一批训练数据,也可能推进不同的距离。这套对照把学习率也纳入配置,问的是两种做法能否在相同数据量下得到相近的验证 loss。上表的更新次数由配置直接决定,耗时还取决于硬件吞吐与训练开销。

2. 怎样对齐训练进度和噪声#

设第 tt 步的全局 batch 大小为 BtB_t,学习率为 ηt>0\eta_t>0。普通 SGD 在 batch 上求平均梯度,再乘学习率更新参数。论文用两个量对齐不同的调度:

Tt=∑s<tηs,rt=Btηt.T_t=\sum_{s<t}\eta_s,\qquad r_t=\frac{B_t}{\eta_t}.

TtT_t 是累计学习率,论文称为内在时间。每一步推进的内在时间是 ΔTt=ηt\Delta T_t=\eta_t。比较调度时,把比值看成随内在时间变化的轨迹 r(T)r(T),在第 tt 步覆盖的区间取 rtr_t。[1]

固定当前参数,假设 batch 内的样本独立,单样本梯度的协方差为 Σ\Sigma。平均梯度的协方差为 Σ/Bt\Sigma/B_t,乘上学习率后,参数增量的噪声协方差为 ηt2Σ/Bt\eta_t^2\Sigma/B_t。用一步的内在时间 ηt\eta_t 去除,得到每单位内在时间的噪声系数 ηt/Bt=1/rt\eta_t/B_t=1/r_t。因此,学习率决定每步推进的尺度,而 batch 与学习率之比决定单位进度上的噪声强度。

同时,每一步都有 Bt=rtΔTtB_t=r_t\Delta T_t。把这些步相加,训练样本数就是 ∑tBt=∑trtΔTt\sum_t B_t=\sum_t r_t\Delta T_t。所以在这种分段配置里,对齐相同的内在时间区间和比值轨迹,也会对齐处理的数据量。[1]

3. 用同一段数据做对照#

用实验里的一段整数配平来手算。两种做法都从数据流中取相同的 64 个训练序列。一边拆成 4 个 batch,另一边合成一个 batch。[1]

做法 每步 batch 每步学习率 更新次数 样本数
小 batch 多步 16 0.00125 4 64
大 batch 一步 64 0.005 1 64

小 batch 走完这段的内在时间增量是 4×0.00125=0.0054\times0.00125=0.005,大 batch 一步也走 0.0050.005。两边的比值分别是 16/0.0012516/0.00125 和 64/0.00564/0.005,都等于 12,80012{,}800。对照的关键是两边逐段对齐这两个量。小步之间已经更新了参数,因此验证的是 loss 曲线有多接近。

在 300M nanoGPT 的对照中,作者从同一个训练到 52 亿 token 的 checkpoint 分叉,用顺序相同的 13 亿 token 继续训练。对 WSD 和 8-1-1 两种调度,分别比较固定 batch 调学习率与固定学习率调 batch。评测统一使用同一组验证上下文上的交叉熵。WSD 的稳定期与冷却期见学习率配方。[1]

4. 为什么 loss 会形成幂律#

为什么还要看过去的调度?论文先在固定随机特征的线性回归里拆开两类误差。信号残差是目标中尚未学到的部分。噪声记忆描述一次随机更新引入的误差,到后来还剩多少。某时刻的 loss 会受到所有早期噪声的影响,每次影响的大小取决于当时注入多少和后来衰减多快。[1]

设 λ\lambda 是特征协方差在某个可学习方向上的特征值。这个方向的平方误差近似按 e−2λTe^{-2\lambda T} 衰减。在论文讨论的谱尺度内,可用 λ≲1/T\lambda\lesssim 1/T 估计哪些方向的误差仍未消退。若小于阈值 xx 的正特征值所承载的累计目标误差按 xqx^q 缩小,其中 q>0q>0 是该累计量的指数,将阈值换成约 1/T1/T,就得到 T−qT^{-q} 的衰减。论文也对噪声记忆给出了相应的谱条件。[1]

标题的 3+3(+2) 来自这种误差传播在幂律随机特征模型中的分类。三类长记忆的历史噪声影响积累得更久,三类可积记忆的单次噪声影响衰减得更快,另外两类的噪声累积还与模型宽度相耦合。比较不同调度时,关键是剩余信号误差与累计噪声哪一项降得更慢。[1]

5. 验证结果和适用条件#

在 300M 普通 SGD 实验里,按优化器步数画,同一调度的两种实现走出不同轨迹。对齐内在时间后,两种实现的验证 loss 曲线几乎重合。作者还只用固定 batch 的 8-1-1 曲线拟合预测模型,冻结参数后预测 WSD,预测曲线贴近实测。[1]

OpenWebText、FineWeb 和 peS2o 的独立拟合给出的单次噪声衰减指数分别为 1.017、0.952 和 0.995,接近长记忆与可积记忆的分界 1。这里的指数描述各自实验窗口里的有效响应。[1]

在 30M 对照里,固定 batch 并让学习率更快下降,会让 B/ηB/\eta 增长更快。在相同内在时间下,这些配置取得了更低的验证 loss,但经过了不同数量的更新、消耗了不同数量的 token。这个实验检验的是比值路径对 loss 的影响。按固定 token 预算选调度时,要回到前一组等数据量的比较口径。[1]

线性随机特征模型提供了可证明的谱与噪声关系。nanoGPT 提供的是特定训练窗口内的验证结果。换优化器时,要重新核对用什么量对齐进度和噪声。论文对混合 Muon 用短程实验校准了另一组经验坐标 ∑s<tηs2\sum_{s<t}\eta_s^2 和 Bt/ηt2B_t/\eta_t^2,再检查曲线是否接近。[1]

参考资料#

  1. From Spectra to Joint Schedules in LLM Pre-training(2026,v2)。§2 定义内在时间与比值,§3–5 给出谱条件与调度模型,附录 F 报告等数据量对照和跨调度预测。