用途定位
SGLang 是面向大语言模型(LLM)与视觉语言模型(VLM)的高性能服务框架,核心创新是 RadixAttention 自动前缀缓存。资料建议在以下情况使用 SGLang:需要结构化输出(JSON、正则、语法);构建带重复前缀(系统提示、工具定义)的智能体;函数调用的智能体工作流;共享上下文的多轮对话;以及需要更快 JSON 解码(约为标准速度 3 倍)。若只是简单文本生成、不需要前缀缓存,或更看重成熟且广泛测试的生产系统,可考虑 vLLM;若追求单请求最低延迟、仅 NVIDIA 部署或需要 H100 上的 FP8/INT4 量化,可考虑 TensorRT-LLM。
主要能力
- RadixAttention 前缀缓存:自动构建已处理 token 的基数树,检测共享前缀并复用 KV 缓存,只计算新 token,零配置生效。资料称在共享系统提示的智能体工作负载上约快 5 倍,在重复示例的少样本提示上约快 10 倍。
- 结构化生成:支持 JSON Schema 约束、正则约束与 EBNF 语法约束生成,示例包括提取人员信息、邮箱、生成 Python 代码。
- 智能体与函数调用:支持传入 tools 定义,由 SGLang 处理工具调用格式,并可配合 stop 参数控制输出。
- 多轮对话:利用前缀缓存复用不断增长的对话历史,随历史增长逐步加速。
- 服务与接口:提供 OpenAI 兼容 API(/v1/chat/completions),可用 curl 或 OpenAI Python SDK 调用。
- 性能特性:持续批处理、run_batch 并行请求、投机解码(可指定草稿模型与步数)、多 GPU 张量并行。
- 多模态:支持图像输入与描述生成。
- 模型与硬件:文本模型包括 Llama 2/3/3.1/3.2、Mistral、Mixtral、Qwen、Qwen2、QwQ、DeepSeek-V2/V3、Gemma、Phi-3 等;视觉模型包括 LLaVA、LLaVA-OneVision、Phi-3-Vision、Qwen2-VL;资料称支持 HuggingFace 上 100+ 模型。硬件支持 NVIDIA A100/H100/L4/T4(CUDA 11.8+)、AMD MI300/MI250(ROCm 6.0+),Apple M1/M2/M3 经 MPS 为实验性支持,Intel Xeon 配 GPU 标注为即将推出。
使用方式
安装:推荐 pip install "sglang[all]";如需 FlashInfer 可用 pip install sglang[all] flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/;也可从源码安装。启动服务示例:python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --port 30000,多 GPU 加 --tp 4,投机解码加 --speculative-model 与 --speculative-num-steps。Python 侧通过 sgl.set_default_backend 设置后端,使用 @sgl.function 装饰器定义生成流程,sgl.gen 支持 max_tokens、regex、json_schema、grammar、tools、stop 等参数。
适用场景
结构化信息抽取、带固定系统提示的智能体与工具调用、少样本提示、多轮客服或助手对话、需要高吞吐的批量推理、视觉问答等。
限制与注意事项
资料中的性能倍数为特定基准下的示例数据,实际效果取决于模型、硬件与负载;Apple MPS 支持为实验性;Intel GPU 支持尚未提供;具体收费、价格与平台信息暂未提供。