---
url: /sglang/introduction.md
description: >-
  SGLang 是 LMSYS 开源的高性能大模型推理服务框架，以 RadixAttention 前缀缓存大幅提升多轮对话、RAG 与 Agent
  场景吞吐，全球部署超 40 万张 GPU，与 vLLM 并列开源推理引擎双雄。
---

# 认识 SGLang

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

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

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

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

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

## 什么是 SGLang

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

它的名字来自 **S**tructured **G**eneration **L**angage（结构化生成语言），早年主打"用一门小语言精确控制模型输出格式"。但让它在业界真正立住的，是底层的 **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 起。

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

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