AI・機械学習
上級

Lion Optimizer(ライオンオプティマイザ)

Google Brain が 2023 年に提案した符号ベースのオプティマイザ。勾配の符号(sign)のみを使って更新方向を決定し、二次モーメントを保持しないことで AdamW 比メモリ約 33% 削減を実現。EvoLved Sign Momentum の略称で、自動探索アルゴリズムにより発見された。

0 回閲覧
0 いいね

Lion Optimizer とは

Lion(EvoLved Sign Momentum)は、2023 年に Google Brain の Xiangning Chen らが論文「Symbolic Discovery of Optimization Algorithms」で提案したオプティマイザである。進化的プログラム探索(AutoML の一種)によって発見された手法で、人間が設計した従来のオプティマイザとは根本的に異なるアプローチを取る。勾配の符号(+1/-1)のみを更新に使用し、二次モーメントを保持しないため、AdamW と比較してオプティマイザ状態のメモリが約半分になる。

Lion の更新則

Lion の更新は非常にシンプルで、以下の 3 ステップで構成される:

  1. 更新方向の計算: sign(β1·m + (1-β1)·g) — 一次モーメント m と現在の勾配 g の線形結合の符号
  2. パラメータ更新: θ ← θ - η·sign(...) - η·λ·θ — 符号ベースの更新 + Decoupled Weight Decay
  3. モーメント更新: m ← β2·m + (1-β2)·g — 次ステップ用のモーメント更新

AdamW との最大の違いは、更新量が常に ±η(学習率)で固定される点。Adam 系では適応的学習率によりパラメータごとに異なる更新量になるが、Lion ではすべてのパラメータが同じ絶対量で更新される。

AdamW との比較

特性AdamWLion
オプティマイザ状態m (FP32) + v (FP32) = 8 bytes/paramm (FP32) = 4 bytes/param
更新量適応的(パラメータ依存)固定(±η)
計算量/ステップ中程度(sqrt, div)低い(sign のみ)
推奨学習率1e-4〜3e-41e-5〜3e-5(AdamW の 1/3〜1/10)
推奨 Weight Decay0.10.3〜1.0(AdamW の 3〜10 倍)
β10.90.9
β20.950.99
バッチサイズ感度低い中程度(大バッチほど有利)

メモリ削減効果

Lion の最大のメリットはメモリ効率にある:

モデルサイズAdamW 状態Lion 状態削減量
1B8 GB4 GB-4 GB
7B56 GB28 GB-28 GB
13B104 GB52 GB-52 GB
70B560 GB280 GB-280 GB

70B モデルの学習では AdamW のオプティマイザ状態だけで 560 GB が必要だが、Lion なら 280 GB で済む。ZeRO Stage 2 と組み合わせれば、GPU 数を 30-40% 削減できる可能性がある。

実装例

# PyTorch での Lion 実装(lion-pytorch パッケージ)
# pip install lion-pytorch
from lion_pytorch import Lion

optimizer = Lion(
    model.parameters(),
    lr=1e-5,           # AdamW の 1/10 程度
    betas=(0.9, 0.99),
    weight_decay=1.0    # AdamW の 10 倍
)

Google の公式実装は JAX/Flax で提供されており、PyTorch 向けには lucidrains の lion-pytorch が広く使われている。

実績と限界

Google の PaLM 2 の一部実験で AdamW と同等以上の性能を報告。しかし以下の限界がある:

  • 学習率感度が高い: AdamW の 1/3〜1/10 に設定する必要があり、最適値の探索コストが高い
  • 小バッチでの不安定性: バッチサイズ 256 以下では勾配のノイズが符号に直接影響し不安定
  • ファインチューニングでの検証不足: SFT/DPO/RLHF での大規模検証が限定的
  • 再現性の課題: 同一設定でも乱数シードによる性能のばらつきが AdamW より大きい

よくある質問(FAQ)

Q: Lion は AdamW の完全な上位互換ですか?

A: いいえ。Lion はメモリ効率で AdamW に勝るが、ハイパーパラメータの感度が高く、最適な設定を見つけるまでの試行コストが大きい。商用 LLM の多くが依然として AdamW を採用しているのは、再現性と安定性の実績による。研究目的やメモリ制約が厳しい環境では Lion の検討価値がある。

Q: Lion の学習率を AdamW と同じ 3e-4 にするとどうなりますか?

A: 学習が発散する可能性が高い。Lion は符号ベースの更新で全パラメータに同じ絶対量の更新を適用するため、AdamW と同じ学習率では更新量が過大になる。Lion の推奨学習率は AdamW の 1/3〜1/10 で、1e-5〜3e-5 の範囲が一般的。

Q: Lion と SignSGD の違いは何ですか?

A: SignSGD は単純に勾配の符号を取るだけだが、Lion は一次モーメントとの線形結合の符号を取る点が異なる。この違いにより、Lion は過去の勾配情報を保持して更新方向を安定化させる。また、Lion は β1 と β2 で更新計算とモーメント更新に異なる重みを使い分ける設計で、SignSGD にはないモーメントの非対称性がある。

まとめ

  • Lion は符号ベースの更新で AdamW 比メモリ 33% 削減を実現
  • 学習率は AdamW の 1/3〜1/10、Weight Decay は 3〜10 倍に設定
  • 大バッチ環境で特に有効だが、小バッチでは不安定になりやすい
  • 2026 年時点では研究・実験用途が主流で、商用 LLM では AdamW が依然として標準