SkewAdamは、Mixture-of-Experts(MoE)の学習メモリを60%以上削減し、精度を大幅に向上させます。これにより、開発者は67.8億パラメータのMoEモデルを単一の40GB GPUに収めることが可能になります。

なぜMoEの学習はメモリの壁に突き当たるのか

MoEアーキテクチャは、高密度なバックボーンを維持しつつ、各入力を「エキスパート」と呼ばれるサブネットワークの小さなサブセットにルーティングします。その利点は、計算量を比例的に増やすことなく、数十億のパラメータまでスケールできるモデルを実現できることです。実際には、オプティマイザ(特に多くのチームが使用するAdamWのバリアント)がGPU RAMの大部分を消費します。67.8億パラメータのモデルでは、オプティマイザのモーメンタム(momentum)と分散(variance)のテンソルだけで約50GBを必要とします。これにアクティベーション(活性化値)とモデルの重みを加えると、ピークメモリは81.4GBに達し、マルチGPU構成や低速な学習スケジュールを余儀なくされます。

SkewAdamが何を変えたのか

SkewAdamは新しい学習ルールを考案したわけではありません。Adamのモーメント(moments)を保持する場所を再構成したのです。

  • 高密度なバックボーンはフル精度のモーメンタムを保持し、高密度層に必要なスムーズな更新を維持します。
  • エキスパートバンクは分散の因数分解された近似値を保存し、各エキスパートに対して保持するデータを削減します。
  • どのエキスパートを活性化するかを決定するルーターは、正確な2次モーメントの推定値を保持します。

これら3つのコンポーネントを個別の「ティア(階層)」として扱うことで、このオプティマイザは重要度の低い場所での冗長な精度を削り、最も重要な場所では精度を維持します。

測定可能なインパクト

同じ67.8億パラメータのMoEモデルをSkewAdamで実行した結果は以下の通りです。

  • ピークGPUメモリ: 31.3GB(81.4GBから削減)
  • オプティマイザ状態のフットプリント: 1.29GB(50GBから削減)

削減された状態は、単一の40GBアクセラレータに余裕を持って収まります。

単なる節約ではなく、精度の向上も

メモリの削減はモデルの品質を損なうことが多いですが、SkewAdamは言語モデルの標準的な指標であるパープレキシティ(perplexity)を、126.8(AdamW)から108.4へと改善します。また、同じタスクにおいてMuon(120.2)やLion(393.7)をも上回ります。著者によれば、この向上は3つのティアすべてでモーメンタムを維持していることによるものであり、Adafactorのようにモーメンタムを完全に破棄する手法は後塵を拝することになります。

未解決の課題

SkewAdamの結果は67.8億パラメータのモデルで実証されています。モデルの規模が桁違いに大きくなった場合や、言語モデリング以外のタスクにおいて、同様のメモリ状態の比率が維持されるかどうかはまだ不明です。

注視すべき点

  • より大規模なMoE構成(数百億パラメータ)でのベンチマーク。
  • オープンソースフレームワークへの採用や、一般的な学習スクリプトへの組み込み。
  • 収束速度や異なる学習率スケジュール下での安定性など、潜在的なトレードオフに関するコミュニティからのフィードバック。

出典:オプティマイザの設計と実証結果を詳述した開発者の投稿。