SGLang 是一个高吞吐的推理服务框架,靠 RadixAttention 做前缀缓存,适合把开源模型变成对外 API。
自己部署模型,难点不在“能跑起来”,而在“多人并发时不卡”。vLLM 是一个选择,SGLang 是另一个:它把前缀共享、结构化输出、多模态推理都做进了运行时。如果你的场景里大量请求有相同的系统提示词或相同的文档开头,它的缓存命中能把吞吐拉得很高。
基本信息
| 项目 | 内容 |
|---|---|
| 项目名称 | SGLang(sgl-project/sglang) |
| 编程语言 | Python |
| 开源许可证 | Apache-2.0 |
| GitHub 地址 | https://github.com/sgl-project/sglang |
| 官网或 Demo | https://sglang.ai |
核心能力
RadixAttention 前缀缓存。 把多个请求中相同的前缀(系统提示、few-shot 示例、长文档开头)在显存里共享,不用每轮重算。多轮对话与 RAG 场景下,相同上下文会被反复用到,这一层缓存直接换算成成本。
结构化输出。 支持用 JSON Schema 或正则约束生成结果,模型不会跑出格式。做信息抽取、分类、工具调用参数生成时,比自己写重试解析靠谱。
OpenAI 兼容 API。 启动服务后提供 /v1/chat/completions 这类端点,现有代码大多只需改 base_url。从云 API 迁到自建,改动量很小。
高吞吐调度。 官方定位就是 serving framework,支持连续批处理与并行采样。多卡、多机都有对应启动参数。
多模态支持。 除文本模型,也支持视觉语言模型与部分音频模型,做图文问答不用另一套服务。
使用上手
- 准备带 NVIDIA 显卡的机器,确认驱动与 CUDA 版本符合官方要求。
pip install "sglang[all]"(或按文档用 uv 装,避免依赖冲突)。- 启动服务:
python -m sglang.launch_server --model-path <模型路径或 HF 仓库名> --port 30000。 - 先用 curl 测一下
/v1/chat/completions,确认能返回。 - 把业务代码里的 base_url 改成
http://localhost:30000/v1,跑一遗回归。 - 需要 JSON 输出时传 Schema 约束,不要靠提示词“请返回 JSON”。
- 压测时看前缀缓存命中率与显存占用,再调
--mem-fraction-static与并发参数。
优点与不足
优点是前缀缓存对多轮与 RAG 场景提升明显;结构化输出是原生能力;OpenAI 兼容降低迁移成本;Apache-2.0 商用友好。不足是它面向有 GPU 服务器的人,个人笔记本基本跑不动;部署参数多,显存分配调错会 OOM;版本迭代快,教程常与当前版本对不上,以官方文档为准;它只解决推理服务,不包含前端与鉴权,对外服务要自己包一层。
适合谁
适合要把开源模型做成对外 API 的团队;适合 RAG / 多轮对话产品需要压低推理成本;适合有 GPU 集群、想要可控部署的工程团队。不适合只想“本地试一下模型”的个人。
下载与访问
仓库:https://github.com/sgl-project/sglang
文档:https://docs.sglang.ai
许可证与部署
| 项目 | 说明 |
|---|---|
| 源码部署 | pip install "sglang[all]",python -m sglang.launch_server --model-path <模型> --port 30000 |
| 容器部署 | 官方文档提供 Docker 镜像用法,需正确挂载 GPU |
| 许可证 | Apache-2.0 |
| 星标 | 以 GitHub 为准(公开数据约 3.9 万,仅作参考) |
显存与并发参数需根据实际显卡调优,默认值不一定适合你的机器。
本文属于「项目」分类的 AI 资源专栏,更多评测见分类页。
评论 0
还没有评论,来说两句吧。