LLM訓練の初期段階で学習率を0から目標値まで徐々に増加させるテクニック。初期の不安定な勾配による訓練崩壊を防ぎ、安定した最適化を実現する。
Learning Rate Warmupは、訓練開始直後に学習率を低い値から目標の最大学習率まで段階的に引き上げるテクニックです。Transformer原論文「Attention Is All You Need」で導入され、現在のLLM訓練では事実上必須の手法として広く採用されています。
訓練開始時のモデルの重みはランダム初期化されており、この段階での勾配は方向・大きさの両面で信頼性が低くなります。Adam等の適応型オプティマイザでも、初期のmomentum推定(1次・2次モーメント)にはバイアスがあり、高い学習率を直接適用すると以下の問題が発生します。
| 問題 | 症状 | 影響 |
|---|---|---|
| 勾配爆発 | loss spike、NaN発生 | 訓練崩壊 |
| 不安定な更新 | loss振動 | 収束遅延 |
| 悪いbasins | 平坦でないミニマムに着地 | 汎化性能低下 |
学習率を0からピーク値まで線形に増加させます。実装が簡単で効果が高いため、GPT-3、LLaMA、PaLMなどほぼ全ての大規模LLMで採用されています。
複数段階に分けて学習率を段階的に増加させます。超大規模モデルでの安定性が求められる場合に使用されることがあります。
指数関数的に学習率を増加させます。訓練序盤により低い学習率を長く維持できるため、特に不安定なモデルアーキテクチャで有効です。
Warmupステップ数はモデルサイズと総訓練ステップ数に依存します。
| モデル | 総ステップ | Warmupステップ | 割合 |
|---|---|---|---|
| BERT Base | 1,000,000 | 10,000 | 1.0% |
| GPT-3 175B | 300,000 | 375 | 0.125% |
| LLaMA 7B | 1,000,000 | 2,000 | 0.2% |
| PaLM 540B | 255,000 | 2,000 | 0.78% |
| Chinchilla 70B | 1,400,000 | 2,000 | 0.14% |
一般的な目安として、総ステップ数の0.1-3%をWarmupに割り当てます。大規模モデルほど絶対ステップ数は多くても割合は小さくなる傾向です。
事前学習済みモデルのFine-tuningでは、重みが既に良い初期値にあるため、Warmupを省略できる場合があります。ただし、学習率が高い場合やLoRA以外のフルパラメータFine-tuningではWarmupを入れた方が安定します。
訓練の実質的な学習期間が短くなり、最終性能が低下します。Warmup期間中は学習率が低いため、この期間での学習効率は低く、過度なWarmupは計算リソースの無駄遣いになります。
はい。分散訓練では実効バッチサイズが大きくなるため、むしろWarmupの重要性は増します。大きなバッチでは勾配のvariance(分散)が小さくなり、序盤の不安定性が増幅される傾向があります。
併用が推奨されます。Warmupは学習率側から安定性を確保し、Gradient Clippingは勾配側から異常値を制限します。両者は補完的な関係にあり、LLaMAやGPT-4では両方が使用されています。