模型層 開放閱讀

Cosine Decay

Cosine Learning Rate Decay

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

Cosine Decay(餘弦學習率衰減)

3 秒看懂

一句話:讓學習率從高到低按”餘弦曲線”平滑下降——訓練初期大步快走,後期小步微調,比階梯式衰減更絲滑、更穩定。

類比:像跑馬拉松——前半程配速較高穩步輸出,後半程逐漸降速保留體力衝刺,而不是突然停跑再起步。

3 分鐘產業解釋

這是什麼?

Cosine Decay(餘弦衰減)是深度學習訓練中**學習率排程策略(Learning Rate Schedule)**的一種,核心思想是讓學習率按照餘弦函式的半個週期(從1降到0)進行平滑衰減。

為什麼重要?

在大型模型時代,訓練一次 GPT-4 量級模型的成本可達數億美元。學習率排程直接影響:

  • 收斂質量:最終模型效能(loss 下限)
  • 訓練穩定性:避免 loss spike 或發散
  • 算力效率:相同算力下達到更低的 loss

Cosine Decay 已成為事實上的預設標準排程策略——從 GPT 系列到 LLaMA、從 Stable Diffusion 到 ResNet,幾乎所有主流架構的訓練都採用它或其變體。

行業地位

Cosine Decay 的論文(Loshchilov & Hutter, 2017)是機器學習領域引用量最高的論文之一。它不是”可選項”,而是大型模型訓練配方(Training Recipe)的基礎設施

15 分鐘專家深入

核心機制

Cosine Decay 的數學表示式:

η(t) = η_min + ½(η_max - η_min)(1 + cos(πt / T))

其中:

  • η(t) = 第 t 步的學習率
  • η_max = 初始最大學習率
  • η_min = 最終最小學習率(常設為 0 或 η_max 的 1/10)
  • T = 總訓練步數(或總 epoch 數)
  • t = 當前步數(從 0 開始)

曲線特徵

學習率

η_max ┤●
      │  ╲
      │    ╲
      │      ╲          ← 前期下降較慢,保留大步長探索
      │        ╲
      │          ╲
      │            ╲    ← 中期下降最快
      │              ╲
      │                ╲
η_min ┤──────────────────●
      └──────────────────→ 訓練步數
         0              T

與 Warmup 的配合

實際工程中,Cosine Decay 幾乎總是與 Warmup 階段配合使用:

學習率

η_max ┤      ●────────●
      │     ╱          ╲
      │    ╱            ╲
      │   ╱              ╲
      │  ╱                ╲
      │ ╱                  ╲
      │●                    ╲
   0  ┤                      ●
      └───────────────────────→ 步數
      │warmup│ │  cosine decay  │

完整流程:

  1. Warmup 階段(通常 0.1%~5% 總步數):學習率從 0 或極小值線性升至 η_max
  2. Cosine Decay 階段:從 η_max 按餘弦曲線降至 η_min

關鍵變體

變體核心改動適用場景
標準 Cosine Decay單週期餘弦衰減通用訓練
Cosine with Warmup前置線性 warmup大型模型訓練(標配)
SGDR (Warm Restarts)週期性重啟(多次餘弦週期)需要跳出區域性最優
Cosine with Floorη_min > 0,不到零微調場景,保留最低學習能力
WSD (Warmup-Stable-Decay)先穩定再餘弦衰減最近的大型模型訓練趨勢

技術原理

為什麼是餘弦?而非線性或指數?

直覺:餘弦函式在兩端變化緩慢、中間變化快,這恰好匹配了訓練的最佳化景觀:

訓練階段:   │ 早期(探索) │ 中期(快速下降) │ 後期(精細調優) │
            │             │                 │                 │
學習率需求: │ 需要大步長   │ 快速降低步長     │ 極小步長穩定     │
            │ 探索引數空間 │ 避免震盪         │ 收斂到最優解     │
            │             │                 │                 │
餘弦曲線:   │ 變化平緩     │ 變化最快         │ 變化平緩         │
            │ 保持大 LR   │ 快速下降 LR      │ LR 接近零        │

數學角度

  • 線性衰減:全程恆定斜率,前期降得太快(過早喪失探索能力),後期降得太慢(接近最優時仍較大)
  • 指數衰減:前期下降快但後期下降慢,容易導致訓練末期學習率過小而”停滯”
  • 餘弦衰減:兩端慢、中間快,與 loss landscape 的收斂動態更匹配

與損失函式曲面的對應關係

引數空間示意(俯檢視):

訓練早期:                    訓練後期:
    · · ·                        ·
   · · · ·                    · · ·
  · · · · ·      →           · ● ·    ← 收斂到最優附近
   · · · ·                    · · ·
    · · ·                        ·
  大範圍隨機探索               小範圍精細搜尋
  需要大 LR                   需要小 LR

PyTorch 實現虛擬碼

import math

def cosine_decay(step, total_steps, lr_max, lr_min=0.0):
    """標準 Cosine Decay(不含 warmup)"""
    # 歸一化進度到 [0, 1]
    progress = step / total_steps
    # 餘弦衰減公式
    cosine_factor = 0.5 * (1 + math.cos(math.pi * progress))
    # 線性插值
    lr = lr_min + (lr_max - lr_min) * cosine_factor
    return lr

def cosine_with_warmup(step, warmup_steps, total_steps, lr_max, lr_min=0.0):
    """帶 Warmup 的 Cosine Decay"""
    if step < warmup_steps:
        # 線性 warmup
        return lr_max * (step / warmup_steps)
    else:
        # 餘弦衰減
        decay_steps = total_steps - warmup_steps
        progress = (step - warmup_steps) / decay_steps
        cosine_factor = 0.5 * (1 + math.cos(math.pi * progress))
        return lr_min + (lr_max - lr_min) * cosine_factor

關鍵超引數

超引數含義典型取值影響
η_max峰值學習率1e-4 ~ 3e-3(取決於模型大小和批大小)最重要的超引數之一
η_min最終學習率0 或 η_max/10過高則不收斂,過低無影響
T總步數由訓練配置決定必須準確設定,否則衰減曲線不匹配
warmup_steps預熱步數總步數的 0.1%~5%過短可能不穩定,過長浪費算力

技術演進史

時間線:

2012  │ AlexNet 使用手動階梯衰減(step decay)
      │   ↓ 學習率在特定 epoch 除以 10

2015  │ "Cyclical Learning Rates" (Smith, 2015)
      │   ↓ 首次提出週期性變化學習率

2017  │ ★ SGDR: Stochastic Gradient Descent with Warm Restarts (Loshchilov & Hutter)
      │   ↓ 論文首次提出 Cosine Annealing / Cosine Decay
      │   ↓ 提出帶重啟的變體(Warm Restarts)
      │   ↓ [論文原作:ICLR 2017, arXiv:1608.03983]

2018  │ 逐漸成為 CV 領域標配(ResNet、DenseNet 訓練)

2020  │ GPT-3 訓練採用 cosine schedule
      │   ↓ 標誌著進入大型模型訓練標配

2023  │ LLaMA、Mistral 等開源模型訓練預設使用
      │   ↓ 幾乎成為唯一主流選擇

2024  │ WSD (Warmup-Stable-Decay) 作為替代方案開始出現
      │   ↓ MiniCPM、部分實驗顯示可行性
      │   ↓ 但 cosine 仍是絕對主流

至今  │ Cosine Decay + Warmup = 行業標準配方

關鍵轉折點:2017年 Loshchilov & Hutter 的論文是里程碑。在此之前,學習率排程主要是工程經驗(手動設階梯衰減);在此之後,有了統一的數學架構。


技術路線對比

排程策略公式優點缺點使用場景
Step DecayLR = LR₀ × γ^(floor(epoch/milestone))簡單直觀不連續、需手動調閾值早期經典訓練
Exponential DecayLR = LR₀ × γ^t平滑連續後期下降過快較少單獨使用
Cosine DecayLR = η_min + ½(η_max-η_min)(1+cos(πt/T))平滑、兩端慢中間快、廣泛驗證需預知總步數主流標配
Linear DecayLR = η_max - (η_max-η_min)×(t/T)最簡單前期衰減太快簡單場景
WSDWarmup → 恆定 LR → 短期快速衰減可靈活延長訓練新方法、驗證較少探索中
Inverse SqrtLR = η_max / √t無需預知總步數後期衰減太快NLP 部分場景
Constant LRLR = η_max最簡單不收斂到最優僅用於預實驗

量化比較(示意性,非精確基準)

最終 loss 對比(相同訓練設定,越低越好):

Step Decay:       ████████████░░░░░░░  0.35
Exponential:      █████████████░░░░░░  0.32
Linear Decay:     █████████████░░░░░░  0.31
Cosine Decay:     ██████████████░░░░░  0.28  ← 通常最優或接近最優
WSD:              ██████████████░░░░░  0.28  ← 可比,但需更多驗證

注:具體數值取決於模型、資料、超參,此為趨勢性示意 [估算]

上下游

上游(輸入端)

┌─────────────────────────────────────────────────────┐
│                    訓練配置                           │
├─────────────────────────────────────────────────────┤
│  ● 最佳化器 (Optimizer)                               │
│    └── Adam / AdamW / SGD → 提供梯度方向              │
│                                                     │
│  ● 學習率排程 (LR Schedule)  ← Cosine Decay 在此     │
│    └── 決定每步的學習率大小                           │
│                                                     │
│  ● 批大小 (Batch Size)                               │
│    └── 通常與學習率線性相關(linear scaling rule)     │
│                                                     │
│  ● 總訓練步數                                        │
│    └── 決定餘弦週期長度 T                            │
└─────────────────────────────────────────────────────┘
         ↓ 輸出:每步學習率 η(t)

下游(輸出端)

┌─────────────────────────────────────────────────────┐
│              模型引數更新                              │
├─────────────────────────────────────────────────────┤
│  θ(t+1) = θ(t) - η(t) × [最佳化器更新方向]             │
│                                                     │
│  ● 引數更新幅度 → 影響收斂軌跡                        │
│  ● 最終模型效能 → loss / 準確率 / 瓶頸                │
│  ● 訓練穩定性 → 避免發散和 loss spike                 │
└─────────────────────────────────────────────────────┘

完整訓練配方中的位置

訓練配方 (Training Recipe) 組成:

[資料] + [模型架構] + [最佳化器] + [學習率排程] + [正則化]

                                   Cosine Decay
                                   (核心元件之一)

關鍵指標

指標含義如何評估
最終 Loss訓練結束時的損失值越低越好,直接比較
收斂速度達到目標 loss 所需步數越少越省算力
Loss 曲線平滑度訓練過程中 loss 波動程度越平滑越穩定
泛化效能驗證集/測試集表現最終指標
超引數敏感度對 η_max 等引數的魯棒性越不敏感越好調

Cosine Decay 的典型特徵

  • Loss 曲線呈現前期快降、中期穩定下降、後期緩慢收斂的形態
  • 與 Step Decay 相比,loss 曲線更平滑,較少出現”階梯跳變”後的震盪

供需與市場資料

應用廣度(定性)

Cosine Decay 在主流模型訓練中的採用情況:

大語言模型 (LLM):
├── GPT 系列 → 採用 [OpenAI 技術報告]
├── LLaMA 系列 → 採用 [Meta 技術報告]
├── Mistral → 採用
├── Qwen → 採用
└── 幾乎所有主流 LLM → 採用或變體

計算機視覺 (CV):
├── ResNet → 採用
├── ViT → 採用
├── CLIP → 採用
└── Stable Diffusion → 採用

行業採用率:估計 >90% 的正式訓練使用 cosine 或其變體 [行業估算]

訓練成本影響

學習率排程本身計算開銷幾乎為零(每步多一次餘弦運算),但其對訓練效率的影響巨大:

  • 好的排程:相同算力,更低 loss
  • 差的排程:浪費數百至數百萬美元的 GPU 時間

以 GPT-4 量級模型為例:假設訓練成本 $100M,學習率排程最佳化 1% 的效率 = 節省 $1M [粗略估算]。


代表公司與資本對映

使用方(所有人)

公司代表模型是否使用 Cosine Decay
OpenAIGPT-4是(技術報告未公開排程細節,行業推測繼承自GPT-3)
MetaLLaMA 系列是(技術報告明確記載)
GooglePaLM/Gemini
AnthropicClaude大機率是(行業標準)
MistralMistral 系列
阿里巴巴Qwen
DeepSeekDeepSeek

關鍵認知:Cosine Decay 是公共知識,不構成任何公司的競爭壁壘。它是訓練配方的”水電煤”。

最佳化器生態

最佳化器 + Cosine Decay 的組合:

Adam + Cosine Decay     → 經典組合
AdamW + Cosine Decay    → 當前最主流(L2 正則 + 餘弦衰減)
SGD + Cosine Decay      → CV 部分場景
Adafactor + Cosine Decay → 節省記憶體的變體
Lion + Cosine Decay     → Google 提出的新最佳化器

投資邏輯

核心觀點

Cosine Decay 本身不是投資標的,但它揭示了幾個投資相關的關鍵洞察:

1. 訓練配方標準化 = 降低門檻

訓練配方標準化程度:
├── 架構:Transformer 已成標準
├── 最佳化器:Adam/AdamW 已成標準
├── 學習率排程:Cosine Decay 已成標準  ← 此處
├── 資料處理:仍在演進
└── 對齊方法:仍在演進

結論:標準化降低追趕門檻,技術護城河收窄

投資含義:關注仍在演化的”非標準化”環節(資料、對齊、推論最佳化)。

2. 訓練基礎設施的價值

Cosine Decay 是訓練基礎設施的一部分。訓練基礎設施的改進直接影響:

  • GPU 利用率:同樣的硬體,更好的訓練配方 = 更多產出
  • 訓練成功率:減少失敗的訓練 run = 節省成本

相關標的:訓練架構公司、AI Infra 公司(如 Weights & Biases、Modal 等)。

3. 對硬體的間接影響

學習率排程影響:

  • 梯度更新幅度 → 影響視訊記憶體中的啟用值大小
  • 訓練穩定性 → 影響是否需要重啟(浪費算力)
  • 收斂速度 → 影響 GPU 使用時長

常見誤讀糾偏

誤讀 1:「Cosine Decay 是 LLM 訓練專用的」

糾偏

Cosine Decay 最初是在 CV(計算機視覺) 領域提出的(2017年論文主要實驗是 ResNet/DenseNet)。後來才被 NLP/LLM 訓練廣泛採用。

事實:Cosine Decay 是通用的訓練技術,適用於幾乎所有深度學習場景——CV、NLP、多模態、強化學習等。


誤讀 2:「Cosine Decay 一定比其他排程策略好」

糾偏

Cosine Decay 是經驗上表現最好的預設選擇之一,但並非在所有場景下都絕對最優:

  • 某些小模型 + 小資料場景,Step Decay 可能足夠好
  • 某些需要無限訓練的場景(如線上學習),Cosine Decay 需要預知總步數,可能不適用
  • WSD(Warmup-Stable-Decay)在某些實驗中顯示可比甚至更優的效能 [MiniCPM 相關工作]

正確理解:Cosine Decay 是經過廣泛驗證的安全預設選項,但特定場景可能有更好的選擇。


誤讀 3:「設了 Cosine Decay 就不用管學習率了」

糾偏

Cosine Decay 需要正確配置至少三個超引數:

  • η_max(峰值學習率):最重要的超引數,需要根據模型大小、批大小仔細調整
  • η_min(最終學習率):設為 0 還是 η_max/10 會有影響
  • warmup_steps:太短可能不穩定,太長浪費算力

事實:Cosine Decay 只是架構,超引數調優仍然是必要的工作。


誤讀 4:「Cosine Decay 和 Cosine Annealing 是不同的東西」

糾偏

它們是同一個東西的不同稱呼

  • Cosine Decay / Cosine Schedule:側重描述”衰減”動作
  • Cosine Annealing:側重描述”退火”過程

原論文標題中的 “Cosine Annealing” 和後來社群常用的 “Cosine Decay” 指的是相同的方法。

補充:Cosine Annealing with Warm Restarts(SGDR)是變體,允許週期性重啟,但基礎版本相同。


學習路徑

入門(1-2 小時)

  1. 閱讀原論文摘要

    • Loshchilov & Hutter, 2017, “SGDR: Stochastic Gradient Descent with Warm Restarts”
    • arXiv:1608.03983
  2. 動手實驗

    # PyTorch 內建實現
    from torch.optim.lr_scheduler import CosineAnnealingLR
    
    optimizer = Adam(model.parameters(), lr=1e-3)
    scheduler = CosineAnnealingLR(optimizer, T_max=100, eta_min=0)
    
    for epoch in range(100):
        train(...)
        scheduler.step()
  3. 視覺化理解:用 matplotlib 畫出學習率曲線,觀察不同超引數的影響。

進階(1-2 天)

  1. 對比實驗:在同一個任務上,分別用 Step Decay、Exponential Decay、Cosine Decay 訓練,比較最終 loss 和收斂曲線。

  2. 閱讀大型模型技術報告

    • LLaMA 技術報告中的訓練細節
    • GPT-3 論文附錄中的訓練配置
  3. 理解與最佳化器的互動

    • 學習率與批大小的關係(linear scaling rule)
    • AdamW 的權重衰減與學習率衰減的區別

深入(持續學習)

  1. 研究變體:SGDR、OneCycleLR、WSD 的原理和適用場景
  2. 關注前沿:大型模型訓練中學習率排程的最新研究
  3. 工程實踐:在分散式訓練中正確實現學習率排程

一句話總結

Cosine Decay 是深度學習訓練中經過廣泛驗證的預設學習率排程策略,通過餘弦函式實現前期大步探索、後期精細調優的平滑衰減,已成為從 GPT 到 LLaMA 的行業標準配方元件。


延伸閱讀與來源

核心論文

  1. [原論文] Loshchilov, I., & Hutter, F. (2017). “SGDR: Stochastic Gradient Descent with Warm Restarts.” ICLR 2017. arXiv:1608.03983

    • Cosine Decay 的首次提出,必讀
  2. [大型模型應用] Brown, T. et al. (2020). “Language Models are Few-Shot Learners.” NeurIPS 2020

    • GPT-3 論文,附錄中有 cosine schedule 的使用細節
  3. [LLaMA] Touvron, H. et al. (2023). “LLaMA: Open and Efficient Foundation Language Models”

    • Meta 的 LLaMA 技術報告,公開了訓練配方

教程與實現

  1. PyTorch 官方文件

    • torch.optim.lr_scheduler.CosineAnnealingLR
    • 包含完整的 API 說明和示例
  2. Hugging Face Transformers

    • get_cosine_schedule_with_warmup() 函式
    • 被廣泛使用的實現

社群討論

  1. PyTorch Forums / Hugging Face 論壇
    • 大量關於學習率排程的實戰討論

重要宣告

資料來源說明

  • 數學公式、原論文資訊:基於公開學術文獻
  • 大型模型採用情況:基於各公司公開的技術報告
  • 行業採用率估計:基於行業共識的定性判斷,無精確統計
  • 效率改進估算:示意性計算,非嚴謹基準測試

本文不構成任何投資建議。技術分析僅供學習參考。

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