Google Brain が 2023 年に提案した符号ベースのオプティマイザ。勾配の符号(sign)のみを使って更新方向を決定し、二次モーメントを保持しないことで AdamW 比メモリ約 33% 削減を実現。EvoLved Sign Momentum の略称で、自動探索アルゴリズムにより発見された。
PC構成ビルダーで最適なパーツを選択
Lion(EvoLved Sign Momentum)は、2023 年に Google Brain の Xiangning Chen らが論文「Symbolic Discovery of Optimization Algorithms」で提案したオプティマイザである。進化的プログラム探索(AutoML の一種)によって発見された手法で、人間が設計した従来のオプティマイザとは根本的に異なるアプローチを取る。勾配の符号(+1/-1)のみを更新に使用し、二次モーメントを保持しないため、AdamW と比較してオプティマイザ状態のメモリが約半分になる。
Lion の更新は非常にシンプルで、以下の 3 ステップで構成される:
AdamW との最大の違いは、更新量が常に ±η(学習率)で固定される点。Adam 系では適応的学習率によりパラメータごとに異なる更新量になるが、Lion ではすべてのパラメータが同じ絶対量で更新される。
| 特性 | AdamW | Lion |
|---|---|---|
| オプティマイザ状態 | m (FP32) + v (FP32) = 8 bytes/param | m (FP32) = 4 bytes/param |
| 更新量 | 適応的(パラメータ依存) | 固定(±η) |
| 計算量/ステップ | 中程度(sqrt, div) | 低い(sign のみ) |
| 推奨学習率 | 1e-4〜3e-4 | 1e-5〜3e-5(AdamW の 1/3〜1/10) |
| 推奨 Weight Decay | 0.1 | 0.3〜1.0(AdamW の 3〜10 倍) |
| β1 | 0.9 | 0.9 |
| β2 | 0.95 | 0.99 |
| バッチサイズ感度 | 低い | 中程度(大バッチほど有利) |
Lion の最大のメリットはメモリ効率にある:
| モデルサイズ | AdamW 状態 | Lion 状態 | 削減量 |
|---|---|---|---|
| 1B | 8 GB | 4 GB | -4 GB |
| 7B | 56 GB | 28 GB | -28 GB |
| 13B | 104 GB | 52 GB | -52 GB |
| 70B | 560 GB | 280 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 と同等以上の性能を報告。しかし以下の限界がある:
A: いいえ。Lion はメモリ効率で AdamW に勝るが、ハイパーパラメータの感度が高く、最適な設定を見つけるまでの試行コストが大きい。商用 LLM の多くが依然として AdamW を採用しているのは、再現性と安定性の実績による。研究目的やメモリ制約が厳しい環境では Lion の検討価値がある。
A: 学習が発散する可能性が高い。Lion は符号ベースの更新で全パラメータに同じ絶対量の更新を適用するため、AdamW と同じ学習率では更新量が過大になる。Lion の推奨学習率は AdamW の 1/3〜1/10 で、1e-5〜3e-5 の範囲が一般的。
A: SignSGD は単純に勾配の符号を取るだけだが、Lion は一次モーメントとの線形結合の符号を取る点が異なる。この違いにより、Lion は過去の勾配情報を保持して更新方向を安定化させる。また、Lion は β1 と β2 で更新計算とモーメント更新に異なる重みを使い分ける設計で、SignSGD にはないモーメントの非対称性がある。