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」频道最新
- AI 老 researcher 吐槽:Astra 跟子 agent 说我「要结果不要客套」 — moyix · 2026-09-16
- 实测 11 件商品自动化转卖后,他追问 Agent 自主权边界该怎么划 — Ok_Appearance_7559 · 2026-09-16
- 用 Muse 智能体搭内容工作室:自动分析账号、周更选题、写爆款脚本 — thederbiedone · 2026-09-16
- 开源项目 free-claude-code 获 5.5 万星,免费用 Claude Code — goyalshaliniuk · 2026-09-16
- Gemini CLI 发布 v0.62.0 nightly,修复 AgentLoopContext 与 MCP 展示 — gemini-cli-robot · 2026-09-16
- Jeffrey Emanuel 式 Agent 编码方法论:穷尽规划+beads 任务拆解+蜂群协作 — doodlestein · 2026-09-16