AI・機械学習
上級

LLM勾配最適化(エルエルエムコウバイサイテキカ)

LLM(大規模言語モデル)の学習において、損失関数の勾配情報を利用してモデルパラメータを効率的に更新する手法の総称。Adam 系を基本に、Lion・Sophia・LAMB など 2023-2026 年に多数の改良オプティマイザが提案され、学習速度・メモリ効率・収束安定性が大幅に向上した。

0 回閲覧
0 いいね

LLM勾配最適化とは

LLM勾配最適化(Gradient Optimization)は、大規模言語モデルの学習時に損失関数の勾配を用いてパラメータを更新するアルゴリズム群である。数十億〜数兆パラメータを持つ LLM では、オプティマイザの選択がメモリ消費量・収束速度・最終的なモデル品質を直接左右する。2026 年現在、AdamW が事実上の標準だが、Lion(メモリ半減)・Sophia(収束 2 倍速)・LAMB(大バッチ対応)など次世代手法が実用段階に入った。

勾配最適化の基本原理

勾配降下法(Gradient Descent)は、損失関数 L(θ) のパラメータ θ に対する勾配 ∇L(θ) を計算し、学習率 η を掛けてパラメータを更新する:

  • SGD(確率的勾配降下法): θ ← θ - η·∇L(θ)。最も基本的だがLLMでは収束が遅い
  • Momentum: 過去の勾配を指数移動平均で蓄積し慣性を付与。SGD+Momentum は CNN では有効だがLLMでは不十分
  • Adam: 一次モーメント(勾配の移動平均)と二次モーメント(勾配二乗の移動平均)を組み合わせた適応的学習率。2014 年提案、LLM 学習の基盤
  • AdamW: Adam に Weight Decay を正則化として分離追加。2019 年以降の LLM 学習で事実上の標準
  • Lion/Sophia/LAMB: 2023-2025 年に提案された次世代手法。それぞれメモリ効率・収束速度・スケーラビリティに特化

主要オプティマイザ比較表

オプティマイザ提案年メモリ倍率(vs SGD)収束速度(vs AdamW)最適バッチサイズ主な採用例
SGD+Momentum19861x0.3x256-1KResNet, ViT初期
Adam20143x0.8x512-4KBERT, GPT-2
AdamW20193x1.0x (基準)1K-4MGPT-4, Llama 3, Mistral
Lion20232x1.0-1.1x1K-64KPaLM 2 実験, 一部 OSS
Sophia20233.5x1.5-2.0x512-4K研究段階, GPT-2再現
LAMB20193x1.0x32K-4MBERT大バッチ, Megatron
Adafactor20181.5x0.9x1K-64KT5, PaLM
CAME20231.5x1.0x1K-64KLLaMA ファインチューニング

PyTorch での実装例

PyTorch 2.x では主要オプティマイザが標準搭載されている:

import torch
from torch.optim import AdamW

model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3-8B")

optimizer = AdamW(
    model.parameters(),
    lr=3e-4,           # ピーク学習率
    betas=(0.9, 0.95), # Llama 3 推奨値
    weight_decay=0.1,   # 正則化強度
    eps=1e-8
)

scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(
    optimizer,
    T_max=total_steps,
    eta_min=3e-5        # 最終学習率 = ピークの 1/10
)

DeepSpeed ZeRO-3 環境では FusedAdam が標準で、通信オーバーヘッドを 15-30% 削減する。Megatron-LM では DistributedOptimizer がパラメータシャーディングと勾配累積を統合する。

学習率スケジューリングとの関係

オプティマイザ単体では不十分で、学習率スケジューラとの組み合わせが重要:

  • Warmup + Cosine Decay: GPT-4/Llama 3 の標準。Warmup 2,000 ステップ → Cosine で最終学習率まで減衰
  • Warmup + Linear Decay: BERT/T5 で採用。計算量が少なく予測可能
  • Warmup + Inverse Sqrt: Transformer 原論文の手法。長時間学習に安定
  • WSD(Warmup-Stable-Decay): MiniCPM で提案。安定期を挟むことで中間チェックポイントの品質向上

2026 年のベストプラクティスは AdamW + Cosine Decay(β1=0.9, β2=0.95, wd=0.1)で、Llama 3・Mistral Large・Qwen 2.5 すべてこの構成を採用している。

分散学習における勾配最適化

数百〜数千 GPU での分散学習では、勾配の集約方法がボトルネックになる:

  • Data Parallel: 全 GPU で同じモデルを持ち、勾配を AllReduce で集約。メモリ効率が悪い
  • ZeRO Stage 1: オプティマイザ状態をシャード。AdamW のメモリを GPU 数で分割
  • ZeRO Stage 2: 勾配もシャード。通信量は増えるが GPU あたりメモリが 1/N に
  • ZeRO Stage 3: パラメータもシャード。1T パラメータ規模のモデルを学習可能に
  • FSDP(Fully Sharded Data Parallel): PyTorch 2.x 公式の ZeRO-3 相当実装

LAMB は大バッチ(32K-4M トークン)での分散学習に特化し、レイヤーごとに学習率を適応的に調整することで、バッチサイズ増大時の品質低下を防ぐ。Google の BERT-Large 事前学習で 76 分(TPUv3 1024 基)の記録を達成した。

混合精度学習との統合

FP16/BF16 混合精度学習では、勾配のアンダーフロー防止が重要:

  • Loss Scaling: FP16 勾配のアンダーフロー防止に損失値を 1024-65536 倍にスケール
  • BF16: 指数部が FP32 と同じ 8 bit のため Loss Scaling 不要。A100/H100 で標準
  • FP8: Hopper 世代(H100/H200)で対応。学習の一部を FP8 化し 1.5-2 倍高速化
  • Master Weights: オプティマイザ状態は FP32 で保持し、Forward/Backward は BF16 で実行

よくある質問(FAQ)

Q: AdamW と Adam の違いは何ですか?

A: AdamW は Weight Decay(重み減衰)を勾配更新とは独立に適用する。Adam では Weight Decay が学習率と結合してしまい、正則化の効果が適応的学習率で打ち消される問題があった。AdamW はこの分離により、学習率 1e-3〜3e-4・Weight Decay 0.01〜0.1 の広い範囲で安定して動作する。2019 年の Loshchilov & Hutter の論文以降、LLM の事実上の標準となった。

Q: Lion は AdamW より優れていますか?

A: Lion はメモリ使用量が AdamW の約 2/3(二次モーメントを保持しない)で、符号関数ベースの更新により実装がシンプルである。Google の PaLM 2 の一部実験で AdamW と同等以上の性能を示した。ただし、ハイパーパラメータの感度が高く、学習率を AdamW の 1/3〜1/10 に設定する必要がある。2026 年時点では、確実性を重視する商用 LLM の多くは依然として AdamW を採用している。

Q: 1B パラメータの LLM を学習する場合、オプティマイザのメモリ使用量はどのくらいですか?

A: AdamW は各パラメータに対して一次モーメント(FP32: 4 bytes)と二次モーメント(FP32: 4 bytes)を保持するため、1B パラメータで約 8 GB のオプティマイザ状態が必要になる。パラメータ自体(FP32: 4 GB)と合わせて約 12 GB。Lion なら一次モーメントのみで約 8 GB(パラメータ含む)。Adafactor は行・列方向の分解で約 5-6 GB に削減できるが、収束が若干遅くなる傾向がある。

Q: ファインチューニングでもオプティマイザの選択は重要ですか?

A: 重要である。SFT(Supervised Fine-Tuning)では AdamW(lr=1e-5〜5e-5, wd=0.01)が標準で、LoRA/QLoRA では 1e-4〜3e-4 のやや高い学習率が使える。DPO/RLHF のアライメント学習では lr=5e-7〜1e-6 と極めて低い学習率が必要で、β2=0.999(デフォルト値)に戻すことが推奨される。Lion や Sophia はファインチューニングでの検証が限定的で、安定性の観点から AdamW が推奨される。

まとめ

  • LLM 勾配最適化は AdamW が 2026 年時点の事実上の標準
  • Lion はメモリ効率に優れるが、ハイパーパラメータ調整がシビア
  • Sophia は収束速度 2 倍を謳うが、ヘシアン計算のオーバーヘッドが課題
  • LAMB は大バッチ分散学習に特化し、数千 GPU 環境で威力を発揮
  • 混合精度(BF16)+ ZeRO Stage 2/3 + Cosine Decay の組み合わせが現代 LLM のベストプラクティス