Bevy、MoEのエキスパートオフロード推論でllama.cpp比最大3.46倍

arXivで公開された論文は、エキスパートオフロード型MoE推論システム「Bevy」を提案し、2つのローカルプラットフォームでllama.cppの最大3.46倍のデコードスループットを示しました。最速のプリフェッチベースラインに対しても最大1.55倍です。

何が新しいか

エキスパートオフロードは大規模MoE言語モデルのローカル実行を可能にしますが、従来のバッチ処理では不足エキスパートの取得中にGPUが停止します。一般的な対策のプリフェッチは、必要になるエキスパートを予測し、空いているリンク帯域で取得します。論文は、GPUメモリにエキスパートキャッシュがある場合はプリフェッチが逆効果になり得ると指摘しています。キャッシュに必要なエキスパートが多く含まれるほど、予測の精度が下がり、不要なエキスパートの取得で帯域とGPUメモリを浪費するためです。著者らは「適切なリクエストスケジューリングはプリフェッチに勝る」という知見を軸にBevyを設計しました。

仕組み

  • ランアヘッド推論: 必要なエキスパートが揃っているリクエストは後続層へ先行実行し、他のリクエストはフェッチ完了まで待機します。先行したリクエストが次に必要とするエキスパートが判明した時点で、それをフェッチします。
  • 予測なしのオーバーラップ: 準備ができたリクエストの計算中に不足エキスパートのフェッチを重ね合わせ、エキスパート選択の予測を使いません。
  • 自己平衡型スケジューラー: リクエストを個別に動かすとGPUメモリ上の共有重みを重複して読み出し、計算時間が増えます。Bevyは各層で実行可能なリクエストをバッチ化し、遅れているリクエストを優先し、エキスパートの利用可能性に応じてグループ分けを変えます。

評価結果

比較対象 デコードスループット
llama.cpp 最大3.46倍
最速のプリフェッチベースライン 最大1.55倍
評価プラットフォーム ローカル環境2種

llama.cppはggml-orgが公開するC/C++実装の推論ソフトウェアで、CPUとGPUの併用や量子化に対応します。

この記事の固有名詞

コメント (0)

まだコメントはありません。

コメントを書く

2000文字以内