核心要点

  • Warmup:训练初期从极小学习率线性(或多步)升到目标值,避免早期梯度震荡

  • 为何需要:初期参数随机、梯度噪声大,Adam 的二阶矩估计也不准,大 LR 易发散

  • 衰减:达到峰值后按 cosine/step/线性 等策略逐步降 LR,便于后期精细收敛

  • Transformer 训练几乎必备 warmup,配合 AdamW + cosine 衰减是标准范式

标准回答

Warmup 的作用

训练刚开始时权重随机、loss 曲面陡峭、梯度方向噪声大;若直接用目标学习率,单步更新过猛容易让 loss 发散或陷入坏区域。Warmup 在前若干步(或几个 epoch)把学习率从接近 0 线性升到目标值,给优化器一段"暖机"期稳定下来。对 Adam/AdamW,初期二阶矩估计不可靠,warmup 也能抑制此时的过大步长。

衰减的作用

升到峰值后逐步降低学习率:大 LR 阶段快速探索,小 LR 阶段精细收敛、减小后期震荡。常见策略:

  • Cosine:平滑余弦曲线退火,主流选择
  • Step:到固定里程碑乘以衰减因子
  • 线性 / 多项式:随步数线性下降

典型组合:AdamW + linear warmup + cosine decay,是 Transformer 与大模型预训练的事实标准。

常见误区

⚠️ 常见踩坑

Warmup 解决的是训练早期不稳定,不是过拟合;它与衰减是两个阶段,不能只做 warmup 不衰减,也不要把 warmup 步数设得过长而浪费有效训练。

追问

追问 1为什么 Transformer 对 warmup 特别敏感?

Transformer 层深、含 LayerNorm 与残差,初期 Adam 自适应步长不稳,且注意力对参数尺度敏感,早期大 LR 易使训练发散。原始论文即采用 warmup 后按 step^-0.5 衰减的调度。

追问 2warmup 步数一般怎么设?

常取总步数的几个百分点,或固定几千步(如预训练常见 2k–10k 步)。batch size 越大、LR 峰值越高,通常需要更长 warmup;可作为超参数小范围搜索。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。