Skip to content

认识 SGLang

先说个有点扎心的事实:你跟 AI 聊到第 20 轮,它每吐出一个字,都要把前面 19 轮对话从第一个 token 开始重算一遍

系统提示词、RAG 检索出来的那几页文档、Agent 的工具定义……这些一字不差的内容,被同一个人反复算,被不同的人重复算。一个客服机器人每天几百万次请求,系统提示词可能是同一个——这份算力,全是重复劳动。

更直观一点:2026 年,推理已经吃掉企业 AI 算力支出的约 85%。也就是说,你为 AI 花的钱,绝大部分不是花在"训练出一个聪明模型"上,而是花在"让它回答你这句话"上。

SGLang 就是冲着这笔浪费来的。它不造模型,它只干一件事:让同样的 GPU,吐出更多 token。

一句话理解它的杀手锏:别人每次都从零开始算,它记得自己算过什么。

什么是 SGLang

SGLang 是一个高性能的大模型与多模态模型推理服务框架,Apache 2.0 协议开源,由非营利开源组织 LMSYS 孵化并维护——对,就是做 Chatbot Arena 大模型盲测擂台的那个团队。

它的名字来自 Structured Generation Langage(结构化生成语言),早年主打"用一门小语言精确控制模型输出格式"。但让它在业界真正立住的,是底层的 RadixAttention——一种用基数树(Radix Tree)管理 KV 缓存的机制。

最新稳定版 SGLang 0.5.18,发布于 2026 年 8 月 22 日。这个项目的迭代速度快得有点吓人:GitHub 上累计提交已超 17,000 次,Release 标签 160 多个,就在本文写作当天仍有新代码合入。

SGLang 的特点

  • 开源免费,Apache 2.0 协议,商业使用无顾虑
  • 招牌创新 RadixAttention:用基数树管理 KV 缓存,跨请求自动复用相同前缀,默认开启、无需任何配置
  • 零开销 CPU 调度器:调度逻辑不占用 GPU 时间片,避免"GPU 等 CPU"的空转
  • PD 分离(Prefill-Decode Disaggregation):把计算密集的"理解输入"和带宽密集的"逐字生成"拆到不同 GPU 集群,各干各的
  • 推测解码:2026 年 6 月推出 DFlash 与 Spec V2 新一代方案,用小模型打草稿、大模型批量验证
  • 结构化输出:基于 xgrammar 的压缩有限状态机,在解码时就只允许合法 token 出现,直接吐出合规 JSON
  • 连续批处理(Continuous Batching)+ 分块预填充(Chunked Prefill)
  • 并行全家桶:张量 / 流水线 / 专家 / 数据并行,以及大规模 EP(专家并行)
  • 量化支持:FP4 / FP8 / INT4 / AWQ / GPTQ
  • Multi-LoRA 批处理:一份底座权重,同时混跑多个 LoRA 适配器
  • 模型覆盖广:Llama、Qwen、DeepSeek、Kimi、GLM、GPT、Gemma、Mistral,以及 Embedding、Rerank、奖励模型,乃至 WAN、Qwen-Image 等扩散模型
  • 硬件不挑食:NVIDIA(GB200/B300/H100/A100/Spark/5090)、AMD(MI355/MI300)、Intel Xeon CPU、Google TPU、华为昇腾 NPU
  • 兼容 OpenAI API,还能当强化学习的 rollout 引擎用

RadixAttention:它到底省在哪

vLLM 的 PagedAttention 借鉴操作系统虚拟内存,把 KV 缓存切成固定大小的"页"按需分配,主要解决的是显存碎片问题。

SGLang 的 RadixAttention 更进一步:它把 KV 缓存组织成一棵基数树,key 就是 token 序列。任何两个请求只要前缀相同——同一个系统提示词、同一份 RAG 文档块、同一轮历史对话——就自动命中同一段缓存,连"配置一下"都不用,默认就开着。

这是两种思路的分野:PagedAttention 关心"显存别浪费",RadixAttention 关心"计算别重做"。

哪些场景最吃这个红利?

  • RAG 应用:一批用户查同一个知识库,检索出的文档块高度重合
  • 多轮对话:每轮都带着完整历史,前缀几乎完全一样
  • Agent 工作流:每步都把几十个工具的 JSON Schema 重发一遍,前缀长得离谱
  • Few-shot 提示:示例部分每次都一样

反过来,如果你的请求彼此毫无关系——每次都是全新的、互不重叠的长文本——那 RadixAttention 基本无处施展。这一点必须说清楚,它不是万能药。

谁在真的用它

SGLang 官方披露,全球部署规模已超 40 万张 GPU,每天在生产环境处理数万亿 token

采用名单相当能说明问题:xAI、NVIDIA、AMD、Intel、LinkedIn、Cursor、Oracle Cloud、Google Cloud、Microsoft Azure、AWS,以及 MIT、UCLA、华盛顿大学、斯坦福、UC Berkeley、清华大学等高校,国内则有百度、蚂蚁集团、阿里巴巴、腾讯。

几个具体的时间戳,能看出它的生态位:

  • 2026/07 与 Miles 一起为月之暗面 Kimi K3 提供 day-0 支持
  • 2026/07 用 SGLang 跑 GLM5.2 NVFP4 的 Agent 负载,两周内做到 500 TPS
  • 2026/07 RadixArk 与 Google 合作,把完整的 SGLang 能力带到 TPU
  • 2026/06 发布 DFlash 与 Spec V2 新一代推测解码
  • 2026/04 DeepSeek-V4 发布当天就完成适配,并支持用它做可验证的 RL 训练
  • 2026/02 在 NVIDIA GB300 NVL72 上实现 25 倍推理性能提升

注意这个模式:国产大模型发新版,SGLang 和 vLLM 基本都是当天就位。2026 年 8 月阿里开源 Qwen3.8-Flash 时,官方同样点名已接入 vLLM/SGLang。谁先适配上最新模型,谁就吃到第一波流量——这是推理引擎之间最真实的战场。

还有个容易被忽略的身份:SGLang 是强化学习后训练的主力 rollout 引擎,AReaL、Miles、slime、Tunix、verl 等主流后训练框架都拿它当采样后端。也就是说,很多前沿模型"练"出来的过程本身就跑在 SGLang 上——这是它和纯 serving 引擎最大的不同。

此外,2026 年它还长出了 SGLang Diffusion,把加速能力延伸到视频和图像生成。

SGLang 初体验

装和跑都极其简单,两条命令。

  1. 安装(推荐用 Docker 或独立 conda 环境)
bash
pip install "sglang[all]"==0.5.18

环境要求:Python 3.10+,NVIDIA 显卡需 CUDA 12.4+ 及 550+ 驱动,系统内存建议 32GB 起。

  1. 启动一个 OpenAI 兼容的推理服务
bash
python3 -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --host 0.0.0.0 \
  --port 30000

服务起来后,任何用 OpenAI SDK 写的应用,把 base_url 指到 http://localhost:30000/v1 就能直接用,业务代码一行不用改。

想在 Python 里直接当库用,也很顺手:

python
import sglang as sgl

llm = sgl.Engine(model_path="meta-llama/Llama-3.1-8B-Instruct")
outputs = llm.generate(
    ["用一句话解释什么是基数树。"],
    {"temperature": 0.7, "max_new_tokens": 512}
)
print(outputs[0]["text"])

上手建议:别一上来就怼 70B。先从 7B/8B 小模型跑通流程,确认前缀缓存命中情况,再谈调优。生产环境务必配 --api-key 并限制服务端口的访问范围——推理服务暴露在公网上,是这两年很常见的安全事故源头。

那 SGLang 和 vLLM 到底选哪个

既然站内已经写过 vLLM,这里就直说了。

2026 年中的社区基准显示,两者在同硬件下的吞吐差距通常在 5%~15% 之间,具体取决于你的请求有多少前缀重叠。不是某些宣传里那种数量级的碾压。

选型可以这样拍:

  • 你的场景前缀重复率高(多轮对话、RAG、Agent、Few-shot),且主要用 NVIDIA 或 AMD MI300 系列卡 → 优先试 SGLang
  • 你需要最全的硬件可移植性(TPU、Trainium、昇腾、Intel XPU 混着来),或者要最完整的 OpenAI API 覆盖 → 优先试 vLLM
  • 你在做 RL 后训练、要跑最新最前沿的模型、想在 Blackwell 架构上榨性能 → SGLang 的领先更明显
  • 请求彼此独立、毫无重复 → 两者差别不大,选你运维更熟的那个

我个人的看法:这俩不是"谁取代谁"的关系,而是"你先跑哪个 benchmark"的关系。真正靠谱的做法是拿你自己的真实流量各压一轮——引擎选型这事,别人的数字只能帮你缩小范围,替不了你做决定。

进阶

SGLang 最迷人的地方在于,它把一个很学术的想法——"用基数树复用前缀"——做成了一件你什么都不用做就能享受的事。默认开启、自动命中、无需配置,这比给你十个调优参数更实在。

更多开源技术干货和学习资料,关注公众号「遇码」,领取专属福利。

遇码MeetCoding 开源技术社区