文章目录
- 一、开篇:推理这笔账,到底贵在哪
- 二、SGLang 是什么:一句话与功能全景
- 三、整体架构:前端 DSL + 后端运行时
- 四、第一性原理:RadixAttention 让“重复前缀”不再重复算
- 4.1 它要解决的问题
- 4.2 RadixAttention 的做法
- 4.3 收益从哪来
- 4.4 工程上的“重难点”提示
- 五、调度与内存:连续批处理、分块预填充、CUDA Graph 与重叠调度
- 六、结构化输出:让模型“必须”吐出合法 JSON
- 关键重难点代码
- 七、推测解码:小模型起草 + 大模型验证
- 7.1 一句话原理
- 7.2 性能数据(关键卖点)
- 7.3 算法全家桶(选型速查)
- 7.4 关键重难点代码(EAGLE-3)
- 7.5 OOM 急救四步
- 八、PD 分离:把 Prefill 与 Decode 拆开跑
- 8.1 为什么要拆
- 8.2 关键能力
- 8.3 关键重难点代码(单机 Llama 示例)
- 九、多 LoRA 服务:一套底座跑多个微调模型
- 9.1 关键参数
- 9.2 关键数据
- 9.3 关键重难点代码
- 十、量化:离线与在线,FP8/FP4 与平台矩阵
- 10.1 平台与方法矩阵(要点)
- 10.2 GEMM 后端选择
- 10.3 关键重难点代码
- 十一、注意力后端全景:MHA / MLA / DSA / GDN
- 11.1 MHA 后端(标准注意力)要点
- 11.2 MLA 后端(多头顶潜在注意力,如 DeepSeek)
- 11.3 自动选择逻辑(CUDA)
- 11.4 其他值得注意的机制
- 十二、硬件与生态:从 NVIDIA 到昇腾,从训练到编排
- 12.1 硬件覆盖
- 12.2 生态版图
- 十三、上手实战:十分钟把模型跑起来
- 13.1 安装(三选一)
- 13.2 启动服务
- 13.3 发一个请求
- 十四、生产实践与避坑清单
- 十五、结语
一、开篇:推理这笔账,到底贵在哪
大模型推理的成本结构,其实逃不过三笔账:
- 重复计算账:多轮对话、少样本提示、并行采样、思维树搜索……这些负载里,大量请求共享同一段前缀。传统做法每次都从头算一遍 KV,GPU 时间被白白烧掉。
- 调度低效账:请求长短不一,预填充(Prefill)批次频繁打断正在进行的解码(Decode)批次,吞吐上不去、首字延迟降不下来。
- 可控性账:需要严格 JSON、要接工具调用、要保证格式合法,很多框架只能“祈祷模型听话”,要么用后处理纠正、要么反复重试。
SGLang 针对的正是这三笔账。它把“前端如何表达程序”与“后端如何高效执行”当成一个整体来协同设计,最终在多个常见 LLM 工作负载上,相比同期的一些系统实现了最高约 5 倍的吞吐提升。这,就是本篇要拆开讲的引擎。
二、SGLang 是什么:一句话与功能全景
一句话概括:SGLang 是一个面向大语言模型、视觉语言模型与扩散模型的开源推理框架,专为 Agent 类负载、大规模服务以及强化学习(RL)的 rollout 生成而优化。
它不只是一个“能跑模型的服务”,而是一整套从编程接口到硬件内核的栈: