vLLM GLM 5.3 優化:Hybrid HiSparse Offloading

vLLM 已推出 Hybrid HiSparse offloading 以優化 GLM 5.3 的服務,特別針對記憶體受限的環境,例如單個 8× H200 節點。此優化允許 GLM 5.3 在其完整的 100 萬上下文長度下運行,並顯著增加代理型(agentic)工作負載的並行度,這些工作負載的上下文會隨著時間增長。

解決代理型工作負載中的 KV Cache 壓力

代理型工作負載通常涉及許多具有長且不斷增長的上下文的並行請求。在標準的 GPU 服務中,固定的 GPU 區塊池最終會耗盡 KV cache 的空間,導致兩種具有顯著缺點的傳統解決方案:

  • Preemption(搶佔): 丟棄請求的 KV cache 並稍後重新進行 prefilling,這會迫使請求再次支付完整的首字時間(TTFT)懲罰。
  • Offloading(卸載): 將區塊移至主機記憶體。然而,密集注意力機制(dense attention)需要所有 token 駐留在 GPU 上,這意味著並行度仍受限於 GPU 記憶體。

Hybrid HiSparse 透過利用 sparse-MLA KV cache 的稀疏性來解決這些限制。雖然索引器(indexer)僅為注意力機制選擇 top-K token,但 Hybrid HiSparse 會在容量存在時將 KV cache 保留在 GPU 上。當系統面臨 KV cache 壓力時,它會將「最冷」的頁面卸載到 CPU,僅在 GPU 駐留的「熱緩衝區(hot buffers)」中保留選定的 top-K token。

Hybrid HiSparse 的技術實現

Hybrid HiSparse 根據系統壓力透過三個不同的狀態來管理 KV 駐留:

1. Full Residency(完全駐留)

所有 sparse-MLA KV 均保留在 GPU 上。已完成的 prefix 頁面會主動複製到主機記憶體中,以便為未來可能的逐出(eviction)做準備,而無需在壓力階段進行額外的複製。

2. Mixed Residency(混合駐留)

當 GPU 記憶體緊張時,請求的尾部會保留在 GPU 上,而較舊的頁面會移至 CPU 記憶體。系統使用融合內核(fused kernel)來解析 top-K token:駐留的 token 會原地讀取,位於熱緩衝區的 token 會在讀取時刷新其 LRU 條目,而未命中(misses)則會觸發從鎖定(pinned)的主機記憶體中將單行複製到 LRU 插槽中。此過程保持為 CUDA-graph-capturable,因為沒有解碼路徑的決策需要等待 CPU。

3. No Residency(無駐留)

對於重新使用僅存在於 CPU 記憶體中的 prefix 的新請求,系統會以佔位符和一個熱頁面開始。只有在索引器選擇它們時才會載入行,確保系統僅為模型實際關注的 token 支付記憶體成本。

記憶體管理與集成

熱緩衝區並非獨立的分配,而是從 vLLM 的 Hybrid Memory Allocator (HMA) 池中租用的普通 KV-cache 區塊。這允許被一個請求釋放的區塊被重新利用為另一個請求的熱緩衝區容量。為了維持效率,熱緩衝區預設為每個請求 2× top-K 行。

在 8× H200 上的性能基準測試

vLLM 使用 OpenHands 多輪代理型工作負載(13 輪對話、首輪 74,160 token、隨後的輪次為 753 token)對 GLM 5.3 進行了基準測試。設置使用了 TP8、MTP3、FP8 KV cache 以及 142K 准入限制。

將 Hybrid HiSparse(具有 384 GiB HiSparse 池和 128 GiB offloading 池)與標準 offloading 基線(512 GiB 池)進行比較,結果顯示 Hybrid HiSparse 能維持更高的並行度,並提供更好的交互性-吞吐量權衡。與標準 offloading 不同,標準 offloading 可能會迫使請求等待空位釋放,而 Hybrid HiSparse 允許請求在部分駐留的情況下繼續解碼。

與 vLLM 生態系統的集成

Hybrid HiSparse 被設計為 HMA 池上的駐留策略,並與現有的 vLLM 功能集成:

  • Prefix Caching: 其他快取組繼續使用標準的 prefix caching 和 offloading。
  • P/D Disaggregation(預填充/解碼分離): 如果 prefix 不符合駐留記憶體的大小,來自 Prefill/Decode 分離的導入可以落地到主機端。
  • Speculative Decoding(投機解碼): 透過共享請求熱狀態的可重演解析器計劃(per-step replayable resolver plans)來運作。

Hybrid HiSparse 計劃在 vLLM v0.30 中廣泛提供。目前已針對 NVIDIA GPU 實現。

Sources