在双 RTX 3090 配置上,SGLang 的 RadixAttention 将预热首字延迟(TTFT)大幅降低至 68 ms,而 vLLM 的 PagedAttention 则停留在 184 ms——这 82.9% 的延迟差距使得多轮智能体交互体验明显更加流畅。
这两个项目都致力于加速大语言模型(LLM)的推理,但该基准测试针对的是驱动自主助手的负载:长系统提示词、工具调用模式以及用户与助手之间不断滚动的对话历史。这些重复的 Token 存储在 GPU 显存中;如果缓存管理效率不高,它们就会成为计算瓶颈,导致对话停顿。
决定胜负的工作负载
传统的 LLM 服务器针对单次交互进行优化——用户提示、模型回复,然后结束。然而,现代智能体维持着一个可以跨越数十轮的“对话状态”,每一轮都会向缓存中添加数百个 Token。测试套件在两块 RTX 3090 显卡上重演了这种多轮循环,并测量了以下指标:
- 预热首字延迟 (TTFT) – 新一轮对话开始后,直到第一个 Token 出现之前的延迟。
- 整体延迟 – 整个循环中每个 Token 的平均时间。
- 持续吞吐量 – 循环连续运行时每秒处理的 Token 数量。
- 缓存命中率 – 从键值 (KV) 缓存中重用而非重新计算的 Token 比例。
SGLang 在所有指标上都击败了 vLLM:TTFT 为 68 ms 对比 184 ms,延迟降低了 82.9%,吞吐量提高了 39.8%,缓存命中率为 96.8%,而 vLLM 为 84.2%。
PagedAttention vs RadixAttention
两种引擎都将中间 KV 对存储在 GPU 显存中,但它们组织内存的方式不同。
- PagedAttention (vLLM) 将缓存切分为固定大小的块。如果提示词在块的中间结束,由于块无法被部分重用,剩余的 Token 在每一轮都必须重新计算。这种方法很简单,当提示词与块边界对齐时效果很好,但在智能体循环中,它会在变化最频繁的“边缘” Token 上浪费计算周期。
- RadixAttention (SGLang) 将缓存视为一棵树。它会在当前提示词与已缓存内容之间寻找最长公共前缀,不受块限制,并修剪掉未使用的叶节点。这使得庞大的系统提示词可以一直驻留在 GPU 显存中,而只需处理最新的一轮对话,从而提高了缓存命中率并减少了冗余工作。
各引擎的优势场景
| 场景 | 首选引擎 |
|---|---|
| 多轮自主智能体、重度工具调用、思维树 (Tree-of-thought) 推理 | SGLang (RadixAttention) |
| 广泛的硬件支持(包括 AMD 和 Gaudi 加速器)、投机采样 (Speculative decoding)、视觉语言模型 | vLLM (PagedAttention) |
两者的区别不仅在于性能,还在于生态系统。vLLM 更广泛的硬件兼容性使其成为拥有异构计算集群的组织的更稳妥选择。其投机采样功能(并行生成多个 Token 候选)可以加速单轮生成,而在这一领域,基于树结构的 RadixAttention 缓存优势较小。
总结
对于构建需要处理长提示词和增量更新的多轮智能体的开发者来说,SGLang 的 RadixAttention 在消费级 GPU 上提供了明显更快、缓存效率更高的体验。而需要广泛硬件覆盖或专注于单轮生成的团队可能仍会倾向于使用 vLLM。现在的选择取决于工作负载是“智能体密集型”还是“硬件多样型”。
