模型層 開放閱讀

Warmup

Learning Rate Warmup

概念 ID
learning-rate-warmup
更新時間
2026-05-29
來源數量
待補

Warmup

Warmup(Learning Rate Warmup,學習率預熱)

3 秒看懂

訓練大型模型時,學習率不是一上來就拉滿,而是從一個極小值(甚至接近零)逐步升到目標值——這個”慢啟動”過程就叫 Warmup。 沒有它,隨機初始化的引數在高學習率下極易梯度爆炸、訓練發散。它是如今幾乎所有大型模型訓練的”標配開關”。

3 分鐘產業解釋

為什麼工程師離不開 Warmup?

大型模型訓練(如 Transformer 架構)面臨一個核心矛盾:訓練初期,模型權重是隨機初始化的,損失曲面非常”陡峭”且不穩定;但如果一開始就用很小的學習率,後期收斂會極慢。

Warmup 的解法樸素而有效:

  1. 起步階段(前幾千到幾萬步):學習率從 ≈0 線性(或按其他曲線)升到預設峰值 \eta_{max}
  2. 正常訓練階段:之後配合 Cosine Decay、Linear Decay 等排程器,將學習率從峰值逐步降低。

產業價值:

  • 對於引數量從數十億到數萬億的模型(GPT 系列、LLaMA、PaLM 等),Warmup 步數通常是總訓練步數的 0.1%–2% 量級,看似微小,但若去掉,訓練大機率在前幾百步就出現 loss spike 或徹底崩潰。
  • 它是訓練超引數調優中成本最低、收益最高的單項之一——通常只需設定一個 warmup_stepswarmup_ratio,無需額外計算資源。
  • 對於分散式訓練(資料並行、張量並行、流水線並行),初始階段各並行分支的梯度方差更大,Warmup 的穩定作用更加關鍵。

15 分鐘專家深入

核心機制拆解

問題本質: 隨機初始化時,模型各層的啟用值和梯度統計量(均值、方差)尚未經訓練”校準”。若此時施加較大的引數更新,會導致:

  • 某些層的啟用值指數級放大(尤其是深層網路中的殘差連線路徑)
  • 梯度範數劇烈波動 → loss 震盪或直接 NaN
  • 注意力分佈退化為近似均勻,softmax 飽和

Warmup 的數學直覺: 給最佳化器”熱身時間”,讓 Adam/AdamW 的一階矩(動量)和二階矩(自適應學習率)估計器收集足夠的梯度統計資訊後再用大步長更新。

經典 Warmup 排程形式

① 線性 Warmup(最常用)

\eta_t = \eta_{max} \cdot \frac{t}{T_w}, \quad t \leq T_w

其中 T_w 為總 warmup 步數。之後接主排程器(如 Cosine Decay)。

② Transformer 原始排程(Vaswani et al., 2017)

\eta_t = d_{model}^{-0.5} \cdot \min\!\left(t^{-0.5},\; t \cdot T_w^{-1.5}\right)

這個公式將 warmup 和 inverse-square-root decay 合為一體,在 t = T_w 處達到峰值。現代大型模型訓練已較少使用此原始形式,更常用線性 warmup + cosine decay 的組合。

③ Gradual Warmup(Goyal et al., 2017, “Accurate, Large Minibatch SGD”)

在 ImageNet 大 batch 訓練中提出:先用小學習率訓練 5 個 epoch(線性升溫),再切換到正常學習率。該工作證明了 warmup 使得用大 batch(如 8192)訓練成為可能,且精度不損失。

常見超引數設定(行業實踐歸納)

模型規模典型 Warmup 步數佔總訓練步數比例來源
BERT-Large(340M)~10,000 步~1%(總步 1M)Google 原始論文
GPT-3(175B)約 117 步(375M tokens)極小比例OpenAI 論文 [估算]
LLaMA 系列2,000 步據公開配置檔案Meta 開源配置
大規模預訓練(通用)1,000–10,000 步0.1%–5%[行業共識]

⚠️ 以上為基於公開論文與開源配置的歸納,實際訓練中因 batch size、資料量不同而差異顯著,無唯一”正確值”。

為什麼 Adam/AdamW 尤其需要 Warmup?

SGD 類最佳化器也需要 warmup,但 Adam 系列有額外的脆弱性

Adam 的引數更新為:

\theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

在 $t$ 很小時,二階矩估計 \hat{v}_t 的偏差校正項 \frac{1}{1-\beta_2^t}放大有效步長。當 \beta_2 = 0.999(常見設定)時:

步數 $t$偏差校正因子 \frac{1}{1-\beta_2^t}
1~1000
10~100
100~10
1000~1.58

也就是說,Adam 在最初幾步的有效學習率可能是設定值的成百上千倍! Warmup 直接壓制了這一爆炸性放大。


技術原理(深度機制)

從損失曲面幾何角度理解 Warmup

訓練初期的損失曲面示意(概念圖):

Loss

  │   ╱╲      ╱╲
  │  ╱  ╲    ╱  ╲     ← 高曲率、多尖峰(sharp minima 密集)
  │ ╱    ╲  ╱    ╲
  │╱      ╲╱      ╲___________
  └──────────────────────────── 引數空間

    隨機初始化在此區間

Warmup 的作用:用小步長 "試探" 曲面 → 避免一步跳入高損失區域

關鍵理論支撐:

  1. 梯度方差視角(Gradient Variance)

    • 初始化時,mini-batch 梯度的方差極大(引數未收斂 → 各樣本梯度方向不一致)
    • 大學習率 + 高方差 = 引數更新方向被噪聲主導 → 發散
    • Warmup 讓方差逐步降低後再放大步長
  2. Loss Sharpness 與泛化(Jiang et al., 2020; Foret et al., 2021)

    • 有研究指出,訓練初期跳入 sharp minima 會導致後期難以逃出
    • 小學習率 warmup 相當於一種隱式的 sharpness-aware 初始化路徑選擇
  3. 與 Batch Normalization 的類比

    • BN 通過歸一化啟用值來穩定訓練,但 Pre-LN Transformer 中通常不使用 BN(用 LayerNorm)
    • LayerNorm 雖歸一化了啟用,但不歸一化梯度流,因此無法替代 warmup 的作用
    • 不過:Pre-LN 架構相比 Post-LN 對 warmup 的依賴度確實更低(詳見下文誤讀糾偏)

Warmup 與主排程器的銜接

學習率
  │        ┌─────────────────────── Cosine Decay ──────→ 0
  │       ╱
  │      ╱
  │     ╱  ← 線性 Warmup
  │    ╱
  │   ╱
  │──╱
  └──┼────┼────────────────────────────────────────→ 步數
     0   T_w (warmup結束)

Post-Warmup 常見主排程器:

排程器公式典型使用場景
Cosine Decay\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max}-\eta_{min})(1+\cos(\frac{t-T_w}{T_{total}-T_w}\pi))GPT、LLaMA、大多數 LLM
Linear Decay\eta_t = \eta_{max}(1 - \frac{t-T_w}{T_{total}-T_w})BERT 原始
WSD (Warmup-Stable-Decay)先 warmup,再長時間恆定 lr,最後短時間快速衰減MiniCPM、部分實踐 [近期趨勢]
Inverse Sqrt\eta_t \propto t^{-0.5}原始 Transformer、T5

技術演進史

時間里程碑關鍵貢獻
2015He et al., “Delving Deep into Rectifiers”提出 MSRA 初始化 + 配合 lr 排程,間接啟發了”分階段學習率”思路
2017.02Goyal et al., “Accurate, Large Minibatch SGD”正式提出 Gradual Warmup,使 ImageNet 大 batch(8K)訓練不掉精度
2017.06Vaswani et al., “Attention Is All You Need”將 warmup 內嵌到 Transformer 的 lr 公式中,成為架構標配
2018BERT(Devlin et al., 2018)線性 warmup + 線性 decay 的經典範式,被 NLP 社群廣泛採納
2019GPT-2 / Megatron-LM超大規模訓練中確認 warmup 的必要性;Megatron 程式碼內建 warmup 邏輯
2020GPT-3 論文warmup 步數精細化,針對超長訓練制定策略
2023–2024LLaMA、Qwen、DeepSeek 等開源模型warmup 通常 2000 步左右,配合 cosine decay 成為事實標準
2024WSD 排程器興起將 warmup → stable → decay 三段解耦,為”續訓”/“退火”提供靈活性

技術路線對比

維度線性 Warmup + CosineTransformer 原始公式WSD 排程器無 Warmup
實現複雜度最低
訓練穩定性中(對 T_w 敏感)極差(大型模型幾乎必崩)
最終精度基準線可比可比/略優 [部分報告]N/A(訓練不收斂)
續訓友好度低(cosine 已衰減)(stable 階段可任意延長)N/A
與大 batch 相容一般
行業採用度★★★★★★★(歷史遺留)★★★(上升中)不採用

上下游

上游(Warmup 依賴什麼)                下游(什麼依賴 Warmup)
┌─────────────────────┐            ┌──────────────────────┐
│ • 權重初始化方案       │            │ • 大型模型預訓練         │
│   (Xavier/He/μP等)   │            │ • SFT / RLHF 微調     │
│ • 最佳化器選擇          │  ──Warmup→ │ • 分散式訓練架構        │
│   (Adam/AdamW/Adan)  │            │   (Megatron, DeepSpeed)│
│ • Batch Size 策略     │            │ • 訓練穩定性工程        │
│ • 模型架構            │            │ • 學習率排程器          │
│   (Pre-LN vs Post-LN)│            │   (Cosine, WSD等)     │
└─────────────────────┘            └──────────────────────┘

關鍵指標

指標說明典型值 / 範圍
warmup_steps預熱階段總步數1,000–10,000(LLM 預訓練);100–500(微調)
warmup_ratio預熱步數佔總步數比例0.01%–5%
初始學習率 \eta_0warmup 起始 lr通常為峰值 lr 的 10^{-7}10^{-3} 量級(或直接從 0 開始)
峰值學習率 \eta_{max}warmup 結束時的 lrLLM: 1\times10^{-4}6\times10^{-4} [範圍估算]
warmup 曲線形狀線性 / 指數 / 多項式線性最常見
loss spike 機率有 warmup vs 無 warmup無 warmup 時 spike 頻率顯著增高 [定性共識]

供需與市場資料

Warmup 本身是訓練方法,不直接構成獨立市場,但它是訓練成本GPU 時間利用率的隱性影響因素。

  • 訓練失敗成本:一次大型模型預訓練的成本在百萬到千萬美元量級(數千 GPU 執行數週到數月)。若因缺少 warmup 導致前期發散需要 restart,直接損失 GPU 時間和電力。據行業估算,warmup 能避免的”無謂 restart”可節省 1%–5% 的總訓練成本。[定性估算]
  • 超參搜尋成本:Warmup 步數是超參搜尋的維度之一。最優 warmup 步數依賴於 batch size、模型大小、資料分佈,需要小規模 proxy 實驗確定。
  • 架構支援:PyTorch 原生 torch.optim.lr_schedulerLinearLRCosineAnnealingLR 均支援 warmup;Hugging Face Transformers 的 Trainer 類內建 warmup_steps / warmup_ratio 引數;DeepSpeed、Megatron-LM 同樣內建。Warmup 已是訓練架構的”零成本基礎設施”。

代表公司與資本對映

公司/機構Warmup 相關實踐關聯
GoogleTransformer 原始 warmup 公式;BERT 訓練範式論文發源地
OpenAIGPT-3/4 訓練中的精細 warmup 排程大規模訓練工程實踐標杆
Meta (FAIR)LLaMA 開源配置公開 warmup 步數可復現的訓練配方
Microsoft / DeepSpeedDeepSpeed 架構內建 warmup 排程器訓練基礎設施
NVIDIA (Megatron-LM)Megatron 程式碼中 warmup + cosine decay 是預設配置GPU 訓練最佳化
Hugging FaceTransformers Trainer 中 warmup 是預設可選引數開發者生態
DeepSeek採用 WSD 排程器(Warmup-Stable-Decay)近期新型排程實踐

產業對映:Warmup 不構成獨立投資主題,但它是大型模型訓練效率的關鍵組成。討論訓練最佳化方向時,可將其放入”訓練穩定性工程”的廣義架構中,與混合精度訓練、梯度裁剪、初始化策略等共同評估。


投資邏輯

核心判斷

  1. Warmup 是成熟技術,已無獨立技術壁壘。 它是開源架構的標準組件,不構成差異化競爭力。
  2. 但它是”訓練可靠性”的必要條件。 任何試圖從零訓練大型模型的團隊,若忽略了 warmup(以及梯度裁剪、混合精度等基礎工程),極可能在前期浪費大量算力。
  3. WSD 等新型排程器的興起值得關注。 WSD(Warmup-Stable-Decay)將訓練解耦為三階段,為**續訓(continual pre-training)退火(annealing)**提供了工程靈活性,可能成為下一代訓練配方的預設選項。
  4. 更廣義的”學習率工程”是一個微創新方向。 包括 per-layer lr(不同層用不同 lr)、μP(Maximal Update Parameterization,使超參可跨模型規模遷移)等,都是在 warmup 基礎上的進一步精細化。

風險點

  • 若出現全新的最佳化演算法(如不需要 warmup 的一階方法),現有訓練配方可能需要重構。但目前尚無明確替代方案。

常見誤讀糾偏

❌ 誤讀 1:「Pre-LN Transformer 不需要 Warmup」

糾偏:Pre-LN(LayerNorm 放在殘差連線之前)架構確實比 Post-LN 對 warmup 的依賴度低——Post-LN 的訓練不穩定性更嚴重,沒有 warmup 幾乎無法訓練。但 Pre-LN 在大型模型規模下(引數量數十億+)仍然需要 warmup,否則前期 loss spike 的機率仍然顯著。“更少依賴” ≠ “不需要”。 許多論文和工程報告均確認了這一點。

❌ 誤讀 2:「Warmup 只是為了防止梯度爆炸」

糾偏:梯度爆炸是表象之一,但 warmup 的作用機制更深層:

  • Adam 二階矩偏差校正的放大效應(見技術原理節)是獨立於梯度爆炸的另一機制
  • loss 曲面的尖銳性:早期引數在隨機初始化附近,曲面曲率高,小步長幫助”繞過”尖銳最小值
  • 注意力機制的退化:Transformer 的 softmax attention 在初始化時接近均勻分佈,過大的更新可能將其推入退化狀態
  • 因此,即使使用了梯度裁剪(gradient clipping),warmup 仍然是必要的

❌ 誤讀 3:「Warmup 步數越多越安全」

糾偏:過長的 warmup 會:

  • 浪費訓練步數(warmup 階段的 lr 低 → 引數更新效率低)
  • 可能讓模型在次優區域停留過久
  • 實際工程中,warmup 步數需要與 batch size 配合調優。更大的 batch size 通常允許更短的 warmup(因為梯度估計更準確,方差更低)

❌ 誤讀 4:「微調(Fine-tuning)不需要 Warmup」

糾偏:取決於場景。全引數微調時,由於預訓練權重已”校準”,warmup 需求確實降低,但通常仍使用少量 warmup(如 3%–10% 的總微調步數)以應對新資料分佈的衝擊。LoRA 等引數高效微調中,新增的低秩矩陣是隨機初始化的,warmup 仍有意義但通常步數更少。


學習路徑

Level 0 · 直覺理解
  └── 知道"訓練剛開始時學習率要小一些,然後慢慢變大"
       推薦:任何深度學習入門教程中"學習率排程"一節

Level 1 · 理解機制
  └── 掌握線性 warmup 公式,能解釋 Adam 偏差校正問題
       推薦:
       • Vaswani et al., "Attention Is All You Need" (2017) §5.3
       • Goyal et al., "Accurate, Large Minibatch SGD" (2017)

Level 2 · 工程實踐
  └── 能在訓練架構中配置 warmup,理解 warmup_steps 的選擇邏輯
       推薦:
       • Hugging Face Transformers 文件 - Trainer 的 lr_scheduler_type
       • PyTorch 官方 lr_scheduler 教程
       • 任意開源 LLM(如 LLaMA)的訓練配置檔案

Level 3 · 理論深度
  └── 理解 warmup 與損失曲面幾何、sharpness-aware 最佳化的關係
       推薦:
       • Smith & Le, "A Bayesian Perspective on Generalization and
         Stochastic Gradient Descent" (2018)
       • Gotmare et al., "A Closer Look at Deep Learning Heuristics"
         (2019) - 關於 warmup 的理論分析
       • Liu et al., "WSD: A Warmup-Stable-Decay Learning Rate
         Schedule for Training Large Language Models" (2024)

Level 4 · 前沿探索
  └── μP、per-layer lr、與 warmup 的協同設計
       推薦:
         • Yang et al., "Tensor Programs V: Tuning Large Neural
           Networks via Zero-Shot Hyperparameter Transfer" (2022) [μP]

一句話總結

Warmup 是大型模型訓練中最”不起眼”卻最關鍵的穩定器——它用幾千步的低學習率”熱身”,換來了後續數百萬步訓練的收斂保證,是每一個大型模型訓練配方的隱性基礎設施。


延伸閱讀與來源

  1. Vaswani et al. (2017), “Attention Is All You Need”, NeurIPS — Transformer 原始 warmup 公式
  2. Goyal et al. (2017), “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour” — Gradual Warmup 提出
  3. Gotmare et al. (2019), “A Closer Look at Deep Learning Heuristics” — warmup 理論分析
  4. Loshchilov & Hutter (2019), “Decoupled Weight Decay Regularization” (AdamW) — AdamW 中 warmup 的互動
  5. Liu et al. (2024), “WSD: A Warmup-Stable-Decay Learning Rate Schedule” — 新型 WSD 排程器
  6. Yang et al. (2022), “Tensor Programs V” (μP) — 超引數跨規模遷移中 warmup 的角色
  7. Meta LLaMA 開原始碼及訓練配置 — 工程實踐參考
  8. Megatron-LM GitHub 倉庫 — 大規模分散式訓練中的 warmup 實現

📌 準確性宣告:本頁技術事實基於上述論文與開源專案的公開資訊。具體訓練超引數(如 GPT-3 的 warmup 步數)部分基於論文揭露與社群復現的估算,已標註。無據處均以定性表述呈現。

source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型