SGLang翻译站点

3周前发布 12 0 0

SGLang是基于RadixAttention前缀缓存的高吞吐LLM/VLM服务框架。

所在地:
美国
语言:
英文
收录时间:
2026-08-21

SGLang是UC Berkeley团队开源的高性能LLM/VLM服务框架,Apache-2.0许可。核心RadixAttention实现基数树KV Cache前缀复用,配合零开销CPU调度器、PD分离、投机解码、结构化输出,在Agent/RAG/多轮对话场景较vLLM有10-30%吞吐优势,全球支撑40万+GPU生产部署。

 

项目概述

SGLang是由UC Berkeley团队开发的大模型与多模态模型高性能服务框架,通过”后端运行时+前端DSL”协同设计,让模型交互更快且可控 。最新PyPI版本v0.4.9.post4,月下载量244K+ ,Apache-2.0许可 。

 

核心创新:RadixAttention

传统推理引擎在请求结束后丢弃KV Cache,SGLang则通过基数树(Radix Tree)管理KV Cache的前缀复用 :

  • 新请求到达时,在基数树中执行前缀搜索,找到最长匹配前缀
  • 匹配部分的KV Cache直接复用,仅计算未匹配的新token
  • 请求完成后,新计算的KV Cache插入基数树供后续请求复用
  • LRU淘汰策略管理GPU显存,避免驱逐正在被活跃请求共享的前缀
  • 缓存感知调度策略优先处理缓存匹配更长的请求,进一步提升命中率

 

RadixAttention的性能影响(按工作负载类型) :

工作负载 RadixAttention缓存命中率 无前缀缓存命中率 加速比
Few-shot学习 85-95% 15-25% 最高5倍
多轮对话 70-90% 0-30% 2-4倍
Agent工作流(共享系统提示) 80-95% 10-20% 3-5倍
检索增强生成(RAG) 50-80% 0-20% 1.5-3倍
思维树/分支搜索 60-90% 0-15% 2-6倍
单轮独立提示 ~0% ~0% ~1倍(无收益)

 

2025-2026独立基准测试(Prem AI,H100硬件,Llama-3.1-70B FP16) :

  • 批推理吞吐:SGLang 16,215 tok/s vs vLLM 12,553 tok/s,+29%
  • 多轮对话吞吐:SGLang ~14,800 tok/s vs vLLM ~11,200 tok/s,+32%
  • 单请求延迟:两者相当
  • 高并发GPU利用率:SGLang 88-93% vs vLLM 85-92%

这意味着在共享前缀的生产场景(Chatbot、Agent、批处理),SGLang可节省约29%的GPU小时,直接降低基础设施成本 。

 

v0.4分层KV Cache:冷缓存条目可从GPU显存(HBM)卸载到主机CPU内存(DRAM)甚至NVMe存储,未来请求匹配时再提升回GPU ,有效缓存容量远超单GPU显存,特别适合超长共享系统提示或文档对话应用。

 

产业采用:SGLang已被xAI、NVIDIA、AMD、Intel、LinkedIn、Cursor、Oracle Cloud、Google Cloud、Microsoft Azure、AWS等采用,全球超过100万GPU部署,每天在生产中生成数万亿token 。

 

许可策略:Apache-2.0许可 ,允许商用、修改、再分发。

💡 SGLang的独特定位:它是”推理引擎”子分类中结构化生成与Agent场景的王者。与vLLM(通用生产默认)、TensorRT-LLM(NVIDIA极限吞吐)、LMDeploy(国产INT4量化)形成差异化:SGLang的核心竞争力在RadixAttention前缀缓存,使得在Agent/RAG/多轮对话/思维树等”前缀共享”场景中,SGLang通过KV Cache复用获得10-30%的吞吐优势 。其前端DSL让开发者可以用Python嵌入式语法表达多步生成工作流、分支逻辑、条件控制流和约束生成,且运行时感知这些调用之间的关系——这正是RadixAttention能跨调用复用KV状态的编程基础 。SGLang严格属于”推理引擎”子分类,提供OpenAI兼容API,不涉及训练、微调或前端界面。

 

核心能力

  • RadixAttention前缀缓存:基数树管理KV Cache,令牌粒度前缀匹配,LRU淘汰,缓存感知调度
  • 零开销CPU调度器:v0.4引入的零开销批处理调度器
  • Prefill-Decode分离(PD分离):在96卡H100上部署DeepSeek实现大规模专家并行,解码吞吐提升2.7倍
  • 投机解码(Speculative Decoding):加速自回归生成
  • 连续批处理(Continuous Batching):动态请求批处理
  • 分页注意力(Paged Attention):高效显存管理
  • 四维并行:张量并行(TP)+ 流水线并行(PP)+ 专家并行(EP)+ 数据并行(DP)
  • 结构化输出:内置压缩有限状态机,JSON/XML等约束生成比普通引擎快3倍
  • 分块预填充(Chunked Prefill):长上下文请求分块处理
  • 量化支持:FP4/FP8/INT4/AWQ/GPTQ全精度矩阵
  • 多LoRA批处理:单基座多适配器并发服务
  • 分层KV Cache:v0.4+支持HBM→DRAM→NVMe三级缓存层次
  • 模型支持广泛:Llama、Qwen、DeepSeek、Kimi、GPT、Gemma、Mistral等LLM;e5-mistral、gte等嵌入模型;Skywork等奖励模型;WAN、Qwen-Image等扩散模型
  • 多模态原生支持:LLaVA等VLM模型,图像/视频原语,多模态RadixAttention(图像哈希作为基数树键)
  • 硬件覆盖广:NVIDIA GPU(GB200/B300/H100/A100)、AMD GPU(MI355/MI300)、Intel Xeon CPU、Google TPU、华为昇腾(Ascend)NPU
  • OpenAI API兼容:与HuggingFace模型生态良好兼容
  • 前端DSL:Python嵌入式领域特定语言,支持链式生成、高级提示、控制流、多模态输入、并行、外部交互

 

优势亮点

  • RadixAttention是颠覆性创新:基数树KV Cache前缀复用在Agent/RAG/多轮对话场景带来10-30%吞吐优势,Agent密集场景端到端成本降低约35%
  • Apache-2.0最干净许可:商用无门槛,与vLLM、LMDeploy并列”最干净许可”阵营
  • 结构化输出3倍加速:压缩有限状态机使JSON/XML约束生成速度比普通引擎快3倍
  • 生产验证:全球100万+GPU部署,每天生成数万亿token,xAI、NVIDIA、AMD、Intel、Microsoft Azure、AWS等均在使用
  • a16z开源AI资助:第三批a16z开源AI资助获奖项目
  • 加入PyTorch生态:2025年3月成为PyTorch官方生态项目
  • Day-0模型支持:OpenAI gpt-oss、DeepSeek V3/R1等模型Day-1支持
  • 多硬件原生适配:NVIDIA/AMD/Intel/TPU/昇腾全覆盖,国产硬件友好
  • 前端DSL编程模型:Python嵌入式语法表达复杂LLM工作流,运行时感知调用关系实现自动KV复用
  • v0.4分层缓存突破GPU显存限制:HBM→DRAM→NVMe三级缓存,超长共享提示场景缓存容量近乎无限
  • PD分离+大规模EP:96卡H100部署DeepSeek实现2.7倍解码吞吐提升

 

局限

  • 无共享前缀场景无收益:单轮独立提示场景RadixAttention开销略增3-5%,与vLLM性能相当
  • LRU淘汰策略次优:默认LRU淘汰不考虑未来访问模式,在可预测前缀复用的Agent工作流中可能驱逐即将需要的缓存
  • 贪婪调度可能饿死:缓存感知调度使用贪婪”最长共享前缀优先”策略,可能导致无前缀匹配的请求饥饿
  • 单级内存层次:RadixAttention目前主要在GPU显存操作(v0.4开始扩展至CPU/NVMe)
  • 无模糊语义匹配:基数树要求令牌级精确前缀匹配,语义相似但措辞略异的提示无法复用
  • 部署复杂度中等:相比vLLM的pip install简易部署,SGLang配置项更多
  • 模型支持广度略逊vLLM:vLLM支持200+ HuggingFace架构且新模型适配最快(1-2周),SGLang模型适配稍慢
  • 单请求延迟非最优:在低并发单请求延迟优化场景,vLLM仍具竞争力

 

适用人群

  • Agent/多Agent系统:每个Agent有独立System Prompt但共享工具定义和上下文,RadixAttention带来显著收益
  • Chatbot平台:长对话线程+一致系统提示,正是RadixAttention设计目标场景
  • RAG应用:共享文档前缀的检索增强生成,缓存命中率50-80%
  • 批处理推理作业:大文档集共享前缀的离线批评分
  • 思维树/分支搜索:Tree-of-Thought等探索性推理,缓存命中率60-90%,加速2-6倍
  • Few-shot学习:共享演示示例,缓存命中率85-95%
  • 结构化输出需求:JSON/XML约束生成,SGLang比vLLM+outlines快3倍
  • MoE模型服务:DeepSeek V3/R1等MoE模型,SGLang大规模EP性能领先
  • 多硬件环境:NVIDIA/AMD/Intel/TPU/昇腾混合部署
  • 生产高并发服务:已验证100万+GPU全球部署规模

 

安装与部署

 

1. 环境要求

  • Linux操作系统(推荐Ubuntu 20.04+)
  • Python 3.10+
  • CUDA 12.x(NVIDIA GPU)
  • PyTorch 2.x
  • NVIDIA GPU(A100/H100/GB200推荐)

 

2. 安装

# pip安装
pip install sglang

# 源码安装
git clone https://github.com/sgl-project/sglang.git
cd sglang
pip install -e .

# 或使用Docker
docker pull lmsysorg/sglang:latest
docker run --gpus all -p 30000:30000 lmsysorg/sglang:latest \
  --model-path meta-llama/Llama-3.1-8B-Instruct

 

3. 启动OpenAI兼容API服务

# 基础启动
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --port 30000

# 多GPU张量并行
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-70B-Instruct \
  --tp 8 \
  --port 30000

# 启用RadixAttention前缀缓存(默认开启)
python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-8B-Instruct \
  --enable-radix-cache \
  --port 30000

 

4. 客户端调用(OpenAI兼容)

import openai

client = openai.Client(
    base_url="http://localhost:30000/v1",
    api_key="EMPTY"
)

# 聊天补全
response = client.chat.completions.create(
    model="meta-llama/Llama-3.1-8B-Instruct",
    messages=[
        {"role": "system", "content": "你是一个有帮助的AI助手。"},
        {"role": "user", "content": "什么是RadixAttention?"}
    ],
    temperature=0.7,
    max_tokens=512
)
print(response.choices[0].message.content)

 

5. 前端DSL编程(结构化生成)

import sglang as sgl

@sgl.function
def chain_of_thought(s, question):
    s += sgl.system("你是一个逻辑推理专家。")
    s += sgl.user(question)
    s += sgl.assistant(sgl.gen("thinking", max_tokens=256))
    s += "所以答案是:"
    s += sgl.assistant(sgl.gen("answer", max_tokens=64))

# 批量调用,RadixAttention自动复用共享前缀
states = chain_of_thought.run_batch([
    {"question": "如果所有的玫瑰都是花,那么有些花是玫瑰吗?"},
    {"question": "如果所有的猫都是动物,那么有些动物是猫吗?"}
])

for state in states:
    print(state["answer"])

 

6. 结构化输出(JSON约束生成)

import sglang as sgl

@sgl.function
def extract_info(s, text):
    s += "从以下文本中提取信息并以JSON格式输出:\n" + text
    s += sgl.json(
        "output",
        schema={
            "name": "string",
            "age": "integer",
            "city": "string"
        }
    )

state = extract_info.run(text="张三今年28岁,居住在北京。")
print(state["output"])  # 自动符合schema的JSON

 

7. PD分离部署(DeepSeek大规模EP)

# Prefill节点
python -m sglang.launch_server \
  --model-path deepseek-ai/DeepSeek-V3 \
  --tp 8 \
  --port 30000 \
  --role prefill

# Decode节点
python -m sglang.launch_server \
  --model-path deepseek-ai/DeepSeek-V3 \
  --tp 8 \
  --port 30001 \
  --role decode

# 路由层
python -m sglang.serve_router \
  --prefill-hosts localhost:30000 \
  --decode-hosts localhost:30001

 

8. 量化推理(FP8)

python -m sglang.launch_server \
  --model-path meta-llama/Llama-3.1-70B-Instruct \
  --tp 4 \
  --quantization fp8 \
  --port 30000

 

9. 部署前必检清单

  • 确认仓库位于 github.com/sgl-project/sglang(官方)
  • 许可:Apache-2.0,商用友好
  • 最新稳定版v0.4.9.post4(PyPI),建议跟进GitHub Release获取最新特性
  • RadixAttention在共享前缀场景收益最大,单轮独立请求场景与vLLM性能相当
  • 多GPU部署需配置--tp(张量并行)或--pp(流水线并行)
  • 生产环境推荐NVIDIA H100/A100或AMD MI300X
  • 华为昇腾NPU需使用对应硬件后端
  • 严格属于”推理引擎”子分类,提供OpenAI兼容API,不涉及训练/微调/前端界面
  • 全局100万+GPU部署验证,生产稳定性可靠

相关导航