vLLM Production Stack 的语义智能层
1. 概述
本文旨在概述 vLLM Semantic Router 与 vLLM Production Stack 之间的全面集成策略。vLLM Production Stack 是一个用于大规模部署 vLLM 的云原生参考系统,提供了多种部署方式来启动 vLLM 服务器、请求路由和可观测性堆栈。请求路由可以将流量导向不同的模型,通过 Kubernetes API 执行服务发现和容错,并支持轮询 (Round-robin)、基于会话、前缀感知 (Prefix-aware)、KV 感知 (KV-aware) 以及具有 LMCache 原生支持的分离式预填充路由。Semantic Router 增加了一个 系统智能层,用于对每个用户请求进行分类,从模型池中选择最合适的模型,注入特定领域的系统提示词 (System Prompt),执行语义缓存,并强制执行企业级安全检查(如 PII 和 Jailbreak 检测)。
通过结合这两个系统,我们构建了一个统一的推理堆栈。Semantic Router 确保每个请求都由最合适的模型回答;Production Stack 路由最大限度地提高了基础设施和推理效率,并公开了丰富的指标。它们共同提供:
- 系统级智能 — 理解用户意图,选择正确的模型,注入适当的系统提示词并预过滤工具。
- 基础设施效率 — 从单个实例扩展到分布式 vLLM 部署而无需更改应用程序代码,通过 Token 级优化和 LMCache 原生支持在多个模型之间路由流量。
- 安全与合规 — 在 PII 和 Jailbreak 提示词到达模型之前将其拦截。
- 可观测性 — 通过 Production Stack 的 Grafana 仪表板监控请求、延迟和 GPU 使用情况,并追踪 Semantic Router 的决策。
2. 动机:为什么在 Production Stack 中使用 Semantic Router?
2.1 Production Stack 能力(当前状态)
vLLM Production Stack 为大规模服务大语言模型提供了构建模块:
| 能力 | 描述 |
|---|---|
| 分布式部署 | 部署具有 LMCache 原生支持的多个 vLLM 实例,在不更改应用程序代码的情况下从单实例扩展到多实例集群。 |
| 请求路由 | 将请求路由到不同的模型和实例,支持包括分离式预填充、KV Cache 感知、前缀感知、会话和基于轮询的多种路由逻辑。 |
| 服务发现与容错 | 使用 Kubernetes API 进行自动发现,并从池中移除故障节点。 |
| 可观测性 | 提供 Grafana 仪表板以显示延迟分布、首字延迟 (TTFT)、运行中或挂起的请求数量以及 GPU KV Cache 使用情况。 |
| 部署简易性 | 使用 Helm Charts/CRD/推理网关安装堆栈并公开 OpenAI 兼容的 API。 |
这些功能优化了基础设施的使用,但在路由 Token 和请求的级别上运行,而不是基于请求的含义。路由无法感知任务的复杂性或领域,除了简单的用户指定模型 ID 之外,不会决定由哪个模型处理给定的提示词。
2.2 Semantic Router 能力(语义智能层)
Semantic Router 在 vLLM 之上增加了系统级智能:
| 能力 | 描述 |
|---|---|
| 模型混合路由 | 对每个传入的 OpenAI API 请求进行分类,并根据任务复杂性和领域选择最合适的模型。通过将任务路由到专门的模型而不是单一的通用模型,提高了准确性。 |
| 自动工具选择 | 识别哪些外部工具与提示词相关,减少不必要的工具调用。 |
| 特定类别的系统提示词 | 根据查询分类注入专门的系统提示词(数学、编码、业务等),以提高推理能力和 Token 效率。 |
| 安全过滤器 | 检测 PII 并拦截包含敏感数据的提示词;识别 Jailbreak 提示词并防止其被发送到 LLM。 |
| 相似性缓存 | 使用嵌入 (Embedding) 来缓存提示词的语义表示;如果新提示词与之前的提示词相似,则可以立即返回缓存的响应。 |
| 分布式追踪 | 发出涵盖分类、安全检查、缓存和路由决策的 OpenTelemetry 追踪。 |
这些能力实现了任务感知推理,可以根据每个请求调整推理深度和模型选择。然而,Semantic Router 不管理 GPU 资源或 KV Cache,在与可扩展的服务堆栈耦合 时运行效果最佳。
2.3 差异化分析:优势互补
这两个系统针对推理堆栈的不同层级:
Semantic Router – 请求智能层
- 通过多信号分类(结合关键字匹配、嵌入相似性和基于 LLM 的分类)理解用户意图。
- 根据特定领域的评分选择性能最佳的模型和可选工具。
- 通过注入系统提示词和添加路由元数据标头来丰富请求。
- 执行安全过滤(PII 和 Jailbreak 检测)和语义缓存。
Production Stack – 基础设施优化层
- 通过 LMCache 原生支持,使用轮询、基于会话、前缀感知路由、KV Cache 感知和分离式预填充路由来提高推理效率。
- 将 KV Cache 卸载到 CPU 内存和远程存储(通过 LMCache),并支持 KV Cache 感知路由策略。
- 通过 Kubernetes 进行水平扩展,并公开用于监控的指标和追踪。
这些层级之间的重叠极小。Semantic Router 根据用户在问什么做出决策 ,而 Production Stack 优化请求如何执行。因此,集成将语义智能与 GPU 级效率结合在一起。
2.4 为什么集成很重要:实现系统级智能
如果没有语义智能,Production Stack 会平等地处理所有请求:简单的提示词与复杂的任务使用相同的大模型和推理深度,导致不必要的成本和延迟。如果没有基础设施级的优化,Semantic Router 无法扩展到高 QPS 工作负载或高效管理 KV Cache。通过集成它们:
- 简单的查询(例如事实性问题)可以路由到更小、更便宜的模型,并使用最少的推理,而复杂的任务则使用更大的模型和思维链 (Chain-of-Thought) 推理。
- Semantic Router 的模型选择会过滤 Worker 池,仅保留服务于所选模型的 Worker;然后 Production Stack 的路由选择具有最高 KV Cache 重叠或负载最低的 Worker。
- 双层缓存(语义缓存 + KV Cache)允许系统要么从缓存中立即提供响应,要么重用 Token 级前缀以减少预填充成本。
- 端到端追踪提供了对语义和基础设施决策的可见性,从而实现持续优化。
3. 目标与非目标
3.1 目标
集成的首要目标是:
- 无缝集成 – Semantic Router 作为 Production Stack 路由之前的预处理层运行。请求从网关流向 Semantic Router,然后流向 Production Stack 路由,最后流向适当的 vLLM Worker。
- 双层缓存 – 将语义缓存(请求级)与 KV Cache 重用(Token 级)结合,使得精确或相似的提示词可以避免完整推理,且部分重叠可以最大限度地减少预填充成本。
- 模型感知路由 – Production Stack 路由根据 Semantic Router 选择的模型过滤 Worker。根据不同的路由逻辑选择最佳 Worker,以最大限度地提高缓存命中率。
- 安全强制执行 – 在提示词到达模型之前拦截包含 PII 或 Jailbreak 模式的提示词。
- 统一可观测性 – 使用 OpenTelemetry 在单个 Span 中追踪语义决策和基础设施路由,并通过 Grafana 监控系统指标。
- 零停机更新 – Semantic Router 的路由规则和模型评分可以热加载,而无需重启 Production Stack。生产路由器的动态配置允许实时更新服务发现和路由逻辑。
3.2 非目标
- 替换 Production Stack 路由 – Semantic Router 增强了现有路由;它不接管基础设施路由。如果 Semantic Router 发生故障,Production Stack 路由将继续使用默认模型路由运行。
- 修改 vLLM 或 Production Stack 核心 – 集成使用标准 API(Envoy 的 ExtProc gRPC 或 HTTP 标头注入),不需要更改 vLLM 内部。
- 统一配置 – 将语义策略的配置与基础设施设置分开,以允许独立演进。
- 同步耦合 – 如果其中一个系统不可用,两个系统都可以独立运行;回退路径可确保优雅降级。
4. 提案细节
4.1 设计原则
- 关注点分离 – 保持语义智能与基础设施优化解耦。Semantic Router 专注于理解和丰富请求,而 Production Stack 路由负责 Worker 选择和调度。
- API 驱动集成 – 使用 Envoy 的外部处理 (ExtProc) gRPC API 或 HTTP 标头注入将 Semantic Router 与 Production Stack 网关和路由集成。这避免了修改任何一个系统的内部。
- 故障安全设计 – 如果 Semantic Router 不可用或返回错误,网关会将原始请求转发给 Production Stack 路由(绕过语义处理)。Production Stack 路由默认使用用户指定的模型或轮询逻辑。
- Kubernetes 原生 – 利用 Helm Charts/CRD 进行可重复部署。
4.2 系统架构
集成系统由四个层级组成: