vLLM GLM 5.3 最適化: ハイブリッド HiSparse オフロード

vLLM は、GLM 5.3 のサービングをより高速かつコスト効率よくするため、ハイブリッド HiSparse オフロードを導入しました。この最適化により、GLM 5.3 は単一の 8x H200 ノード上で最大 100 万トークンのコンテキスト長をフルに活用できるようになり、これまでこのハードウェアでは不可能だったことですが、さまざまなコンテキスト長での並行性が大幅に向上しました。

KV キャッシュのメモリ圧力の解決

エージェントワークロードは通常、長く成長するコンテキストを持つ多数の並行リクエストを含みます。GPU ブロックプールは固定されているため、KV キャッシュは最終的に利用可能なメモリを枯渇させ、以下の2つの従来の方法のどちらかを選ばなければなりません:

  • プリエンプション:リクエストの KV キャッシュが破棄され、後で再プリフェイルが必要となり、Time to First Token (TTFT) のペナルティが完全に発生します。
  • オフロード:KV ブロックがホストメモリに移動されますが、密なアテンションではすべてのトークンが GPU 上に存在している必要があるため、並行性は GPU のメモリ容量に制限されます。

ハイブリッド HiSparse は、GLM 5.3 のスパース-MLA(Multi-head Latent Attention)KV キャッシュを活用することで、この問題を解決します。スパース-MLA では、インデクサがアテンションに使用する上位-K トークンのみを選択します。ハイブリッド HiSparse は、これらの選択されたトークン以外のすべての KV キャッシュを CPU にオフロードします。

ハイブリッド HiSparse は、容量が許す限り KV キャッシュを GPU 上に保持するように改善されています。システムが KV キャッシュの圧力に直面した場合にのみオフロードをトリガーします。このアプローチにより、CPU-GPU 間のメモリ転送を最小限に抑え、高並行性の期間にのみコストを支払います。

ハイブリッド HiSparse の技術的実装

ハイブリッド HiSparse は、vLLM のハイブリッドメモリアロケータ(HMA)を使用して共有 GPU ブロックプールを管理します。メモリ圧力に応じて、各ページのリジデンシーを追跡し、リクエストを3つの状態に分類します。

  1. 完全リジデンシー:すべてのスパース-MLA KV が GPU 上に保持され、完了したプレフィックスページは事前にホストメモリにコピーされます。
  2. ミックスリジデンシー:リクエストの末尾部分は GPU 上に残りますが、古いページは CPU メモリにあります。インデクサが必要とする行は GPU 上の「ホットバッファ」に格納されます。統合カーネルが上位-K の解決を処理します:在庫中のトークンをそのまま読み込み、ホットトークンを読み込みながらその LRU エントリを更新、またはミス時にピンされたホストメモリから1行をコピーして LRU スロットに格納します。
  3. リジデンシーなし:プレフィックスが CPU メモリにのみ存在するリクエストの場合、プレースホルダーとホットページから開始し、インデクサが選択するたびに行を読み込みます。

主要なアーキテクチャ的詳細

  • ホットバッファ:これらは別々の割り当てではなく、HMA プールから借りられた通常の KV キャッシュブロックです。1リクエストあたり上位-K 行の2倍のサイズをデフォルトとして設定することで、最小のサイズで高いヒット率を維持します。
  • 事前コピー:圧力に備えて、ホストメモリへの完了したプレフィックスページのコピーを、まだ GPU から提供されている間にキューイングします。これにより、圧力が到来したときに GPU スロットを即座に解放でき、もう一度コピーする必要がありません。
  • 軽量実行hisparse-glm ブランチは、フォワードパスの後にすべてのスパース-MLA レイヤーを1回の起動でまとめてコピーし、モデルの GPU ストリームに従って順序付けられており、同期を簡素化しています。

vLLM スタックとの統合

ハイブリッド HiSparse は共有 HMA プール上のリジデンシーポリシーとして機能します。既存の vLLM 機械と統合され、他のコンポーネントに影響を与えません:

  • プレフィックスキャッシュ:他のキャッシュグループは標準的なプレフィックスキャッシュとオフロードを引き続き使用します。
  • インデクサ KV:インデクサ KV は、ブロック単位のストレージを使用する標準の OffloadingConnector によって個別に処理されます。
  • P/D 離散化:Prefill/Decode 離散化からのインポートは、プレフィックスがリジデンスメモリに収まらない場合、ホスト側に到着できます。
  • 予測的デコード:ステップごとに再実行可能なリゾルバプランを介して動作し、リクエストのホット状態を共有します。

パフォーマンスベンチマーク

vLLM は、8x H200 GPU 上で OpenHands のマルチターンエージェントワークロード(13ターンの会話、最初のターン74,160トークン、以降のターン753トークン、出力753トークン)を使用して GLM 5.3 のベンチマークを実施しました。設定では MTP3、FP8 KV キャッシュ、142K のアドミッション制限を使用しました。

ハイブリッド HiSparse(384 GiB の HiSparse プール、128 GiB のオフロードプール)を標準的なオフロードベースライン(512 GiB のオフロードプール)と比較したところ、ハイブリッド HiSparse はより優れたインタラクティブ性-スループットのパレート曲線と、平均的な並行実行リクエスト数の高い結果を示しました。

利用可能性和構成

ハイブリッド HiSparse は vLLM v0.30 で広く利用可能になる予定です。現在は NVIDIA GPU のみで実装されています。現在の再現には、hisparse-glm ブランチ(commit e8ef1e07bd)が必要です。

ハイブリッド HiSparse を有効にするには、vllm serve コマンドで以下の構成を使用します:

--attention-config '{"hisparse_config":{"host_pool_gib":384}}'
--kv-transfer-config '{"kv_connector":"OffloadingConnector","kv_role":"kv_both","kv_connector_extra_config":{"spec_name":"TieringOffloadingSpec","cpu_bytes_to_use":137438953472}}'

Sources