SGLang Transformers 后端集成
SGLang 已将 Hugging Face Transformers 库集成作为后端,使用户能够运行任何兼容 Transformers 的模型并具备高性能推理能力。此集成弥合了 Transformers 生态系统的灵活性与生产环境对高吞吐、低延迟的需求之间的差距。
通过 SGLang 实现高性能推理
SGLang 旨在提升效率,利用诸如 RadixAttention——一种内存高效的注意力机制——来提供更快且更省资源的推理,尤其在高负载下表现突出。标准的 transformers 库虽针对实验、小规模任务和训练进行优化,但 SGLang 为大批量场景提供了专用引擎。
SGLang 提供多种部署模式:
- 离线引擎:使用
sgl.Engine进行直接生成。 - 服务器模式:通过
sglang.launch_server启动服务器,以 API 处理请求。 - OpenAI 兼容 API:提供外部服务的即插即用替代方案。
Transformers 后端集成
transformers 后端使 SGLang 能够在模型未被原生支持时自动回退到 transformers 库。这带来了若干直接好处:
- 即时访问:用户可以立即运行 transformers 库中新添加的模型。
- 自定义模型支持:可部署托管在 Hugging Face Hub 上且兼容 transformers 的模型。
- 降低工程开销:用户无需为每种新模型架构等待原生 SGLang 实现。
此集成实现了优化部署,并在更广泛的模型上使用 RadixAttention,而不牺牲 transformers 生态系统的多样性。
使用与兼容性
要使用 transformers 后端,用户可以在引擎初始化时显式设置 implementation 参数:
llm = sgl.Engine(model_path="meta-llama/Llama-3.2-1B-Instruct", impl="transformers")
指定 impl="transformers" 为可选项;如果模型未被原生支持,SGLang 将自动切换到 transformers 实现。
兼容性要求
符合以下条件的 Hugging Face Hub 上的任何模型均兼容:
- 能在
transformers库中运行。 - 正确实现注意力机制。
- 对于自定义模型,加载时需设置
trust_remote_code=True。
例如,Kyutai 团队的 Helium 模型 (kyutai/helium-1-preview-2b),尚未被 SGLang 原生支持,可通过 transformers 后端运行:
python3 -m sglang.launch_server \
--model-path kyutai/helium-1-preview-2b \
--impl transformers \
--host 0.0.0.0 \
--port 30000
未来路线图
开发工作仍在进行中,以在以下方面改进集成:
- 性能优化:缩小 transformers 后端模型与原生 SGLang 集成模型之间的性能差距。
- LoRA 支持:添加对低秩适配(Low-Rank Adaptation)的支持。
- VLM 集成:扩展对视觉语言模型(VLM)的支持,以拓展使用场景。