---
title: "學習率預熱策略（Warmup Schedule）"
slug: warmup-schedule
language: zh-TW
source: https://aiterms.tw/learning/what-is-warmup-schedule
updated_at: 2026-07-04
tags: [模型訓練, 最佳化, 大型語言模型, source:ipas]
ipas_term: true
type: deep-dive
---

# 學習率預熱策略 是什麼？

> 在模型訓練初期逐漸增加學習率的策略，可防止模型權重在訓練剛開始時因過大的梯度更新而崩潰或發散。

## 核心概念

在深度學習的實務中，特別是當我們面對參數規模龐大且架構深層的神經網路時，訓練的起始階段往往是相當脆弱且不穩定的時期。在模型剛被隨機初始化時，所有的權重矩陣與偏差值都沒有任何實際的物理意義或特徵捕捉能力。此時輸入第一批資料，計算出來的預測結果會與真實標籤存在極大的誤差，進而產生非常巨大的梯度向量。如果在這個階段直接使用設定好的目標學習率來更新參數，這個巨大的梯度會導致權重發生極端劇烈的改變，破壞了原先精心設計的初始化分佈，甚至可能引發數值計算上的溢出或梯度爆炸，導致模型在訓練的頭幾步就徹底發散，再也無法收斂。

學習率預熱正是為了解決這個初始不穩定性而設計的保護機制。它的核心概念非常簡單：在訓練剛開始的一段特定時間內，不要讓模型使用全速前進，而是強制將學習率壓低在一個非常安全的微小數值，然後隨著訓練步數的增加，再慢慢將學習率調升到我們預期的目標值。這就像是人類在進行高強度運動前必須先進行暖身，讓身體逐漸適應運動的強度；或是汽車在寒冷天氣啟動時需要先怠速運轉，讓引擎機油充分潤滑各個機件。透過這種漸進式的加速過程，模型權重可以在初期小步伐地往正確的方向進行初步調整，待各層網路的啟動值與梯度分佈變得比較穩定合理後，再以正常的學習率進行大規模的空間探索。

## 運作原理

學習率預熱的運作機制主要涉及預熱軌跡的數學定義以及預熱長度的設定。基本且廣泛被使用的實作方式是線性預熱。在線性預熱中，開發者會先決定一個預熱步數，系統會在從第一步到這個目標步數的過程中，將學習率從接近零的值，按照固定的斜率直線遞增至設定的最高學習率。這種等速攀升的方式簡單且直觀，能夠在大部分情境下提供足夠的穩定性。

除了線性預熱，也有研究採用指數預熱或是正弦曲線預熱。這些非線性的預熱軌跡旨在讓學習率在最起初的幾步上升得更為平緩，以應對那些對初始擾動極度敏感的超深層架構。無論採用哪種曲線，其實作方式都是在訓練迴圈的優化器步驟中，插入一個攔截與覆寫學習率的邏輯，根據當前的全域步數動態計算出對應的乘積因子，藉此調節參數更新的幅度。

在預熱結束之後，學習率並不會一直維持在最高點，通常會無縫接軌進入標準的學習率衰減排程。這種前段逐漸上升、後段緩慢下降的組合策略，在時間軸上會形成一個類似山峰或三角形的曲線。預熱步數的設定是一門經驗科學，一般建議將預熱步數設定為總訓練步數的一小部分比例，或者涵蓋最初的幾個完整資料走訪週期。在分散式訓練中，如果使用了非常大的批次大小，通常需要更長的預熱期來對抗梯度變異數過大的問題。

## 實際應用

學習率預熱技術常見的應用場景無疑是 Transformer 相關架構的預訓練。在許多語言模型的原始論文中，研究團隊都明確指出，如果不加上預熱機制，這類結合了多頭注意力機制與層正規化的深層架構幾乎無法穩定收斂。因為注意力分數的計算在權重隨機初始化的狀態下非常容易產生極端值，預熱機制能夠給予模型足夠的緩衝期，讓注意力權重調整到合理的範圍。

在大規模分散式運算的領域，預熱也是不可或缺的技術。當工程師為了縮短訓練時間，將批次大小擴增到數千甚至數萬筆資料時，根據線性縮放法則，理論上必須同步將學習率調大，以保持梯度的有效性。然而，過大的絕對學習率在訓練初期是具有風險的。透過導入預熱排程，系統可以在前幾個週期使用較安全的學習率，待梯度方向在超大批次下逐漸穩定後，再攀升至擴增後的高學習率，成功兼顧了訓練速度與收斂穩定度。

在生成式對抗網路的訓練中，由於生成器與判別器處於動態博弈的狀態，早期的劇烈更新很容易打破雙方的平衡，導致模式崩潰。雖然這不是預熱的傳統應用領域，但許多進階的影像生成架構也會引入輕量級的預熱機制，讓兩個神經網路能在初期建立起基本的對抗節奏，避免其中一方在剛開局就佔據單方面的壓倒性優勢。

## 常見誤區

在應用學習率預熱時，一個非常普遍的誤區是設定了過長的預熱步數。如果預熱階段佔據了總訓練時間的太大比例，模型將會長時間處於低效率的緩慢學習狀態，這不僅浪費寶貴的運算資源，還會壓縮到後續高學習率探索以及低學習率微調的時間視窗，最終導致模型無法達到理想的精確度。預熱只是為了度過最初的不穩定期，一旦梯度分佈穩定，就應該盡快切換至目標學習率。

另一個常見的問題是完全忽略預熱機制，直接依賴自適應優化器的修正能力。有些開發者認為，帶有動差修正機制的優化器已經能夠處理早期的梯度波動。然而，優化器的二階動差在訓練最初期由於累積的樣本極少，估計出來的變異數其實是非常不準確且充滿雜訊的。如果在這種狀態下套用較大的初始學習率，依舊會引發嚴重的權重破壞。事實上，許多研究已經證實，即使是使用先進的優化器，搭配預熱機制依然能獲得更穩定且更具泛化能力的結果。

還有一個容易被忽略的細節是中斷恢復後的預熱處理。當模型訓練因為意外中斷而從某個檢查點恢復時，如果排程器沒有正確地載入歷史狀態，可能會導致預熱機制被重新觸發。在訓練中後期突然將學習率強行壓低至零，會嚴重擾亂模型原本的收斂節奏。因此，確保預熱進度與全域訓練步數嚴格綁定，是實作上必須注意的關鍵。

## 與相關技術的比較

學習率預熱與學習率衰減在概念上看似相反，實則互補。衰減關注的是如何在訓練末期精確定位到理想解，避免在谷底震盪；而預熱關注的則是如何在訓練初期安全啟航，避免系統出現數值不穩定。現代的模型訓練腳本幾乎都會將這兩者結合在一起，形成完整的全週期學習率生命週期管理。

若將預熱技術與參數初始化策略進行比較，兩者都是為了解決訓練初期不穩定性的手段。複雜的初始化策略是從空間分佈的數學期望值著手，試圖讓每一層輸出與梯度的變異數保持一致。然而，即使採用了嚴謹的初始化設定，在面對高度非線性或殘差連接複雜的架構時，仍然難以保證最初幾步的絕對穩定。預熱機制等於是在時間軸上加上了第二道保險，兩者並不互斥，而是相輔相成的穩定訓練基石。

另外，近年來有些研究提出了層級自適應學習率優化器，試圖根據每一層權重矩陣的範數來動態調節更新步伐，以取代傳統的全域預熱。雖然這些新技術在某些特定任務上展現了潛力，但由於實作複雜且計算成本較高，基於步數的學習率預熱憑藉其極簡的實作與卓越的通用性，依然是當前工業界與學術界主流的防護機制之一。

## iPAS 考試出題分析

屬於未分類考範圍。

## 常見問題

### 預熱步數一般應該設定為多少比較合適？

預熱步數的設定並不存在絕對通用的標準答案，通常取決於資料集大小、模型架構複雜度與每次訓練的批次大小。一般實務上，常見的做法是將總訓練步數的一小部分比例設定為預熱期，或是涵蓋最初的少數幾個完整資料走訪週期。若是使用極大的批次大小進行分散式叢集訓練，則需要相對較長的預熱時間來確保全域梯度的穩定性，開發者需透過反覆實驗來尋找適合當前專案的配置參數。

### 如果不使用學習率預熱會發生什麼後果？

對於淺層或結構單純的神經網路，不使用預熱機制可能只會導致初期收斂稍微緩慢。但對於參數龐大且結構複雜的模型（如 Transformer），若省略預熱設計，模型在接收第一批資料時所產生的巨大初始梯度，會立刻對隨機初始化的權重進行過度劇烈的破壞性更新。這容易引發數值計算上的不穩定、梯度爆炸或模式徹底崩潰，導致損失函數在訓練的前幾步就直接發散，造成訓練中斷。

### 預熱機制可以與任何學習率衰減策略同時使用嗎？

預熱機制在系統設計上完全獨立於後續的學習率衰減策略，因此可以無縫地與各種排程演算法組合使用。常見的經典組合是「線性預熱搭配餘弦衰減」或是「線性預熱搭配線性衰減」。在這種組合模式中，學習率會在訓練初期先直線攀升至預設的最高點，順利完成預熱任務後，接著便將控制權交接給後續的衰減排程器，按照預定的曲線軌跡緩慢下降，形成一個具備完整生命週期的訓練節奏控制系統。

---

深度解說頁：https://aiterms.tw/learning/what-is-warmup-schedule
快查頁：https://aiterms.tw/terms/warmup-schedule
最後更新：2026/07/04