ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

模型训练过程中的 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 甚至完全不用(warmup=0)也可以。


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 是你教它如何用这种大步幅走路而不摔倒前的原地踏步练习。二者相互依存:更高的峰值要求更长的预热,而预热的本质是为了让峰值学习率能够被安全、高效地使用。

返回列表