vLLM エンコーダー分離 (EPD) スケーリングとマルチモーダルサービング

EPD分離の概要

マルチモーダル推論では、言語モデルを実行する前に、メディア(画像、動画、音声)を埋め込みに変換するエンコード段階が必要です。エンコードの需要はプリフィルやデコードの要件とは独立して変動する可能性があるため、vLLMはエンコーダー/プリフィル/デコード (EPD) 分離をサポートしています。このアーキテクチャは、これらの段階を独立してデプロイされたvLLMインスタンスに分離し、オペレーターが特定のワークロードのニーズに基づいてリソース割り当てを最適化できるようにします。

メタデータのみのリクエスト

効率を向上させるため、vLLMはメタデータのみのリクエストをサポートするようになりました。このワークフローでは、エンコーダーは埋め込みに加えて構造的メタデータ(画像グリッドや特徴量の長さなど)を生成します。ダウンストリームのコンシューマーは、生のメディアを再処理または再取得することなく、このメタデータを使用して入力レイアウトを再構築します。これにより、冗長な計算とネットワークオーバーヘッドが削減されます。音声ワークロードの場合、メタデータのみの転送により、スループットが62.21から73.13リクエスト/秒に向上し、平均レイテンシが980msから853msに短縮されることが示されています。

専用エンコーダー実行

vLLMのエンコーダー専用インスタンスは、専用の MMEncoderModelRunner を通じて最適化されています。主な改善点は以下の通りです。

  • 起動I/Oの削減: エンコーダー専用インスタンスは言語モデルのチェックポイントシャードの読み込みをスキップするため、初期化時間が大幅に短縮されます。
  • CUDAグラフのサポート: エンコーダー専用ランナーは、実行速度を向上させるためのオプトインのViTグラフキャプチャをサポートしています。
  • 非同期実行: エンコーダーのステップはトークンサンプリングから分離されており、バッファの競合を防ぎ、一貫したパフォーマンスを保証します。
  • GPU前処理: GPUベースの前処理とNVDECハードウェアデコーディングの統合により、動画を多用するワークロードで大幅なスループット向上が実証されています。

リモート埋め込み転送と再利用

分離されたコンポーネント間で埋め込みを効率的に移動させることは、パフォーマンスにとって極めて重要です。vLLMは2つの主要なリモート転送パスをサポートしています。

  • NIXL: 登録されたCPU mmap領域を介して、CPUオフロードされたエンコーダー出力をインスタンス間で共有します。
  • Mooncake: TCPおよびRDMA構成の両方をサポートするMooncake TransferEngineを使用してエンコーダー出力を配信します。

さらに、Mooncake Storeはエンコーダー出力のクロス再利用を可能にします。あるインスタンスによって画像がエンコードされた場合、その結果の埋め込みをキャッシュして他のエンコーダーで再利用できるため、冗長なフォワードパスが排除されます。InternVL3_5-38B-HFを用いた実験では、共有再利用により再割り当てシナリオにおける重複した画像エンコードがゼロになり、Time To First Token (TTFT) が大幅に改善されました。

オーケストレーションとデプロイメント

vLLMは、EPDオーケストレーションのためにいくつかの統合パスを提供しています。

  • vLLM Router: E+PDおよびE/P/Dデプロイメント(マルチ画像配信を含む)のためのネイティブCLI構成をサポートしています。
  • SMG: PythonとRustの両方のサービサーを備えたgRPCベースのEPDサポートを提供し、複数のエンコーダーワーカー間で画像処理を分散させることができます。
  • llm-d: エンコーダーとコンシューマーの役割が別々のポッド階層として実行されるKubernetesネイティブなデプロイメントパスを提供し、独立したスケーリングとハードウェア選択を可能にします。

パフォーマンスへの影響

GB200ハードウェア上でDeepSeek V4.1 Flashを使用した評価では、EPDデプロイメントは、高並行性(64–128)において標準的なPDベースラインと比較して、GPUあたりのスループットが6.6〜9.5%向上しました。さらに、P90 TTFTが44〜47%短縮され、計算負荷の高いマルチモーダルタスクにおいてエンコード段階を分離する利点が強調されました。

Sources