SGLang

在 Clore.ai GPU 上部署 SGLang,用于具有 RadixAttention 的高性能大型语言模型服务

SGLang(结构化生成语言)是由 LMSYS 团队开发的高性能大模型服务框架,该团队以 Vicuna 和 Chatbot Arena 的工作而闻名。它具有用于 KV 缓存共享的 RadixAttention、对高效 MoE(专家混合)的支持,以及兼容 OpenAI 的 API —— 使其成为 CLORE.AI GPU 服务器上最快的开源推理引擎之一。

circle-check

服务器要求

参数
最低
推荐

内存(RAM)

16 GB

32 GB 以上

显存(VRAM)

8 GB

24 GB 以上

磁盘

50 GB

200 GB 以上

GPU

NVIDIA Turing 及以上(RTX 2000 系列及以上)

A100、H100、RTX 4090

circle-info

SGLang 在启用 FlashInfer 的 Ampere 及以上 GPU 上性能最佳。对于 Mixtral 或 DeepSeek 等 MoE 模型,建议使用多 GPU 配置。

在 CLORE.AI 上快速部署

Docker 镜像: lmsysorg/sglang:latest

端口: 22/tcp, 30000/http

环境变量:

变量
示例
描述

HF_TOKEN

hf_xxx...

用于受限模型的 HuggingFace 令牌

CUDA_VISIBLE_DEVICES

0,1

要使用的 GPU

逐步设置

1. 在 CLORE.AI 上租用 GPU 服务器

访问 CLORE.AI 市场arrow-up-right 并选择一台服务器:

  • 7B 模型:至少 16 GB 显存(RTX 4080、A10)

  • 13B 模型:24 GB 显存(RTX 3090、RTX 4090、A5000)

  • 70B 模型:80 GB 以上显存(A100 80GB)或多 GPU

  • MoE 模型(Mixtral 8x7B):48 GB 显存或 2×24 GB

2. SSH 登录到你的服务器

3. 拉取 SGLang Docker 镜像

4. 启动 SGLang 服务器

基本启动(Llama 3.1 8B):

使用 HuggingFace 令牌:

Qwen2.5 72B 在多 GPU 上:

DeepSeek-V2(MoE 模型):

5. 检查服务器健康状态

6. 通过 CLORE.AI 代理从外部访问

你的 CLORE.AI 仪表板提供一个 http_pub 用于端口 30000 的 URL:

在任何兼容 OpenAI 的客户端中将此 URL 用作基础 URL。


使用示例

示例 1:兼容 OpenAI 的聊天补全

示例 2:流式响应

示例 3:Python OpenAI 客户端

示例 4:使用 SGLang 原生 API 进行批量推理

SGLang 的原生 API 提供额外的控制:

示例 5:受限的 JSON 输出

SGLang 支持结构化输出生成:


配置

主要启动参数

参数
默认
描述

--model-path

必填

HuggingFace 模型 ID 或本地路径

--host

127.0.0.1

绑定主机(对外使用请设置为 0.0.0.0

--port

30000

服务器端口

--tp

1

张量并行度(GPU 数量)

--dp

1

数据并行度

--dtype

auto

float16, bfloat16, float32

--mem-fraction-static

0.88

用于 KV 缓存的显存比例

--max-prefill-tokens

auto

一次预填充步骤中的最大 token 数

--context-length

模型最大值

覆盖最大上下文长度

--trust-remote-code

false

允许自定义模型代码

--quantization

none

awq, gptq, fp8

--load-format

auto

auto, pt, safetensors

--tokenizer-path

与模型相同

自定义分词器路径

量化选项

AWQ(推荐用于速度):

FP8(用于 H100/A100):


性能优化建议

1. RadixAttention —— 关键优势

SGLang 的 RadixAttention 会自动为共享的提示前缀重用 KV 缓存。这对以下场景尤其有用:

  • 具有较长系统提示的聊天机器人

  • 具有重复上下文的 RAG 应用

  • 共享相同前缀的批量 API 调用

无需额外配置 —— 它始终启用。

2. 增大 KV 缓存大小

注意不要设置得过高 —— 要为模型权重保留空间。

3. 对长上下文使用分块预填充

4. 启用 FlashInfer 后端

在可用(Ampere 及以上 GPU)时,SGLang 会自动使用 FlashInfer:

5. 多 GPU 张量并行

对于无法放入单个 GPU 的模型:

每块 GPU 必须有足够显存来存放模型切片。

6. 在吞吐量与延迟之间调优

低延迟(单用户):

高吞吐量(多用户):


故障排查

问题:“torch.cuda.OutOfMemoryError”

解决方案: 减少内存比例或使用量化:

问题:服务器无法启动(加载时挂起)

问题:“trust_remote_code required”

--trust-remote-code 添加到启动命令中以支持具有自定义架构的模型(如 DeepSeek、Falcon 等)。

问题:MoE 模型生成缓慢

MoE 模型(Mixtral、DeepSeek)受限于内存带宽。请确保使用:

问题:上下文长度错误

问题:端口 30000 无法访问

在你的 CLORE.AI 订单配置中验证该端口是否已暴露。请在订单仪表板中检查 http_pub URL,而不是 localhost。


链接


Clore.ai GPU 推荐

使用场景
推荐 GPU
Clore.ai 估算费用

开发/测试

RTX 3090(24GB)

~$0.12/每 GPU/小时

生产(7B–13B)

RTX 4090(24GB)

~$0.70/每 GPU/小时

大型模型(70B+)

A100 80GB / H100

~$1.20/每 GPU/小时

💡 本指南中的所有示例均可部署在 Clore.aiarrow-up-right GPU 服务器上。浏览可用 GPU 并按小时租用 —— 无需承诺,拥有完全的 root 访问权限。

最后更新于

这有帮助吗?