top of page

vLLMのプッシュ型KV転送、PrefillとDecodeの間の待機時間を短縮

2 時間前
読了時間: 17分

vLLMのプッシュ型KV転送は、キャッシュの引き渡し作業を前倒しする。AWSは、プル型を用いたベンチマークと比べ、初回トークン遅延が最大3倍改善したと報告している。初回トークンまでの時間、すなわちTTFTは、生成が出力を開始するまでにリクエストが待機する時間を測定する。この変更は、プロンプト処理と回答生成の間にある調整処理を対象としている。

AWSは10月19日の投稿で、出力トークン当たりの時間、すなわちTPOTも最大30%改善したと報告している。TPOTは、その後に生成される各トークンの生成時間を測定する指標だ。これらの結果は、AWS Elastic Fabric Adapter(同社の低遅延サーバー相互接続)を使用したAmazon EC2 P5enインスタンス上のQwen3-32Bに関するものである。これは特定の比較結果であり、すべてのvLLMデプロイメントでの一般的な高速化を約束するものではない。

中心となる争点は、プッシュとプルの調整方式にある。プッシュは受信側エンジンをより早く準備し、プルは生成をどこで実行するかという判断を後まで残す。プロンプト処理と生成を分離する運用者にとって、このニュースは具体的な問いを投げかける。より短い引き渡し時間と引き換えに、どの程度のルーティング柔軟性を手放すべきなのか。

vLLMのプッシュ型KV転送は、引き渡し開始のタイミングを変える

この変更は引き渡し前に準備を進めることで、プロンプト処理完了後に必要となる作業を減らす。

入力トークンを処理する推論段階であるPrefillは、その後の生成に必要な中間的なアテンション状態を含むキー・バリューキャッシュを生成する。出力トークンを生成する段階であるDecodeは、この状態を消費する。分離型推論では、これらの段階を別々のエンジンインスタンスに配置し、その間に転送境界を設ける。

AWSのKV転送ベンチマークは、1つのPrefillインスタンスと1つのDecodeインスタンスを用いてプッシュとプルを比較している。このテストでは、リクエストが事前に計算された状態を再利用できるプレフィックスキャッシュを無効化している。出力トークン数は128、入力長は1,000〜16,000トークン、リクエストレートは毎秒1〜8クエリである。

要求の厳しい条件下では、AWSはプルのTTFTを約1,744ミリ秒、プッシュを約540ミリ秒と報告している。報告されたTPOT比較では、プルが約10.4ミリ秒、プッシュが約7ミリ秒に達している。軽負荷かつ短い入力では、両モードの性能はほぼ同等である。

こうした条件は、見出しの倍率以上に重要である。この結果は、引き渡しの調整が重要になるワークロードを示している。低利用率のサービス、異なるモデル、あるいはより大規模なデプロイメントでも同じ利点が得られることを示すものではない。

実務上の含意は、応答性が悪化した際に運用者が調査すべき対象が変わることにある。初回応答が遅いからといって、プロンプト計算により多くのアクセラレータ容量が必要とは限らない。次の段階を整えるために費やされる時間も、別途検証すべきだ。

この区別は、プロダクトチームが性能インシデントをどう解釈するかも変える。ユーザーが回答の遅延を報告する場合、チームは計算待ちと調整待ちを区別する必要がある。リソースの追加はそれぞれの原因に異なる形で対処するため、集約されたレイテンシーチャートでは両者の違いが隠れる可能性がある。

したがって、このベンチマークは限定的ながら明確な結論を支える。キャッシュ転送を取り巻く一連の処理は、測定される体験に大きく影響し得る。次に行うべきことは、その一連の処理が特定サービスの遅延において有意な割合を占めるかを特定することだ。

これをプルの普遍的な代替策と呼ぶのは、証拠を過大評価することになる。より有用な読み方は、vLLMが新たなスケジューリングの選択肢を提供したというものだ。運用者は、その選択を実際に必要とするワークロードやルーティングの挙動に照らして評価できる。

これはモデル発表ではなく、実装レベルのサービング改善であるため、タイミングにも意味がある。チームはモデル品質の変化を前提とせずに検討できる。潜在的な利点は、既存のリクエストがインフラストラクチャ内をどのように移動するかにある。

サービングチームは、計算の問題と並んで調整の問題に直面する

負荷がかかるのは、レイテンシー目標の達成にプロンプト処理とトークン生成の分離を依存している運用者だ。

vLLMの分離型Prefillのドキュメントは、初回トークン遅延とトークン間遅延を独立して調整する観点から分離を説明している。また、すでに回答を生成しているエンジンにプロンプト処理が入る際の干渉も指摘している。このドキュメントはこの機能を実験的なものと位置づけ、分離そのものをスループット改善とみなさないよう明示的に注意している。

これは、広範なアーキテクチャ上の主張に対する重要な均衡材料となる。作業を分離すれば独立した調整の機会が生まれる一方で、責任も増える。システムは状態を調整し、送信先を選び、追加の境界をまたいでリクエストを進行させ続けなければならない。

仮想的な文書アシスタントでは、こうした責任は認識しやすいユーザー行動に対応する。ユーザーは長い文書を送信し、回答が始まるのを待つ。その一方で、ほかのユーザーは既存の回答が安定して届き続けることを期待する。

これらの期待は関連しているが、交換可能ではない。サービスは回答をすぐ開始しても、その後の配信が不均一になる可能性がある。逆に、開始後は滑らかに生成されても、何かが表示されるまでユーザーを長く待たせることがある。

プッシュ提案が重要なのは、運用者が両方の体験を評価する必要があるためだ。コネクターの判断は、単一の好都合な平均値ではなく、応答開始と継続的な生成の両方に照らして評価すべきである。そうしなければ、チームは注視している指標を改善する一方、ユーザーが気付く体験を見落とすおそれがある。

このことは、インフラ所有者に測定モデルの改善を迫る。必要なのは、リクエストの総所要時間だけでなく、その各段階を可視化することだ。この分離がなければ、調整オーバーヘッドをモデル実行時間と誤認する可能性がある。

また、ホステッド推論を評価する購入者にも負荷がかかる。報告された高速化比率には、ベースライン、ワークロード、運用上の境界が必要である。購入者は、サービス比較に利用する前に、結果の背後で何が変わったのかを尋ねるべきだ。

この違いは、アプリケーションが長短のリクエストを混在させる場合にとりわけ重要である。平均プロンプト長は、最も大きなスケジューリング要求を生むリクエストを覆い隠す。説得力のある評価では、そのばらつきを均一な入力で置き換えるのではなく維持すべきである。

これらのことは、すべてのアプリケーションに分離が必要であることを示すものではない。判断は依然として、サービスで観測された制約から始まる。現在のアーキテクチャが応答目標を満たしているなら、転送境界を追加するには独自の正当化が必要だ。

ただし、すでに分離された段階を運用するチームにとって、コネクターは性能計画の一部となる。その挙動は、ルーターが何を把握すべきか、またリソースがいつ確保されるかに影響する。そのため、この変更は転送コードを保守するエンジニア以外にも関係する。

結果として、プロダクトチームとプラットフォームチームには、成功に関する共通の説明が必要になる。有用な説明は、ユーザーに見える待ち時間をインフラストラクチャの測定値やデプロイメント条件と結び付ける。コネクターのベンチマークをアプリケーションに対する完全な予測として扱わないことが重要だ。

こうした評価を維持するチームは、調査結果を検索可能なナレッジベースに整理できる。設定を結論と並べて保持すれば、後のレビュー担当者は、過去の結果がなぜ適用できた、または適用できなかったのかを理解しやすくなる。

送信先を早期に設定することが、プッシュにプルに対する優位性をもたらす

プッシュは転送を巡る依存関係の順序を変えるものであり、キャッシュ済み状態を移動する必要そのものをなくすわけではない。

プッシュコネクター設計は、NVIDIA Inference Xfer Library、すなわちNIXLを利用して転送を調整する代替手段であるNixlPushConnectorを文書化している。受信側のDecodeエンジンは送信先メモリを割り当て、その場所を通知する。次にPrefillエンジンが、完了した状態を準備済みの送信先に書き込む。

登録と完了したプロンプト状態は、いずれの順序でも到着できる。コネクターは書き込みを実行する前に両者を照合する。バックグラウンドのライタースレッドがプッシュ固有の操作を処理し、完了状況の管理によって、受信した状態がいつ準備完了となるかをエンジンに知らせる。

これがvLLMプッシュ転送の要点である。有用な計算が続く間に送信先を準備し、その前提条件がそろった時点で引き渡しを完了する。この順序により、Prefill完了後にすべての調整を開始する必要が減る。

この違いは、依存関係の問題として見ると理解しやすい。準備を計算完了まで開始できない場合、リクエストは両方を順番に待つことになる。準備と計算を重ね合わせれば、生成開始を決める経路から一部の待ち時間を除ける。

ただし、この重複には条件がある。受信側が存在し、送信先が適切であり、転送が正しく完了しなければならない。早期に準備することで、これらの責任が発生するタイミングは変わるが、任意のものにはならない。

そのため、プッシュを単に高速なネットワーク操作と説明するだけでは、仕組みを見落とす。アーキテクチャ上の問いは、どの作業が進行を阻害するかにある。高性能なハードウェアを使う転送であっても、周辺ソフトウェアによってリクエストが不必要に待たされることはある。

バックグラウンド実行は、もう一つ有用な区別をもたらす。エンジンループを阻害しなくなった作業も、どこかでリソースを消費している。したがって運用者は、作業がどこへ移ったのか、そしてその場所が継続的な需要の下でも健全に機能するのかを問うべきだ。

同じ考え方は、TPOTの解釈にも当てはまる。転送関連の変更は、調整処理が既存リクエストに対応する実行経路と競合する場合、継続中の生成に影響し得る。到着したリクエストだけを評価しても、この相互作用は見落とされる。

したがって、vLLMのプッシュとプルを比較する際の決定的な比較対象は、書き込みと読み取りよりも広い。送信先の選択、準備のタイミング、実行の所有権、準備完了のシグナルが含まれる。こうした詳細が、コネクターの変更によってモデルを変えずにアプリケーションの挙動が変わり得る理由を説明する。

実装はまた、どのデプロイメント判断でも正確性を性能と並べて扱うべき理由を示している。生成に完全な期待状態が必要であるなら、状態の一部を受け取るだけでは不十分だ。特に作業が複数の参加者にまたがる場合、成功した引き渡しには曖昧さのない準備完了条件が必要になる。

NVIDIAは、Dynamoの分離型サービングアーキテクチャを通じて、有用な業界上の参照例を示している。そのドキュメントは、別々のPrefillプールとDecodeプール、ルーターのオーケストレーション、トポロジーを考慮した転送に関する事項を説明している。これは、vLLMコネクターとの性能順位を示す証拠ではなく、比較可能な調整上の問題を示すものだ。

Dynamoはサービングエンジンの統合コンテキストでもあるため、これを単純な企業対企業の競争として捉えるのは誤解を招く。重要な競争は、リクエストを組織化する方法の間にある。各アプローチは、配置、状態移動、生成準備完了を整合させなければならない。

AWSの結果は、その比較によって位置づけが明確になる。この貢献は、より大きなサービング・ワークフローにおける特定の一点に関するものだ。その価値は、その一点の改善がサービスの実際の応答目標の達成につながるかどうかに左右される。

より早いデコーダ選択は柔軟性をオーバーラップと引き換えにする

pullを維持する最も強い理由は、宛先を後から選べることの価値にある。

pushシーケンスでは、ハンドオフ前に受信側を準備しておく必要がある。このコミットメントはオーバーラップを可能にする一方で、この記事の中心的なトレードオフも生む。運用者は、宛先選択のタイミングと切り離して、協調遅延の削減を評価することはできない。

リクエストがデコーダプールに不均一に到着する仮想的なサービスを考えてみよう。宛先を早期に選ぶ場合、プロンプト処理が完了する前に経路を予約することになる。後から選べば、ルーティング判断にはシステムに関するより新しい情報を利用できる。

どちらの選択肢も自動的に優れているわけではない。prefill中も状況が予測可能なら、早期選択は妥当な交換条件になり得る。状況が大きく変動するなら、後期選択には、転送に焦点を当てたベンチマークでは捉えられない運用上の価値がある可能性がある。

重要なのは、その柔軟性が結果を変える頻度だ。運用者は、選択の遅延がキューを有意に減らすか、過負荷のワーカーを回避するか、サービスの一貫性を高めるかを検証すべきである。こうした観測がなければ、柔軟性は測定された要件ではなく、抽象的な利点にとどまる。

これが、ペア構成のデプロイメントだけではすべてのルーティング上の問いに答えられない理由でもある。これはハンドオフを検証するための制御された環境を提供する。一方で、多数の宛先間での選択、特にそれらの宛先のワークロードが異なる場合については、証拠が限定的になる。

キャッシュ再利用の論点にも、別の境界がある。10月12日の投稿で、vLLMは双方向KV転送について説明している。これは後続の会話ターンで、再利用可能な状態をdecodeからprefillへ戻すものである。この取り組みは、会話履歴の増加に伴う繰り返し計算を対象とし、両方向でNIXL読み取りを使用する。

これは異なる最適化目標を表している。より短い順方向ハンドオフと、プロンプト計算の重複削減はいずれも応答性の向上に寄与し得る。しかし、その利点が自動的に組み合わさると想定すべきではなく、同一の作業を測定しているかのように比較すべきでもない。

会話型アシスタントは、この違いをよく示す。最初のリクエストと、蓄積された履歴を含む後続のリクエストでは、インフラに異なる要求がかかる可能性がある。一つの遷移を改善しても、会話全体にとって最適な方針が確立されるわけではない。

vLLMのpushとpullの比較では、製品がセッション挙動に依存する場合、その挙動も評価に含めるべきである。無関係なプロンプトが一様に流れるワークロードが答えるのは、より限定的な問いにすぎない。アプリケーションの反復的なインタラクションのテストに代わるものではない。

キャッシュ無効化ベンチマークも同様に慎重に扱う必要がある。再利用を取り除けば転送挙動を切り分けやすくなるが、本番環境での再利用は、その挙動が重要になる頻度を変える。完全な転送を頻繁に回避するアプリケーションでは、機会の構図が異なる。

これは制御された比較を無効にするものではない。その目的を定義するものだ。運用者は、切り分けられた結果を保持しつつ、アプリケーションの実際のキャッシュおよびルーティング判断を復元するワークロード評価を追加すべきである。

報告された改善幅にも、証拠上の境界がある。この数値は、ここで検証した独立した再現実験ではなく、参加した技術的な情報源によるものだ。調査に値するものではあるが、普遍的な優位性やフリート全体での節約の保証を裏付けるものではない。

したがって、懐疑的な結論は具体的である。早期準備には理解可能なメカニズムがある一方、その総合的な価値はデプロイメントに依存する。健全な導入判断には、得られる協調上の利点と、それによって交換する柔軟性を併せて測定する必要がある。

pullのベースラインも変化している

報告された優位性の一部は、転送準備をどこで実行するかに関するものであり、pull側も見直せる設計選択だ。

公開されているreader-thread proposalは、NIXL pullの送信を対象としている。その明示された目的は、読み取り送信を専用のバックグラウンドスレッドへ移し、エンジンのforward実行スレッド上の作業を減らすことだ。この提案では、完了ポーリングはforwardスレッドに残される。

この記事で確認したページでは、この提案はopenとして掲載されている。これは継続中の開発を示すものであり、提供済みの性能結果ではない。将来のpull実装がpushに匹敵する、あるいは差の特定の割合を埋めると主張する根拠にはならない。

その意義は概念的なものだ。転送方向と実行配置は別々の選択肢である。pushは宛先の早期準備から恩恵を得られる一方、バックグラウンド実行は別の干渉要因に対処する。

この区別は、ベンチマーク上のリードの解釈を変える。比較は、その時点でテストされた実装を捉えたものである。観測されたすべての利点を、勝者に付与されたアーキテクチャ上のラベルへ恒久的に帰属させるものではない。

購入者と運用者にとって、実務上の帰結はバージョンを意識することだ。「Push」と「pull」だけでは、評価環境の説明として不十分である。どの準備ステップがどこで実行されるかは、対象となる実装と設定によって決まる。

このため、保守履歴も性能証拠の一部となる。後のコネクタ更新は、モデルやハードウェアを変えずにベースラインを変え得る。チームは、実行挙動が大きく変化したとき、以前の結論を見直すべきである。

reader-threadの取り組みは、基礎となる説明を検証する有用なテストにもなる。バックグラウンド送信が同等の条件下でpullを改善するなら、実行配置の重要性を裏付けることになる。それだけで、宛先セットアップをオーバーラップさせることの別個の利点が消えるわけではない。

逆に、改善が限定的だった場合も解釈が必要になる。残る遅延には別の依存関係が関与している可能性があり、あるいはワークロードが異なる制約を露呈している可能性がある。期待外れの結果が出ても、その提案の設計が他の場面で価値を持たないことを自動的に証明するわけではない。

ここでは、性能報告に抑制が求められる。有用な報告は、測定されたもの、それを説明するメカニズム、そして仮説のまま残るものを分ける。これらのカテゴリーを混ぜれば、見出しは自信に満ちたものになるが、運用上の指針は弱くなる。

vLLMのpushベースKV転送について、持続的な教訓はハンドオフ周辺の作業を検証することだ。コネクタ名は挙動を要約するが、あらゆる遅延を説明するものではない。実際の実行経路のプロファイリングは依然として必要である。

変化するベースラインは、早まった標準化の判断も抑制する。チームは、現在のニーズに合う構成を採用しつつ、それを再検討するための証拠を維持できる。目的は転送方向への恒久的な忠誠ではなく、信頼できるサービスである。

再現実験、pull-threadの進展、ルーティング挙動を注視する

次に有用となる証拠は、切り分けられた協調上の改善が現実的なデプロイメント選択の下でも維持されるかを示すものだ。

今後1〜3か月で最初に注目すべきシグナルは、アプリケーションに近いワークロードでの独立した再現実験である。最も有益な結果は、同じ比較を維持しながら、プロンプト分布、キャッシュ挙動、デプロイメント規模を変化させるものだ。一貫した改善が確認されれば、より広範な導入の根拠が強まる。

再現実験では、応答開始と継続的な生成も区別すべきである。サービスは、インタラクション全体を通じて応答性が高まるかを知る必要がある。異例に要求の高いベンチマーク上の一点に限られた好結果は、より限定的なデプロイメント判断を支持することになる。

二つ目のシグナルは、pull向けバックグラウンド送信の進展である。レビューおよびリリースされた実装と、それに続く比較可能なベンチマークによって、実行配置がどの程度寄与するかが明らかになる。差が小さくなれば、メカニズムの説明を強める一方、pushをカテゴリーとして優れていると扱う根拠は弱まる。

このシグナルには、実測結果が必要だ。変更がマージされたという事実だけでは、性能の同等性ではなく利用可能性が示されるにすぎない。運用者は、関連するワークロードがテストされる前に、開発活動を数値的な主張へ変換すべきではない。

三つ目のシグナルは、固定されたprefill-decodeペアを超えたルーティング挙動である。早期の宛先選択が変動するデコーダ需要に直面したとき、何が起きるかを結果で示す必要がある。ユーザー向けレイテンシが安定していれば、現実的な配置圧力の下でもオーバーラップが価値を保つという根拠が強まる。

一方、早期のコミットメントが別の場所でより長いキューを生むなら、望ましいデプロイメント境界は狭まる。pushは予測可能なワークロードには依然として適しているかもしれないが、後期選択は他のワークロードで価値を保つ。それは結果を否定するのではなく、洗練するものだ。

これらのシグナルは、議論を元の事象に結び付け続ける。問題は、準備を前倒しすることが、その固有の運用条件の下で完全なサービスを改善するかどうかだ。推論経済性に関するより広範な主張には、このコネクタ比較が提供する以上の広範な証拠が必要である。

今何をすべきかを決めるチームは、代表性のあるリクエストトレースと明確に定義された応答目標から始めるべきである。コネクタ結果を比較する際は、モデル、キャッシュ方針、ルーティング挙動、実装バージョンを維持する。待ち時間がどこで発生するかを記録し、その後、早期準備によって別の場所により大きなキューを生じさせずにその遅延を減らせるかを検証する。制御されたベンチマークと本番に近い評価を分けておけば、それぞれが明確な問いに答えられる。報告された比率をキャパシティ判断に置き換える前に、設計とベンチマーク条件を読む。vLLMのpushベースKV転送で有用な行動は、アプリケーションが実際に行うハンドオフを対象とした、範囲を限定した評価である。宛先を早期に準備することで、サービスが処理すべき負荷の下で、ユーザーが受け取る体験は改善するだろうか。

 
 

無料で始めましょう

ローカルファーストのパーソナル知識管理付きAIアシスタント

より良いAI体験のために、

remio は現在、 Windows 10+ (x64)とM-Chip Mac のみをサポートしています。

仕事のAIパートナー
remioでもっと仕事が進む

計画・作成・仕上げまで
すべてをひとつに

bottom of page