SGLang 用基数树复用前缀 KV 缓存,Agent 推理吞吐最高提 6.4 倍
大模型之路 · wechat · 2026-09-15
文章拆解了大模型推理中一个常被忽视的浪费:Agent、RAG、多轮对话流量里,系统提示词、工具定义、检索文档等前缀被每个请求反复重算 KV 缓存,规模越大浪费越夸张。
SGLang 的解法:RadixAttention
- LMSYS(UC Berkeley 团队)开源,把所有请求的 KV 缓存按 token 序列存进基数树,新请求自动匹配最长共享前缀直接复用,只算增量部分。
- 对比 vLLM 的分块哈希(PagedAttention),基数树按 token 粒度可识别不规则重叠;论文报告 agent 控制、JSON 解码等任务最高 6.4 倍吞吐提升。
- 分层缓存:冷前缀可卸载到 CPU 内存甚至 NVMe;调度器优先把共享前缀长的请求排进同批提高命中率。
- 另两项能力:结构化生成(严格输出 JSON/正则,避免工具调用链断裂)和零开销 CPU 调度。据业界统计已部署在超 40 万张 GPU 上,xAI、NVIDIA、LinkedIn 等用作推理底座;2025 年起并入 PyTorch 生态。
SGLang vs vLLM 怎么选
- 流量有"结构性冗余"(多轮对话、RAG、固定系统提示的 Agent)→ SGLang 优势明显;请求各不相同的单次生成 → 两者基本持平,别盲目切换。
- 部署坑:一个 server 进程只服务一个模型;radixcache 要设显存占比上限;系统提示若拼时间戳/随机 id 会导致前缀对不上、命中率归零;复杂 schema 的约束解码开销大。
上手很简单:pip install sglang 后用 python3 -m sglang.launchserver 拉起 OpenAI 兼容服务,改 baseurl 即可切换;支持 FP8/INT4/AWQ/GPTQ 量化,本地单卡可先跑 7B/8B 模型体验。
「编程与Agent」频道最新
- Cohere Labs 智能体团队构建方法降本 70%,兼顾效率 — Cohere_Labs · 2026-11-02
- Ыég especial: 长文析 AI 价值在效率之后:Infra 必然过剩,应用层基建正当时 — yangyi · 2026-11-02
- 开源 offprompt:MCP 服务器让 Agent 请求密钥却永远看不到明文 — Vast_Ad_7338 · 2026-11-02
- Reddit 讨论:把 OOP 公有方法直接变成 AI Agent 可调用的工具 — out_of_nowhere__ · 2026-11-02
- DeepSeek 设计文档:一人只能盯 3-5 个 agent 会话,瓶颈不再是模型 — heyshrutimishra · 2026-11-02
- 资深工程师谈 AI 编码:软件工程功底决定 agent 输出质量 — bendee983 · 2026-11-02