Lion(オプティマイザ)(ライオン)
Google Brain が 2023 年に発表した符号ベース(sign-based)の最適化アルゴリズム。EvoLved Sign Momentum の略称で、進化的探索によって発見された更新則を持つ。勾配の符号のみを使用するため Adam 比でメモリ使用量が約半分となり、画像分類・言語モデルの一部タスクで AdamW を上回る性能を示した。
Lionオプティマイザとは
Lion(EvoLved Sign Momentum)は、2023 年に Google Brain の Xiangning Chen らが論文「Symbolic Discovery of Optimization Algorithms」で発表した最適化アルゴリズムである。従来のオプティマイザが人間の直感や数学的分析に基づいて設計されたのに対し、Lion はプログラム探索(進化的アルゴリズム)によって自動的に発見された点が画期的である。
Lion の最大の特徴は、パラメータ更新に勾配の符号(sign)のみを使用することである。Adam 系のオプティマイザが勾配の大きさに基づく適応学習率を計算するのに対し、Lion は更新量の絶対値が常に一定(学習率 η に等しい)となる。これにより 2 次モーメント v の保持が不要となり、オプティマイザ状態のメモリが Adam の約半分で済む。
Lionのアルゴリズム
Lion の更新則はシンプルである:
- 更新方向の計算: u_t = sign(β1 · m_{t-1} + (1 − β1) · g_t)
- パラメータ更新: θ_{t+1} = θ_t − η · (u_t + λ · θ_t)
- モーメント更新: m_t = β2 · m_{t-1} + (1 − β2) · g_t
ここで sign() は要素ごとの符号関数(正なら +1、負なら −1、ゼロなら 0)である。注目すべきは、更新方向の計算(ステップ 1)とモーメント更新(ステップ 3)で異なる β 値を使用する点である。これは進化的探索によって発見された構造であり、人間の直感では設計しにくい特徴といえる。
Lion vs AdamW の比較
| 項目 | Lion | AdamW |
|---|---|---|
| 更新量 | 均一(sign ベース) | パラメータごとに適応 |
| オプティマイザ状態 | m のみ(1 つ) | m + v(2 つ) |
| メモリ使用量 | パラメータの 1 倍追加 | パラメータの 2 倍追加 |
| デフォルト β1, β2 | 0.9, 0.99 | 0.9, 0.95〜0.999 |
| 推奨学習率 | AdamW の 1/3〜1/10 | 1e-4〜3e-4 |
| 推奨 weight_decay | AdamW の 3〜10 倍 | 0.01〜0.1 |
メモリ効率の実際
Lion のメモリ優位性は LLM スケールで顕著になる。70B パラメータモデルの場合:
| 項目 | AdamW (FP32) | Lion (FP32) | 差分 |
|---|---|---|---|
| パラメータ | 280 GB | 280 GB | — |
| 勾配 | 280 GB | 280 GB | — |
| 1次モーメント m | 280 GB | 280 GB | — |
| 2次モーメント v | 280 GB | 0 GB | −280 GB |
| オプティマイザ合計 | 560 GB | 280 GB | −280 GB |
280 GB の削減は、H100 (80GB) で約 3.5 台分の GPU メモリに相当する。この差は分散学習の並列度やバッチサイズの選択に直接影響する。
性能特性と適用領域
Lion の性能特性は以下のように要約される:
- 画像分類: ImageNet で AdamW と同等〜やや上回る性能。特に ViT(Vision Transformer)との相性がよい
- 言語モデル事前学習: 小〜中規模(1B〜7B)では AdamW と同等の性能が報告。大規模(70B 以上)での大規模検証は限定的
- マルチモーダル: CLIP の訓練で AdamW を上回る結果が報告されている
- ファインチューニング: 学習率と weight_decay のチューニングが AdamW より敏感で、ハイパーパラメータ探索コストが高い
ハイパーパラメータの注意点
Lion を使用する際の最大の注意点は、AdamW とはハイパーパラメータの最適範囲が大きく異なることである。Lion の更新量は sign ベースで均一なため、学習率を AdamW の 1/3〜1/10 に設定する必要がある。逆に weight_decay は 3〜10 倍に増やす。この調整を怠ると学習が発散する。
| パラメータ | AdamW 典型値 | Lion 推奨値 |
|---|---|---|
| 学習率 | 1e-4〜3e-4 | 1e-5〜3e-5 |
| weight_decay | 0.1 | 0.3〜1.0 |
| β1 | 0.9 | 0.9 |
| β2 | 0.95 | 0.99 |
進化的発見の意義
Lion が進化的アルゴリズムによって発見されたという事実は、最適化アルゴリズム研究に新しいパラダイムを示した。具体的には、基本的な数学演算(加算、乗算、符号関数、指数移動平均など)を組み合わせたプログラム空間を進化的に探索し、既知のベンチマークで性能を評価するというメタ最適化アプローチである。
この手法は AutoML(自動機械学習)の一環として位置づけられ、NAS(Neural Architecture Search)がネットワーク構造を自動設計するのと同様に、学習アルゴリズム自体を自動設計するという方向性を示している。
FAQ
Q1. LionはAdamWの完全な代替になるか?
現時点では完全な代替とは言えない。Lion は特定のタスク(画像分類、CLIP 訓練)で優れた結果を示しているが、LLM の大規模事前学習での検証データが限定的である。また、ハイパーパラメータの転用が効きにくく、AdamW で確立された設定をそのまま流用できない。プロダクション環境では AdamW が依然として最も安全な選択肢であり、Lion はメモリ制約が厳しい場合や実験的な用途で検討する位置づけである。
Q2. Lionの学習率が低い理由は?
Lion は sign 関数により更新量の絶対値が常に一定(= 学習率)になる。一方 AdamW はパラメータごとに更新量がスケーリングされ、多くのパラメータで実効的な更新量は学習率より小さくなる。そのため、同じ学習率を使うと Lion の方が大きく更新してしまい発散する。学習率を下げることで実効的な更新量を AdamW と揃えている。
Q3. Lionのメモリ削減はどの程度実用的?
70B モデルで約 280 GB の削減(H100 3.5 台分相当)は非常に大きい。ただし ZeRO Stage 3 や FSDP と組み合わせた場合、オプティマイザ状態は GPU 間でシャーディングされるため、1 GPU あたりの削減幅は並列度に依存する。8-bit Adam と比較すると、Lion の方がメモリ効率は劣る(8-bit Adam は FP32 比約 75% 削減)が、精度劣化のリスクが低いという利点がある。