总结自ModelScope开发者大会-SGLang推理引擎–高效的开源部署方案
开源项目地址:https://github.com/sgl-project/sglang
什么是 SGLang?
SGLang 是面向 大语言模型(LLM)与多模态模型 的推理引擎。它负责把模型高效部署在 GPU 上,并向上层(中间层/前端)提供标准化 API 进行推理调用。
在开源推理引擎里,SGLang 的性能处于领先水平;同时我们复现了 DeepSeek 公布的吞吐指标,并在多家合作中实现了大规模稳定部署。
发展历程与特性概览
- 早期版本(2023 → 2024 初):实现 前缀 KV cache 共享,显著优化多轮对话场景。
- v0.2:在 Llama-3 上的实测性能优于同类方案(如 vLLM、TensorRT-LLM)。
- v0.3 / v0.4:加入多项核心优化:
- DeepSeek MLA(Multi-Head Latent Attention)相关的内核与调度优化(首次支持与加速)。
- Zero-overhead batch scheduling(零额外开销的批调度)
- Cache-aware Data Parallel(DP)
- Router/调度 优化
- 与 XGrammar 深度集成的 Constrained Decoding(约束解码)
- 2024 年中:首个完全开源、同时支持 大规模专家并行(MoE/EP) 与 Prefill/Decode 分离(PD 分离) 的推理引擎;吞吐可达传统纯数据切分方案的多倍提升,并显著降低推理成本。
核心优化技术
- Speculative Decoding(猜测式解码)
以小模型或外部检索先生成候选 token,大模型做 rejection sampling 验证;在 EAGLE/EAGLE2/EAGLE3 与 MTP(Multi-Token Prediction) 下,可获得 约 1.6–2.4× 加速(随 batch size 变化)。 - Constrained Decoding(约束解码)
需要输出结构化格式(如 JSON)时,配合 XGrammar 与 GPU/CPU overlap,在采样阶段屏蔽不合法 token,仅在合法集合内采样,实现几乎零开销的格式约束。 - PD 分离(Prefill / Decode Separation)
将 prefill 与 decode 运行在不同实例:- 改善 streaming 输出 的连贯性,避免 decode 被长上下文 prefill 打断。
- 缓解 DP attention group 的不平衡问题。
- 解决与 EP(Expert Parallel) 模式共存时的调度/通信冲突。
- 大规模专家并行(MoE / EP)
- Dense 层走 DP(Data Parallel),简化通信与扩展;
- MoE 层按专家跨 GPU 分布,每次只激活少量专家,提升可扩展性;
- 通过 two-batch overlap(计算-通信重叠) 优化,把通信内核与计算内核的 launch 顺序编排好,减少气泡;
- 在图级调度中插入“标记算子”定义 stage 边界,交错推进,实现稳定的 overlap。
PD 分离的架构与时序(简述)
- 入口(Entry Point/LB) 在请求到达时一次性选择一对 Prefill 实例 与 Decode 实例(绑定为固定的 PD pair)。
- Handshake 交换元数据 → 在 Decode 侧预留 KV cache 显存(加锁占位) → Prefill forward → KV cache 传输 → Decode forward → 流式返回给入口。
- 这样 路由逻辑与计算逻辑解耦,streaming 体验稳定,延迟更可控。
负载均衡与专家调度(EPLB)
- MoE 下专家选择会出现热点专家,SGLang 提供 EPLB(Expert Parallel Load Balancer):周期性评估负载并调整专家副本/权重分布;必要时做 peer-to-peer 权重同步,使请求在专家间更均衡。
性能表现(概览)
- 在新一代 GPU(如 H100)上,SGLang 的 prefill 吞吐可提升至多数倍,decode 吞吐可达 5–6×(对比传统 TP-only 方案,具体取决于模型、batch 与并行度设置)。
- 通过减少单卡模型与 KV cache 占用、增大有效 batch size,进一步提升 throughput 与资源效率。
社区与生态
- 我们在旧金山成立了 非营利基金会,核心开发者多为兼职(学生/在职工程师)。
- SGLang 已在海内外多家团队中落地,形成了活跃的开源生态;欢迎大家参与贡献、提需求、提 PR,一起把开源推理栈做强。
总结
SGLang 通过 系统级优化 + 分布式并行 + 约束/猜测式解码,在开源推理引擎中实现了高吞吐、低延迟与强扩展能力。期待与更多开发者合作共建。