vLLM AgentXリリース:現実世界のエージェントサービングを最適化する

TL;DR

vLLMは、KVキャッシュ、並列化、スケジューリングの統合的な改善を導入し、エージェントサービングを1GPU秒あたり13万トークンまで向上させ、Opus 5 APIの価格と比較して14.6倍~106倍のサービングコストの優位性を達成しました。

エージェントワークロードの特性

  • 中央値のセッション長:43ターン。
  • 中央値の入力コンテキスト:142Kトークン;中央値の出力:444トークン。
  • プレフィックスキャッシュヒット率:96%以上。
  • 44%のセッションにサブエージェントが含まれており、中央値は4つのサブエージェントロールアウトです。

これらの数値は、現実世界のコーディングアシスタントのトレースを捉えたSemiAnalysisのAgentXベンチマークから得られています。各ターンで最新のツール結果が蓄積されたコンテキストに追加されるため、入力は増大しますが、新しいプレフィルは短く、リクエストの大部分は以前に見たプレフィックスです。

エージェントのサービングにおける主な課題

  1. プレフィックスキャッシュの負荷 – 各ターンで会話全体を再実行すると、GPU間およびレプリカ間で頻繁にKVキャッシュのオフロードが発生します。
  2. 実行効率 – 長いコンテキストと厳格なレイテンシSLOの要件により、1トークンあたりのスループットを高め、デコードレイテンシを低くする必要があります。
  3. P/D比の選定 – 変動するコンテキスト長とキャッシュヒット率により、最適なプレフィル対デコード(P/D)バランスを選びにくく、特に並行処理下ではさらに困難です。

フルスタック最適化アプローチ

vLLMは、データ、実行、制御の3つの平面で3つの課題に対処します。

データ平面 – コンピュートに近いウォームなKVキャッシュ

ハイブリッドKVキャッシュマネージャー

  • すべてのアテンションタイプ(フル、スライディングウィンドウ、線形)に均一なメモリページを割り当て単位として使用。
  • 単一の共有ブロックプールを維持し、並行性やプレフィックス再利用パターンに基づいて動的に再割り当て可能。
  • 例:DeepSeek V4の92個のテンソルのような断片化されたタイプ別割り当てを、パックされたレイアウトに置き換え、FP4インデキシングを有効にすると、パディングとP/D転送オーバーヘッドを約10%削減。

ヒエラルキカルKVキャッシュオフロード

  • CPUメモリとディスク層を備えた分散KVキャッシュプールとしてMooncake Storeを統合。
  • スパース、圧縮、線形アテンションのモデルパリティをサポート。
  • 高ヒット率プレフィックスを保持する2つの保持ポリシーを実装:
    1. インターバルベースの保持 – 各ターンでプロンプト終端キャッシュを保存。
    2. Marconiスタイルの選択的保持 – プレフィックスが2回目に観測されたときにチェックポイントを保存。
  • 最適化(PR #46188, #45444, #45659, #47317)により、CPUの検索コストを削減し、スケジューラのクリティカルパスから作業を移動。

実行平面 – より高速なトークン生成

モデル固有の並列化

  • Kimi K3 – トランスフォーマー並列化ではなくデコードコンテキスト並列化(DCP) を使用。DCPはKVをシーケンス次元に沿ってシャーディングし、デコードレイテンシを低下させ、KV容量を増加。対称メモリバッファによりクエリの収集と部分出力の削減を統合し、レイヤーごとのレイテンシを約13%削減。
  • DeepSeek V4 – 長いプロンプト(32Kプロンプト)では、プレフィルコンテキスト並列化(PCP)がTPを上回る(2.65倍の高速化)。混合ワークロードではDCPが通信コストが高いため、データ+エキスパート並列化(DEP) がデフォルト。

ミックストラフィックスケジューリング

  • ヘッド・オブ・ラインブロッキングの軽減--long-prefill-token-threshold で1ステップあたりのトークン数(例:512)を制限し、短いキャッシュ済みターンと長いプレフィルをインタリーブ可能にすることで、1GPU秒あたりの合計トークン数を最大93%向上させ、P90インタラクティビティを約2.3倍向上。
  • DEPプレフィルスケジュールの同期--prefill-schedule-interval により、ランク間で同じエンジンステップにプレフィルをコアレス化し、中間ステップを純粋なデコードに解放し、ロックステップスタールを削減。

制御平面 – 最適なP/D非同期化

  • フェーズ1:飽和プロファイリング – 並列化戦略とGPU数を変えてプレフィルのみとデコードのみの構成をベンチマークし、最大リクエスト/秒の限界を取得。
  • フェーズ2:P/Dスイープ – 最も良いプレフィルとデコード構成を組み合わせ、P/D比を変化させ、フルデプロイメントにおけるレイテンシ-コストトレードオフを測定。

オープンソースカーネル貢献

  • MiniMax M3 – CuteDSL長文インデキサー(+3%~31%レイテンシ)、MSA top-kパス(最悪ケースで最大4倍の高速化)、推測検証パス(デコードスループット+20%)。
  • Kimi K3 – GEMM & reduce-scatter融合、潜在的テールMoE融合(約5%レイテンシ削減)。
  • DeepSeek V4 – MXFP4 MoEおよびHCA圧縮の改善、マルチストリームC4A、クラスタベースtop-k。

すべてのパッチはvLLMリポジトリで公開されています。

AgentXにおけるパフォーマンス結果

モデル GPU / 並行度 1GPU秒あたりの合計トークン数(TPGS) @ P90 > 50 tok/s P90インタラクティビティ
DeepSeek V4 Pro 1.6T 12 GB300 GPUs / 256 83 K 58.3 tok/s
MiniMax M3 428B 2 B300 GPUs / 24 70 K 74.2 tok/s
Kimi K3 2.8T 16 GB300 GPUs / 48 11.8 K 62.7 tok/s

Opus 5(保守的なキャッシュヒット仮定)とのコスト比較:

モデル GPU TCO/時間 同等のOpus 5コスト/時間 コスト優位性
DeepSeek V4 Pro $27.72 $2,926 106×
MiniMax M3 $4.52 $384 85×
Kimi K3 $36.96 $538 14.6×

優位性の理由は、96%以上のプレフィックスキャッシュ再利用により、すべてのモデルでキャッシュされたトークンを安価な計算に変換できることにあります。

学び(「苦い」教訓)

  • パイプライン並列化は、冷たい長文プレフィルには有効ですが、ウォームでプレフィックスが多いターンではバブルを発生させるため、エージェントトラフィックのデフォルトにはすべきではありません。
  • DCPは、複雑なスパースアテンションスタックを持つモデル(例:DeepSeek V4)には一般化しない。並列化はモデルアーキテクチャに合わせる必要がある。
  • ロードバランスだけでは不十分 – セッションに特化したスタイキールーティングによりキャッシュの局所性を維持し、短いターン間遅延では、積極的なキュー深度バランスよりも優れた性能を発揮する。

今後のロードマップ

  • 制御平面ルーティング – 最初のターン(長文の新規プレフィル)とその後のターン(高キャッシュ再利用)を分離し、ヘッド・オブ・ラインブロッキングを回避。
  • エージェントヒントAPI – セッション構造、ツールコールレイテンシ、分岐ポイントに関するメタデータを受け取り、スケジューリングとキャッシュ除外をガイド。
  • プログラマブルKVキャッシュ – カスタムプリフェッチ、除外、ソフトピンニングポリシーのインターフェースを公開。
  • セッションベースのKV移行 – ターン間のアイドル時間中に次のワーカーにKV状態をプリフェッチし、転送レイテンシを隠蔽。

謝辞

本研究はInferactが主導し、vLLMコミュニティ、SemiAnalysis(ベンチマーク設計とインフラ)、およびハードウェアパートナーのNVIDIAとAMDの広範な貢献により実現しました。

Sources