使用 NVIDIA Dynamo 安装
本指南提供了将 vLLM Semantic Router 与 NVIDIA Dynamo 集成的分步说明。
关于 NVIDIA Dynamo
NVIDIA Dynamo 是一个分布式推理平台,用于大语言模型服务。它通过智能路由和缓存机制优化 GPU 利用率、降低推理延迟。
核心特性
- 分离式服务:独立的 Prefill 和 Decode Worker
- KV 感知路由:将请求路由到具有相关 KV 缓存的 Worker,优化前缀缓存
- 动态扩展:Planner 组件根据工作负载处理自动扩展
- 多层 KV 缓存:GPU HBM → 系统内存 → NVMe,实现高效缓存管理
- Worker 协调:使用 etcd 和 NATS 进行分布式 Worker 注册和消息队列
- 后端无关:支持 vLLM、SGLang 和 TensorRT-LLM 后端
集成优势
集成两者的好处:
- Semantic Router 做请求级决策(模型选择、分类),Dynamo 做基础设施级优化(Worker 选择、KV 缓存重用)
- 语义缓存(Milvus)+ KV 缓存(Dynamo)双层缓存
- PII 检测和越狱防护在请求到达 Worker 之前过滤
- 分离式 prefill/decode Worker 配合 KV 感知路由
架构
本部署使用启用 KV 缓存的分离式路由器部署模式,prefill 和 decode Worker 分开运行。
┌─────────────────────────────────────────────────────────────────┐
│ CLIENT │
│ curl -X POST http://localhost:8080/v1/chat/completions │
│ -d '{"model": "MoM", "messages": [...]}' │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ ENVOY GATEWAY │
│ • 路由流量,应用 ExtProc 过滤器 │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ SEMANTIC ROUTER (ExtProc Filter) │
│ • 分类查询 → 选择类别(例如 "math") │
│ • 选择模型 → 重写请求 │
│ • 注入特定领域的系统提示词 │
│ • PII/越狱检测 │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ DYNAMO FRONTEND (KV-Aware Routing) │
│ • 接收带有所选模型的增强请求 │
│ • 根据 KV 缓存状态路由到最佳 Worker │
│ • 通过 etcd/NATS 协调 Worker │
└─────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ PREFILL WORKER (GPU 1) │ │ DECODE WORKER (GPU 2) │
│ prefillworker0 │──▶ decodeworker1 │
│ --worker-type prefill │ │ --worker-type decode │
└───────────────────────────┘ └───────────────────────────┘
部署模式
当前部署模式
本指南部署启用 KV 缓存(frontend.routerMode=kv)的分离式路由器部署模式。KV 感知路由可跨请求重用已计算的注意力张量。
基于 NVIDIA Dynamo 部署模式,Helm chart 支持两种部署模式: