uv + SGLang SGLang + Docker+ GPU+ PyPI+ Dynamo

用 Dynamo 编排层组合 SGLang 引擎提供多节点 LLM 推理服务

Dynamo 位于推理引擎之上做编排,SGLang 负责单节点推理,二者组合获得智能路由与自动扩缩容

✓ 单GPU吞吐提升7x✓ TTFT快2x的KV感知路由 ✕ 单GPU单模型时引擎已足够✕ KVBM对SGLang仍是开发中状态

方案简介

本方案展示如何用 Dynamo 这个开源数据中心级推理栈,将 SGLang 推理引擎组织成协同工作的多节点推理系统。Dynamo 是位于推理引擎之上的编排层,通过分离式服务、智能路由、多层 KV 缓存和自动扩缩容,为 LLM、推理、多模态和视频生成工作负载最大化吞吐并最小化延迟。适合正在跨多个 GPU 或节点提供 LLM 服务、需要 KV 感知路由避免重复预填充计算、需要独立扩缩容预填充和解码的团队。如果只是在单个 GPU 上运行单个模型,单独使用推理引擎通常已经足够。

亮点与能力

  • 分离式预填充/解码:将预填充和解码拆分为可独立扩缩容的 GPU 池,最大化 GPU 利用率
  • KV 感知路由:根据 worker 负载和 KV 缓存重叠度路由请求,消除冗余预填充计算,TTFT 快 2x
  • KV Block Manager (KVBM):在 GPU → CPU → SSD → 远程存储之间卸载 KV 缓存
  • Planner:由 SLA 驱动的自动扩缩容器,以最低 TCO 满足延迟目标
  • 容错:金丝雀健康检查 + 运行中请求迁移
  • 多模态与工具调用支持(SGLang 后端均支持)
  • Agentic inference:按请求提供延迟优先级、预期输出长度和缓存固定 TTL 等提示

组成与分工

  • Dynamo:位于推理引擎之上的编排层,使用 Rust 构建以获得性能,使用 Python 扩展以获得灵活性,负责智能路由、分离式服务与自动扩缩容
  • SGLang:底层推理引擎,负责实际的模型推理计算
  • Docker:用于拉取运行预构建容器,是最快的启动方式
  • uv:Python 包安装工具,用于从 PyPI 安装 ai-dynamo

前置要求

  • NVIDIA GPU(容器启动需 --gpus all
  • Docker(选项 A 容器方式)
  • 或 Python 环境配合 uv(选项 B 安装方式),安装 uv:curl -LsSf https://astral.sh/uv/install.sh | sh
  • SGLang 后端直接通过 PyPI 预发布包安装即可;TensorRT-LLM 则需要 --extra-index-url https://pypi.nvidia.com 使用 pip

实施步骤

1. 容器方式(最快)

拉取预构建容器(SGLang 示例):

bash
docker run --gpus all --network host --rm -it nvcr.io/nvidia/ai-dynamo/sglang-runtime:1.4.0

2. 在容器内启动 frontend 和 worker

bash
python3 -m dynamo.frontend --http-port 8000 --discovery-backend file > /dev/null 2>&1 &
python3 -m dynamo.sglang --model-path Qwen/Qwen3-0.6B --discovery-backend file &

3. 发送请求验证

bash
curl -s localhost:8000/v1/chat/completions -H "Content-Type: application/" -d '{
"model": "Qwen/Qwen3-0.6B",
"messages": [{"role": "user", "content": "Hello!"}],
"max_tokens": 100
}' | jq

4. 或者从 PyPI 安装

安装 uv 后运行:

bash
uv pip install --prerelease=allow "ai-dynamo[sglang]" # 或 [vllm]

使用与配置要点

启动后通过 http://localhost:8000/v1/chat/completions 以 OpenAI 兼容 API 发送请求即可验证服务成功。使用 --discovery-backend file 进行服务发现;生产多节点部署可参考仓库中的 recipes 与 examples 目录,以及 NGC 上预构建的 SGLang 容器镜像。另有 tensorrtllm-runtime:1.4.0vllm-runtime:1.4.0 容器可用,便于切换后端。

注意事项与常见问题

  • KVBM 功能对 SGLang 后端仍处于开发中(🚧)状态,TensorRT-LLM 与 vLLM 后端已支持
  • 如果只是在单个 GPU 上运行单个模型,单独使用推理引擎通常已经足够,无需引入 Dynamo
  • TensorRT-LLM 不能通过 uv 直接安装,需要配合 --extra-index-url https://pypi.nvidia.com 使用 pip

优缺点

  • ✓ 单GPU吞吐提升7x
  • ✓ TTFT快2x的KV感知路由
  • ✕ 单GPU单模型时引擎已足够
  • ✕ KVBM对SGLang仍是开发中状态

出处

本方案挖掘自开源项目 ai-dynamo/dynamo,方案内容与实施命令均来自其 README 原文。

方案出处
ai-dynamo/dynamo:A Datacenter Scale Distributed Inference Serving Framework
7989 star A Datacenter Scale Distributed Inference Serving Framework

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。