Training Hyperparameters(学習ハイパーパラメータ)
AdamW β2=0.95、ピーク LR 1e-4〜3e-4 (7B)、cosine/WSD、global batch 1〜16M tokens、gradient clip 1.0 を軸に、μP・fp8・10 落とし穴を整理。
article technology ja AdamW β2=0.95、ピーク LR 1e-4〜3e-4 (7B)、cosine/WSD、global batch 1〜16M tokens、gradient clip 1.0 を軸に、μP・fp8・10 落とし穴を整理。Training Hyperparameters(学習ハイパーパラメータ)
LLM 訓練の数値設定は AdamW (β1=0.9, β2=0.95, ε=1e-8, weight_decay=0.1)、ピーク LR 1e-4〜3e-4 (7B)、cosine / WSD、global batch 1〜16M tokens、gradient clip = 1.0 が 2024〜2026 のデファクト。転換点は (1) GPT-3 (Brown 2020, arXiv:2005.14165) の β2=0.95 標準化 (Adam 原典 Kingma 2015, arXiv:1412.6980 の β2=0.999 は bf16 で遅い)、(2) Chinchilla (Hoffmann 2022, arXiv:2203.15556) のスケール則、(3) μP (Yang 2022, arXiv:2203.03466) による HP 転移。本記事は tech-49 / tech-48 延長の数値設定のみを扱い、オプティマイザ内部数学は Training Optimization (#346) 担当。
オプティマイザと AdamW デフォルト
AdamW (Loshchilov 2017, arXiv:1711.05101) の decoupled weight decay が LLM デファクト。β2=0.999 の v² EMA window ≈ 1000 ステップは bf16 初期 5K で収束不良、β2=0.95 なら window ≈ 20。PaLM (arXiv:2204.02311) は β2=0.99、Llama / DeepSeek-R1 (arXiv:2501.12948) は β2=0.95。weight_decay 0.1 は非埋め込み・非 LayerNorm のみ適用。ε bf16 罠: 1e-8 は bf16 mantissa (7 bit) より粗く小 params で v² 過小評価、一部実装は ε=1e-15 明示。
学習率スケジュール — cosine / WSD / inverse-sqrt
LR スケジュールは 3 系統あり、cosine が支配的で WSD が 2024〜2026 に台頭。
| スケジュール | 出典 | 式の核 | 適用領域 |
|---|---|---|---|
| Cosine decay | Loshchilov 2016 (arXiv:1608.03983) | LR(t) = LR_min + 0.5(LR_max - LR_min)(1 + cos(π·t/T)) | 2020〜2024 LLM 事前学習標準 (GPT-3 / Llama / Mistral) |
| WSD (Warmup-Stable-Decay) | Hu 2024 (arXiv:2404.06395, MiniCPM) | Warmup (W) → Stable @ LR_max (S) → Fast decay (D, D≪S) | 中間 checkpoint 再利用、複数サイズへの分岐訓練 |
| Inverse-sqrt | Vaswani 2017 (arXiv:1706.03762) | LR(t) = d_model^{-0.5} · min(t^{-0.5}, t · warmup^{-1.5}) | Transformer 原典 / T5 / encoder-decoder、無期限訓練向け |
Cosine は T を計画時に焼き込むため訓練延長で LR ≈ 0。WSD は stable phase 末端 checkpoint が LR_max のままで複数サイズや別ドメインへ分岐可能 (Llama-3 “cooling” は事実上 WSD)。inverse-sqrt は decoder-only で廃れ encoder-decoder に残存。LR_min: GPT-3 は peak/60、OLMo / Llama-3 は固定 1e-5。
ウォームアップとピーク LR
Warmup は線形に 0 → LR_max で過大初期勾配を防ぐ。長さは 総トークンの 0.1〜2% (Llama-3 = 32B / 15.6T の 0.2%、OLMo arXiv:2402.00838 = 2T の 0.3%、GPT-3 = 300B の 0.125%)。warmup 不足は 100 ステップ以内の NaN/spike で顕在化。ピーク LR は params に対し緩い逆相関 (Llama-3.1 8B=1.5e-4、70B=8e-5、405B=1e-4、GPT-3 175B=6e-4) で LR ∝ 1/√(N_params) ± 2×。Goyal Linear LR Scaling Rule (arXiv:1706.02677) は critical batch 超で √k へ崩れる (arXiv:1812.06162)。
バッチサイズと Critical Batch Size
Critical Batch Size (McCandlish 2018, arXiv:1812.06162) は B_crit = S_max / noise_scale、B ≤ B_crit は情報効率一定、超過で 1 ステップ利得逓減。LLM 経験値: GPT-3 175B = 3.2M tokens、Llama-3.1 405B = 16M、OLMo は 4M → 16M ramp (序盤ノイズ探索 → 後半安定収束)。global_batch_tokens = micro_batch × seq_len × num_gpus × grad_accum。事前学習 seq_len は 4K → 8K → YaRN (arXiv:2309.00071) で 128K へ伸長。
勾配クリッピングと数値安定性
Global norm clipping = 1.0 が LLM 事前学習標準 (GPT-3 / PaLM / Llama-3 / OLMo)。超過なら scale = max_norm/grad_norm を全パラメータ適用 (per-parameter より勾配方向保持)。pre-clip grad_norm の全 step ログ必須 (baseline 10× 跳躍は spike 前兆)。Mixed precision: A100/H100/TPUv4+ は bf16 標準で loss scaling 不要、fp16 は dynamic loss scaling (arXiv:1710.03740) 必要だが LLM 事前学習では廃止。fp8 は Hopper/Blackwell 導入、forward=E4M3 (高精度)、backward=E5M2 (高レンジ)、per-tensor scaling は MS-AMP (arXiv:2310.18313) と Transformer Engine の amax 履歴窓 (window=16)。PaLM Loss Spike Recovery (arXiv:2204.02311): 540B で spike 6 回、100 ステップ前 checkpoint へ巻き戻し原因バッチをスキップ再開。modern は自動 anomaly detection + 細粒 checkpoint。
μP / μ-Transfer によるハイパーパラメータ転移
μP (Maximal Update Parameterization) (Yang 2022, arXiv:2203.03466) は活性値・勾配振幅を幅スケーリングに対し不変に保ち、SP の「最適 LR が幅で変動し小モデルのスウィープ転用不能」を解決。SP との 3 差: (1) 入力埋め込み init std = σ × 1/d_model (SP は 1/√d_model)、(2) LM head init std = σ × 1/width、(3) Attention logit multiplier = 1/width。転移手順: 40M proxy で LR と init_std をグリッドサーチ → 7B+ に同値投入、±10% 以内で転移し LR スウィープコストを 10〜50× 削減。Cerebras CS-2、MosaicMPT、Phi-3/Phi-4 (arXiv:2412.08905) が採用。SP→μP 切替時の width 比 effective LR シフトが罠。
初期化 / Dropout / その他正則化
標準 init は GPT-2 起点、Embedding と QKV を N(0, 0.02)、residual 出力射影は N(0, 0.02/√(2·N_layers)) (Megatron-LM residual scaling) で層数による隠れ状態分散の O(N_layers) 増大を防ぐ。LM head は埋め込みと重み共有 (tied) が標準。Dropout は事実上ゼロ — Llama / Falcon / Mistral は全 0.0、データスケールが正則化として機能。Sequence packing: 複数文書を max_seq_len まで連結 EOS/BOS 区切り (MFU 向上)。Cross-sample attention bleed: 事前学習は許容、SFT は応答が前応答に attend しラベル漏洩 — document-level causal mask を Flash Attention (arXiv:2205.14135) の cu_seqlens で実装。
ポストトレーニングのハイパーパラメータ
事前学習と post-training は LR で 1 桁、seq_len で 1 桁 違う領域。SFT / DPO / RLHF / LoRA はそれぞれ特有の数値レンジ。
| 段階 | ピーク LR | 主要パラメータ | 出典 |
|---|---|---|---|
| SFT | 1e-5 〜 5e-5 | epochs 1〜3、batch 64〜256、weight_decay 0 〜 0.01、clip 1.0 | InstructGPT (Ouyang 2022, arXiv:2203.02155): SFT LR 9.65e-6 |
| DPO | 5e-7 〜 5e-6 | β=0.1 (KL 罰則)、epochs 1〜3、batch 32〜128 pairs | DPO (Rafailov 2023, arXiv:2305.18290) |
| KTO | 同 DPO | β=0.1、desirable threshold 0.5、pair 不要 | Ethayarajh 2024 (arXiv:2402.01306) |
| SimPO | DPO よりやや高 | γ (margin)、ref policy 不要、長さ正規化 | Meng 2024 (arXiv:2405.14734) |
| GRPO | 1e-6 〜 1e-5 (policy) | clip ratio ε=0.2、KL coef 0.001〜0.01、group size G=8 〜 16 | DeepSeek-R1 (Guo 2025, arXiv:2501.12948) |
| LoRA / QLoRA | 1e-4 〜 5e-4 | r=16〜64、alpha=r or 2r、target = Q/V 行列、NF4 + double quant | LoRA (Hu 2021, arXiv:2106.09685) / QLoRA (Dettmers 2023, arXiv:2305.14314) |
| PPO | 9e-6 (RM/policy) | clip range 0.1〜0.2、KL coef tuned via adaptive control | InstructGPT (Ouyang 2022, arXiv:2203.02155) |
SFT loss masking: 応答トークンのみで loss 計算 (label=-100 で instruction / padding マスク)、忘れると応答テンプレートに過学習し中身は学習しない。DPO β: 0.1 標準、0.01 以下で reference 乖離崩壊、0.5 以上で preference 無視。LoRA alpha: effective LR = LR × alpha/r、alpha=r でスケール不変、alpha=2r で効果増強。
落とし穴 — 10 つの頻発失敗モード
| # | 落とし穴 | 症状 | 対策 |
|---|---|---|---|
| 1 | β2=0.999 in bf16 | 初期 5K ステップで収束遅延 | β2=0.95 (GPT-3 以降の LLM 標準) |
| 2 | fp16 オーバーフロー (loss scaling 未設定) | 訓練初期に loss が突然 NaN | bf16 へ切替、もしくは dynamic loss scaling (arXiv:1710.03740) |
| 3 | Warmup 不足 | 100 ステップ以内に NaN/spike その後回復 | 総トークンの 0.1% 以上 (Llama-3 = 2000 step) |
| 4 | Gradient clip 過剰 (max_norm=0.1 等) | 常に clip 発動、underfit | max_norm=1.0 へ戻し、pre-clip norm を全 step ログ |
| 5 | Loss spike に rollback 機構なし | spike 後そのまま発散 | PaLM 流 — 100 ステップ巻き戻し、データ窓スキップ |
| 6 | SFT loss masking 漏れ | 低 loss だが応答が定型・反復 | label=-100 検証 (SFT loss ≈ CLM loss / response 比) |
| 7 | DPO 高 LR で SFT 能力忘却 | 拒否多発、応答崩壊 | LR=1e-6〜5e-7、必要なら ORPO (arXiv:2403.07691) で SFT 正則化併用 |
| 8 | Sequence packing cross-doc attention (SFT 時) | 直前サンプルへの言及生成 | Flash Attention cu_seqlens で per-doc causal mask |
| 9 | bf16 Adam ε ミスマッチ | 小 params で更新分散過大 | ε=1e-15、または fp32 master params に依存 |
| 10 | Cosine 固定 T 問題 (継続不能) | 計画外延長で LR ≈ 0 | WSD (arXiv:2404.06395) もしくは SGDR warm restart |
2026 フロンティア
μP 標準化: Cerebras / MosaicMPT / Phi-3/Phi-4 (arXiv:2412.08905) が採用、コード改変コストが残る障壁。fp8 pretraining: DeepSeek-V3 (arXiv:2412.19437) が 671B MoE の fp8 大規模事前学習の初例で custom fp8 all-reduce を実装、Transformer Engine の H100 fp8 GEMM は bf16 比 ~2× スループット、LayerNorm / softmax / loss / optimizer state は bf16 残置。WSD reusable checkpoint: MiniCPM (arXiv:2404.06395) と Llama-3 cooling が stable 末端 checkpoint から複数サイズへ分岐。MFU 目標 ~50%+: FLOPs ≈ 6 × N_params × batch_tokens、A100 で 35〜50%、H100 で 45〜55%、低 MFU は data loading / 通信 / メモリ帯域ボトルネック (tech-48)。二次最適化候補: Sophia (arXiv:2305.14342) は Hutchinson 対角 Hessian で AdamW 比 2× token 効率を主張、Shampoo / SOAP はメモリオーバヘッドで本番採用限定的。Loss spike auto-recovery: 細粒 checkpoint + per-sample loss 異常検出 + 自動 rollback が Megatron-Core で標準装備化。
See also
- tech-49 Training Paradigm — 学習プロセス全体 (pretraining → SFT → DPO → RLVR → merge)
- tech-48 Distributed Training — 並列軸とインフラ (DP/TP/PP/SP/EP, ZeRO, FSDP)
- 今後: Training Optimization (#346) — オプティマイザ内部数学 (Adam 導出、二次最適化、preconditioner 理論)
- Source mindmap canvas
Backlinks
9 backlinks
- related Training Optimization(学習最適化)
- related Scaling and Operations(スケーリング則と LLMOps)
- related Containerization and Orchestration(コンテナ化とオーケストレーション)
- related Neural Networks and Deep Learning(ニューラルネットワークとディープラーニング)
- related Machine Learning(機械学習)
- related Model Serialization Format(モデルシリアライゼーションフォーマット)
- related Model Runtime and Conversion(モデルランタイムと変換)
- related Model Compression Techniques(モデル圧縮)
- related ML Learning Methods(機械学習手法の分類)