模型训练过程中的 peak learning rate 和 warmup

📅 2026/8/11 13:45:35
模型训练过程中的 peak learning rate 和 warmup
在深度学习训练中峰值学习率peak learning rate和warmup预热阶段是学习率调度器中两个强耦合的组件。它们的关系可以这样概括warmup 是通往 peak learning rate 的“安全通道”而 peak learning rate 决定了 warmup 的终点高度和必要性。下面从概念、互动机理、以及实践中的协同调参来具体解释。1. 各自的角色Peak Learning Rate峰值学习率是优化器在整个训练过程中允许达到的最大步长。它决定了模型在“全力学习”阶段参数在梯度方向上能够更新的最大幅度。这个值通常与 batch size 正相关大 batch 可用稍大的峰值 LR但过大则会导致训练发散过小则收敛缓慢。在经典的linear warmup cosine decay调度中峰值学习率是整个余弦曲线的起点。Warmup 阶段是训练刚开始时学习率从一个极小值通常是 0 或峰值学习率的一个很小分数线性或非线性增长到 peak learning rate 的短暂过程。它本身不是目的而是一种过渡策略。2. 核心关系安全达到目标步长Warmup 的存在恰恰是为了让模型能够安全地使用一个足够大的 peak learning rate。这背后的原因主要有两个初始参数的不稳定性模型刚开始训练时参数是随机初始化的或经过预训练但与下游任务分布有偏差此时的梯度往往包含大量噪声且梯度的二阶矩方差尚未稳定。如果用 peak learning rate 直接开始巨大的更新步长可能会立刻将参数推向极不稳定的区域导致梯度爆炸或模型输出 NaN。Warmup 用小步长让模型“缓慢试探”逐渐建立起比较平稳的梯度统计量尤其是对 Adam 这类自适应优化器它需要预热来累积动量与二阶矩的准确估计之后才能承受峰值学习率的冲击。深层网络的动态公平性在 Transformer 等深层结构中不同层的梯度尺度差异很大。较低的层可能需要较大的学习率顶层可能较小。Warmup 让整个网络有机会逐步调整各层的有效学习率避免某些层在初期被过大的更新“洗掉”。当学习率达到峰值时模型已经进入一个相对“有序”的状态此时大学习率可以高效地探索最优区域。因此peak learning rate 越高需要的 warmup 通常就越长这样才能让模型有足够的时间去适应。反之如果峰值学习率本来就不高缩短 warmup 甚至完全不用warmup0也可以。3. 直觉类比想象你从寒冷的室外走进一个高温桑拿房Peak Learning Rate是桑拿房的温度比如 80℃。Warmup是你先进入一个 40℃ 的过渡间慢慢适应再进入 80℃ 的主室。如果直接冲进 80℃身体可能会应激受伤训练崩溃。温度越高需要的适应时间warmup 步数就越长。4. 实践中的协同调参常见的调参原则是先确定一个合适的 peak learning rate再为它配置 warmup 步数。设定 peak learning rate 的参考在大模型训练如 LLaMA、BERT中峰值学习率常用 1e-4 量级配合 AdamW。可以通过LR range test来确定让学习率从小到大线性增长观察 loss 开始下降并趋于平稳的那个点作为合适的 peak LR。设定 warmup 步数/比例通常 warmup 覆盖总训练步数的1% ~ 10%例如训练 100k 步warmup 1k~10k 步。如果 peak LR 很大、batch size 很大、模型很深warmup 比例会偏大。对于微调尤其是 SFT由于基座模型已经比较稳定peak LR 较小如 2e-5可能只用几百步 warmup 甚至 0 warmup。一个常见的配置组合以 LLaMA 类模型 SFT 为例peak learning rate 2e-5 warmup ratio 0.03 (总步数的3%) lr schedule: cosine decay to 0这里 warmup 终点就是2e-5。如果我们将 peak LR 提高到1e-4通常需要把 warmup ratio 调到0.05~0.1才能保持稳定。5. 一张图看它们的关系学习率 ↑ | peak learning rate ──────────┐ | ╱ | 余弦衰减 | ╱ | | ╱ warmup 阶段 ↓ | ╱ (线性增长) 最小学习率 | ╱ | 0 ──────────────────────────────────→ 训练步数Warmup 的斜率由peak_lr / warmup_steps决定。如果 peak 很高但 warmup 很短斜率就会非常陡初期训练依然可能不稳定。Peak 值决定了模型能够跨越的“最大探索半径”warmup 则是抵达这个半径前的“助跑”。总结一句话Peak learning rate 是你敢让模型迈出的最大步伐而 warmup 是你教它如何用这种大步幅走路而不摔倒前的原地踏步练习。二者相互依存更高的峰值要求更长的预热而预热的本质是为了让峰值学习率能够被安全、高效地使用。