在訓練過程中改變學習率的策略,而非保持恆定。大多數現代訓練使用暖身(從接近零逐漸增加到峰值)後接衰減(逐漸降低到接近零)。餘弦退火是最常見的衰減排程。學習率控制每次梯度更新步驟的大小 — 可以說是訓練中最重要的超參數。
學習率排程設定正確與否可以決定訓練的成敗。太高,模型會發散(損失飆升,訓練失敗)。太低,訓練太慢或陷入局部最佳。排程與批次大小、模型大小和資料相互作用 — 沒有通用的設定。理解學習率排程有助於你解讀訓練曲線和診斷訓練問題。
標準 LLM 訓練排程有三個階段:(1) 暖身:在前 0.1–2% 的訓練步驟中,將學習率從接近 0 線性增加到峰值。這防止隨機初始化的模型在早期走出過大的步伐。(2) 穩定/峰值:在大部分訓練中維持峰值學習率。(3) 衰減:按餘弦曲線將學習率降低到接近零。這讓模型在最後階段進行細粒度的調整。
餘弦衰減:lr(t) = lr_min + 0.5 · (lr_max − lr_min) · (1 + cos(π · t / T)),其中 t 是當前步數,T 是總步數。這產生一條平滑曲線,起初緩慢減少,然後加快,接近最小值時再次減慢。為什麼是餘弦?它在經驗上效果好,並避免了基於階梯排程的突然轉變。最終學習率通常比峰值小 10 倍。
線性縮放規則:如果你將批次大小加倍,就將學習率加倍。這在梯度估計變得更準確(來自更大的批次)時保持了有效步長。該規則在中等批次大小下近似成立,但在非常大的批次下失效,此時最佳學習率的增長慢於線性。在批次大小隨 GPU 數量擴展的分散式訓練中,正確處理這種關係至關重要。