vLLM Day-0サポート:RecursiveのFlint

vLLMは、RecursiveのFlint(400億パラメータのMixture-of-Experts(MoE)モデル)に対するday-0サポートを統合し、ユーザーが単一のGB200 GPU上で高スループットでモデルを効率的にサービス提供できるようにしました。

Flintモデルの概要と機能

Flintは、トークンあたり約25億パラメータを活性化する400億パラメータのMoEモデルです。262Kトークンの大きなコンテキストウィンドウを備え、NVFP4(量子化認識トレーニング済み)とBF16の2つのチェックポイントで利用可能です。

NVFP4チェックポイントはGGUFファイルとして提供され、vLLMはロード時にロスレスで再パッケージ化します。このプロセスにより、モデルは重みのみ(W4A16)で実行でき、BF16アクティベーションとKVキャッシュを維持し、GSM8K、GPQA-Diamond、長文脈MRCR、ツール呼び出しスイートなどのベンチマークで精度がRecursiveのリファレンス実装と一致することを保証します。

Flintモデルのアーキテクチャ

Flintは、隠れサイズ2048の49層のpre-norm MoEアーキテクチャを利用しています。そのユニークな設計は、大きなコンテキストウィンドウを効率的に管理するためにローカルアテンションを重視しています。

  • アテンションメカニズム: ほとんどの層(35層)は、RoPEを使用した513トークンのスライディングウィンドウアテンションを使用します。フルコンテキストにアテンションするのは14層のみで、位置エンコーディングは使用しません。この設計により、KVキャッシュコストはトークンあたり28 KiBに制限され、フルコンテキストの14層のみがシーケンス全体のKV状態を保持します。
  • MoE構造: モデルは256のエキスパートを備え、シグモイドtop-6選択メカニズムと共有エキスパートを採用しています。層0と1はMoE構造の代わりに高密度MLPを使用します。
  • アテンションシンク: アーキテクチャは学習されたアテンションシンクを組み込み、32のクエリヘッドと4のKVヘッドを持つグループクエリアテンション(GQA)を使用し、ヘッドごとのQ/K RMSNormを採用しています。

パフォーマンスとサービング実装

単一のGB200 GPUでFlintをサービス提供すると、100Kトークンのコンテキストを処理する場合でも、約500トークン/秒のデコードレートを達成します。このパフォーマンスは、vLLM内で実装された広範なカーネルレベルの最適化の結果です。

Flintサポートは、day-0 Dockerイメージ vllm/vllm-openai:flint(x86_64およびarm64、CUDA 13.0対応)で利用可能です。

使用例:

NVFP4チェックポイント(GGUF)の場合、Dockerコマンドは次のとおりです:

docker run --gpus all --ipc=host -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:flint \
  RecursiveSI/flint-nvfp4-gguf \
  --hf-config-path RecursiveSI/flint --tokenizer RecursiveSI/flint \
  --enable-auto-tool-choice --tool-call-parser glm47 \
  --reasoning-parser glm47 --exclude-tools-when-tool-choice-none

BF16チェックポイントの場合、Dockerコマンドは次のとおりです:

docker run --gpus all --ipc=host -p 8000:8000 \
  -v ~/.cache/huggingface:/root/.cache/huggingface \
  vllm/vllm-openai:flint \
  RecursiveSI/flint \
  --enable-auto-tool-choice --tool-call-parser glm47 \
  --reasoning-parser glm47 --exclude-tools-when-tool-choice-none

最適化戦略

パフォーマンスの向上は、標準のvLLMレイヤーを専用のFlintカーネルに置き換えることで達成され、リファレンス実装に対して厳密にチェックされました。

主な最適化は次のとおりです:

  • 小バッチMoEカーネル: これらのカーネルにより、ルーターとエキスパートGEMVは選択されたエキスパートの重みのみを読み取ることができ、デコードステップのレイテンシが27%削減されます。
  • 融合カーネル: Q/Kノルム、RoPE、KVキャッシュ書き込みを単一のカーネルに融合することで、レイテンシが8%削減されました。
  • 低レイテンシデコードパス: 最大8リクエストの場合、低レイテンシパスはMoEレイヤー操作(Q/Kノルム、RoPE、ルーティング、エキスパート結合)を隣接するGEMVカーネルに融合します。このパスにより、NVFP4デコード時間は2.7倍(4.81 msから1.78 ms)、BF16デコード時間は1.5倍(3.53 msから2.34 ms)削減されます。

エンドツーエンドでサービス提供する場合、100Kコンテキストでのバッチ1デコードはトークンあたり2.06 msかかり、これにはフォワードパス、LMヘッド、サンプリングが含まれます。

SUMMARY: vLLMは現在、RecursiveのFlint(400億パラメータのMoEモデル)に対するday-0サポートを提供し、単一のGB200 GPU上で最大500トークン/秒の高スループットサービスを可能にします。

TITLE: vLLM Day-0サポート:RecursiveのFlint

Sources