使用 NVIDIA Dynamo 安装
本指南提供了将 vLLM Semantic Router 与 NVIDIA Dynamo 集成的分步说明。
关于 NVIDIA Dynamo
NVIDIA Dynamo 是一个专为大语言模型服务设计的高性能分布式推理平台。Dynamo 通过智能路由和缓存机制,提供优化 GPU 利用率和降低推理延迟的高级功能。
主要特性
- 分离式服务:将 Prefill 和 Decode 工作节点分离,实现最优 GPU 利用率
- KV 感知路由:将请求路由到具有相关 KV 缓存的工作节点,优化前缀缓存
- 动态扩缩容:Planner 组件根据工作负载处理自动扩缩容
- 多层 KV 缓存:GPU HBM → 系统内存 → NVMe,实现高效缓存管理
- 工作节点协调:使用 etcd 和 NATS 进行分布式工作节点注册和消息队列
- 后端无关:支持 vLLM、SGLang 和 TensorRT-LLM 后端
集成优势
将 vLLM Semantic Router 与 NVIDIA Dynamo 集成可提供以下优势:
-
双层智能:Semantic Router 提供请求级智能(模型选择、分类),而 Dynamo 优化基础设施级效率(工作节点选择、KV 缓存复用)
-
智能模型选择:Semantic Router 分析传入请求,根据内容理解将其路由到最合适的模型,同时 Dynamo 的 KV 感知路由器高效选择最优工作节点
-
双层缓存:语义缓存(请求级,Milvus 支持)结合 KV 缓存(token 级,Dynamo 管理),最大程度降低延迟
-
增强安全性:PII 检测和越狱防护在请求到达推理工作节点之前进行过滤
-
分离式架构:分离 Prefill 和 Decode 工作节点,配合 KV 感知路由,降低延迟并提高吞吐量
架构
┌─────────────────────────────────────────────────────────────────┐
│ CLIENT │
│ curl -X POST http://localhost:8080/v1/chat/completions │
│ -d '{"model": "MoM", "messages": [...]}' │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ ENVOY GATEWAY │
│ • Routes traffic, applies ExtProc filter │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ SEMANTIC ROUTER (ExtProc Filter) │
│ • Classifies query → selects category (e.g., "math") │
│ • Selects model → rewrites request │
│ • Injects domain-specific system prompt │
│ • PII/Jailbreak detection │
└──── ─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ DYNAMO FRONTEND (KV-Aware Routing) │
│ • Receives enriched request with selected model │
│ • Routes to optimal worker based on KV cache state │
│ • Coordinates workers via etcd/NATS │
└─────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ PREFILL WORKER (GPU 1) │ │ DECODE WORKER (GPU 2) │
│ Processes input tokens │──▶ Generates output tokens │
│ --is-prefill-worker │ │ │
└───────────────────────────┘ └───────────────────────────┘
前提条件
GPU 要求
此部署需要至少 3 个 GPU 的机器:
| 组件 | GPU | 描述 |
|---|---|---|
| Frontend | GPU 0 | 带 KV 感知路由的 Dynamo Frontend (--router-mode kv) |
| VLLMPrefillWorker | GPU 1 | 处理推理的 Prefill 阶段 (--is-prefill-worker) |
| VLLMDecodeWorker | GPU 2 | 处理推理的 Decode 阶段 |
必需工具
在开始之前,请确保已安装以下工具:
NVIDIA 运行时配置(一次性设置)
配置 Docker 使用 NVIDIA 运行时作为默认值:
# 将 NVIDIA 运行时配置为默认
sudo nvidia-ctk runtime configure --runtime=docker --set-as-default
# 重启 Docker
sudo systemctl restart docker
# 验证配置
docker info | grep -i "default runtime"
# 预期输出:Default Runtime: nvidia