SuperAPI AI 工具集

sglang

智能体与模型

查看项目

更新于 10-15 13:03

技能介绍

SGLang 是一个面向大语言模型(LLM)和视觉语言模型(VLM)的高性能服务框架,其核心创新是 RadixAttention,用于自动前缀缓存。

一、用途与适用场景 官方建议在以下情况使用 SGLang:需要结构化输出(JSON、正则、语法);构建带重复前缀(系统提示、工具定义)的智能体;需要函数调用的智能体工作流;共享上下文的多轮对话;需要更快的 JSON 解码(官方称约为标准方式的 3 倍)。 官方同时给出替代建议:若只需简单文本生成、不需要前缀缓存,或希望使用成熟且经过广泛测试的生产系统,可考虑 vLLM;若追求单请求最低延迟(无需批处理)、仅部署在 NVIDIA 平台,或需要在 H100 上使用 FP8/INT4 量化,可考虑 TensorRT-LLM。

二、主要能力

  1. RadixAttention(核心创新):自动缓存并复用请求间的公共前缀。官方给出的性能数据为:带共享系统提示的智能体负载约快 5 倍,带重复示例的少样本提示约快 10 倍,且零配置自动生效。其原理是构建所有已处理 token 的基数树,自动检测共享前缀,复用匹配前缀的 KV 缓存,只计算新 token。
  2. 结构化生成:支持 JSON schema 约束、正则约束生成、基于 EBNF 语法的生成。
  3. 智能体与函数调用:支持定义工具并以函数调用方式生成,SGLang 负责处理工具调用格式。
  4. 多轮对话:随对话历史增长逐步复用 KV 缓存。
  5. 高级特性:推测解码(可搭配草稿模型)、多模态(视觉模型)、批处理与并行请求(连续批处理)、OpenAI 兼容 API。

三、使用方式 安装:

  • pip 安装(推荐):pip install "sglang[all]"
  • 搭配 FlashInfer(更快,CUDA 11.8/12.1):pip install sglang[all] flashinfer -i https://flashinfer.ai/whl/cu121/torch2.4/
  • 从源码安装:git clone https://github.com/sgl-project/sglang.git;cd sglang;pip install -e "python[all]"

启动服务:

  • 基础服务:python -m sglang.launch_server --model-path meta-llama/Meta-Llama-3-8B-Instruct --port 30000
  • 启用 RadixAttention:加 --enable-radix-cache(默认已启用)
  • 多 GPU 张量并行:加 --tp 4
  • 推测解码:加 --speculative-model 与 --speculative-num-steps

调用方式:可通过 sglang 的 Python 装饰器(@sgl.function)定义生成流程,也可通过 OpenAI 兼容接口(/v1/chat/completions)使用 curl 或 OpenAI Python SDK 调用。

四、性能基准(官方数据)

  • 少样本提示(10 个示例):vLLM 2.5 秒/请求,SGLang 0.25 秒/请求(10 倍),吞吐量高 4 倍。
  • 智能体工作流(1000 token 系统提示):vLLM 1.8 秒/请求,SGLang 0.35 秒/请求(5 倍)。
  • JSON 解码:标准 45 tok/s,SGLang 135 tok/s(3 倍)。
  • Llama 3-8B、A100 吞吐:简单生成 2500→2800 tok/s(1.12 倍);少样本 500→5000 tok/s(10 倍);智能体工具调用 800→4000 tok/s(5 倍);JSON 输出 600→2400 tok/s(4 倍)。

五、支持的模型与硬件 文本模型: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+);Intel Xeon 配 GPU(即将推出);Apple M1/M2/M3 通过 MPS(实验性)。

六、限制与注意事项 官方未提供关于收费、价格、平台限制的说明,暂未提供。部分能力(如 Apple MPS 支持)标注为实验性,Intel 支持标注为即将推出。具体模型兼容性、性能表现可能因硬件与配置而异,需以实际环境为准。

七、参考资源 GitHub:https://github.com/sgl-project/sglang 文档:https://sgl-project.github.io/ 论文:RadixAttention(arXiv:2312.07104) Discord:https://discord.gg/sglang