SGLang 是一款面向大语言模型(LLM)和视觉语言模型(VLM)的高性能开源推理引擎,通过协同优化后端运行时与前端语言接口,显著提升模型推理效率和开发灵活性。
核心特点与技术亮点
1. 架构设计
前端 SGLang Client:提供直观的编程接口,支持链式生成调用、高级提示工程、复杂控制流、多模态输入及并行处理,降低开发者构建复杂应用的门槛。
后端 SGLang Runtime:集成多项创新技术,包括 RadixAttention 前缀缓存、零开销 CPU 调度器、连续批处理、分页注意力机制等,实现高效的资源管理和计算加速。
2. 核心技术
RadixAttention:通过共享提示前缀缓存减少重复计算,在对话或检索增强生成场景中可将吞吐量显著提升。
零开销调度器:将 CPU 调度与 GPU 计算重叠,消除 GPU 空闲时间,提升系统整体吞吐量。
缓存感知负载均衡:基于 KV 缓存状态智能路由请求,提高缓存命中率并优化资源利用率。
量化与并行支持:兼容 FP8/INT4/AWQ/GPTQ 等量化技术,支持张量并行和分块预填充,适应不同硬件配置需求。
3. 性能优势
在共享前缀批量请求场景下,吞吐量可达 158,596 token/s,缓存命中率超过 75%。
相比同类框架,JSON 结构化输出解码速度快达 10 倍,解码吞吐量提升最高 1.9 倍。
支持主流模型(如 Llama、Gemma、Qwen、DeepSeek 等),适配多模态场景并保持长期性能领先。
4. 应用场景
高并发推理服务:适用于需快速响应的大规模对话系统或 API 服务。
复杂控制流任务:支持多分支逻辑、外部工具集成等高级交互需求。
多模态应用开发:兼容视觉语言模型(如 LLaVA),扩展生成式 AI 的应用边界。
安装与使用
SGLang的安装方式还挺丰富的,可通过包管理器,源码,docker与compose,甚至K8S安装,不可谓不强大,果然后浪推前浪呐。
按照惯例,我们还是使用 anaconda 创建一个新环境,然后按照第一种方法包管理器来安装SGLang,截至目前最新版为0.4.6.post2,看了下Qwen3详情,刚好支持,我们就拿 Qwen3-0.6B 来试试手
conda create -n sglang python=3.12
conda activate sglang
pip install --upgrade pip # 升级包工具
pip install "sglang[all]>=0.4.6.post2" # 安装SGLang
通过以上代码就将sglang环境安装好了,在安装过程中如果出现下载断开或失败的情况可以多试几次,如果没有科学上网环境记得加上镜像源参数安装。接下来就是运行最新的Qwen3模型了,咱先去它在魔搭社区看看,然后找到对应SGLang的执行命令运行即可。详情页面也介绍了Qwen3对SGLang与vLLM的支持版本,但是运行的时候却报错了:
fatal error: cuda_fp8.h: No such file or directory
上面是我复现出来的截图,大致意思就是我的cuda包里没有fp8相关的头文件,搜索了一番资料后解决方式就是得升级cuda包,我用的是anaconda环境,需要去官网找需要的版本下载
我下载了最新版本
conda install nvidia/label/cuda-12.9.0::cuda-toolkit
安装成功后重新运行
SGLANG_USE_MODELSCOPE=true python -m sglang.launch_server --model-path Qwen/Qwen3-0.6B --reasoning-parser qwen3
在浏览器中访问API接口
使用curl发个对话接口,正常响应