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 block pool 最终会耗尽用于 KV cache 的空间,从而导致两种具有显著缺点的传统解决方案:
- Preemption(抢占): 丢弃请求的 KV cache 并在稍后重新进行 pre-filling,这会迫使请求再次支付完整的 Time to First Token (TTFT) 惩罚。
- Offloading(卸载): 将 blocks 移动到 host memory。然而,dense attention 需要所有 token 驻留在 GPU 上,这意味着并发量仍受限于 GPU 显存。
Hybrid HiSparse 通过利用 sparse-MLA KV cache 的稀疏性来解决这些限制。虽然 indexer 仅为 attention 选择 top-K 个 token,但 Hybrid HiSparse 会在显存容量允许的情况下尽可能将 KV cache 保留在 GPU 上。当系统面临 KV cache 压力时,它会将“最冷”的 pages 卸载到 CPU,仅在 GPU 驻留的“hot buffers”中保留选定的 top-K 个 token。
Hybrid HiSparse 的技术实现
Hybrid HiSparse 根据系统压力通过三种不同的状态来管理 KV 驻留情况:
1. Full Residency
所有 sparse-MLA KV 均保留在 GPU 上。已完成的 prefix pages 会被主动复制到 host memory,以便为未来可能的逐出(eviction)做准备,而无需在压力阶段进行额外的复制。
2. Mixed Residency
当 GPU 显存紧张时,请求的尾部(tail)保留在 GPU 上,而较旧的 pages 则被移动到 CPU memory。系统使用一个 fused kernel 来解析 top-K tokens:驻留的 tokens 会被就地读取,存在于 hot buffers 中的 tokens 会在读取时刷新其 LRU 条目,而未命中(misses)则会触发从 pinned host memory 中将单行数据复制到 LRU slot 中。由于没有任何 decode path 的决策需要等待 CPU,该过程仍然是 CUDA-graph-capturable 的。
3. No Residency
对于重新使用仅存在于 CPU memory 中的 prefix 的新请求,系统会以 placeholders 和一个 hot page 开始。只有当 indexer 选择它们时,才会加载 rows,从而确保系统仅为模型实际关注的 tokens 支付显存成本。
显存管理与集成
Hot buffers 并非独立的分配,而是从 vLLM 的 Hybrid Memory Allocator (HMA) pool 中租用的普通 KV-cache blocks。这允许被一个请求释放的 blocks 可以被重新用作另一个请求的 hot-buffer 容量。为了保持效率,hot buffers 默认每个请求分配 2× top-K rows。
8× H200 上的性能基准测试
vLLM 使用 OpenHands 多轮智能体工作负载(13 轮对话,首轮 74,160 个 token,后续轮次 753 个 token)对 GLM 5.3 进行了基准测试。设置使用了 TP8, MTP3, FP8 KV cache,以及 142K 的 admission limit。
将 Hybrid HiSparse(配备 384 GiB HiSparse pool 和 128 GiB offloading pool)与标准 offloading 基准(512 GiB pool)进行比较,结果表明 Hybrid HiSparse 能够维持更高的并发量,并提供更好的交互性-吞吐量权衡。与可能迫使请求等待空闲 slot 的标准 offloading 不同,Hybrid HiSparse 允许请求在部分驻留的情况下继续进行 decoding。
与 vLLM 生态系统的集成
Hybrid HiSparse 被设计为一种基于共享 HMA pool 的驻留策略,并与现有的 vLLM 特性集成:
- Prefix Caching: 其他 cache groups 继续使用标准的 prefix caching 和 offloading。
- P/D Disaggregation: 如果 prefix 不符合驻留显存的大小,来自 Prefill/Decode 分离架构的导入可以落地到 host-side。
- Speculative Decoding: 通过每一步可重放的 resolver plans 来工作,这些计划会共享请求的 hot state。
Hybrid HiSparse 计划在 vLLM v0.30 中广泛可用。目前已针对 NVIDIA GPU 实现。