推理预算急速消耗——你正在烧钱。无论是“2加2等于几?”这样的简单查询,还是复杂的 RAG(检索增强生成)合成任务,每一个请求都会被扔给你最昂贵的模型(例如 DeepSeek-V3和GPT-5.2)。这种“一刀切”的模式彻底毁掉了你的延迟指标,并让成本飞速膨胀。
即时解决方案:vLLM 语义路由器。
与运行在应用代码中的 Python 路由库不同,这是一个高性能基础设施层(由 Rust 和 Go 编写)。它充当推理引擎前置的智能网关,根据请求的具体意图,将其路由到能处理该任务的最经济的模型,同时还能执行安全策略和缓存语义相同的查询。
“模型混合体”(MoM)网关vLLM 语义路由器引入了模型混合体(Mixture-of-Models, MoM)架构。它不再依赖单个模型来处理一切,而是利用一个轻量级的基于 BERT 的分类器(运行在 Hugging Face Candle 上),来动态地对传入的提示词进行分类。
- 意图分类: 判断查询是“数学”、“编程”、“一般闲聊”还是“恶意请求”。
- 语义缓存: 检查向量存储(Milvus/Redis),看是否有类似的先前查询。
- 路由分发: 将请求分发到适当的后端(例如,Qwen-7B 用于闲聊,DeepSeek-V3 用于编程)。

代码实现:
定义路由逻辑由于 vLLM 语义路由器以服务的形式运行,你的“代码”就是定义模型、路由和安全策略的声明式配置。下面是一个实现“推理预算”策略的生产级 config.yaml:
# config.yaml
version: "v1"
# 1. 定义推理后端(“专家模型”)
backends:
- name: "fast-chat"
type: "openai"
url: "http://vllm-small:8000/v1"
model: "Qwen/Qwen2.5-7B-Instruct"
- name: "heavy-reasoner"
type: "openai"
url: "http://vllm-large:8000/v1"
model: "deepseek-ai/DeepSeek-V3"
# 2. 定义路由器逻辑
router:
mode: "semantic" # 使用基于嵌入的分类
embedding_model: "sentence-transformers/all-MiniLM-L6-v2"
routes:
# 路由 1: 用于闲聊的廉价模型
- name: "chitchat"
backend: "fast-chat"
samples:
- "Hi, how are you?"
- "Tell me a joke."
- "What is the weather?"
# 2: 用于编程/数学等复杂任务的昂贵模型
- name: "complex-tasks"
backend: "heavy-reasoner"
samples:
- "Write a Python script to parse this JSON."
- "Explain the derivation of the transformer attention mechanism."
- "Debug this segfault trace."
# 3. 安全与缓存层
middleware:
sem_cache:
enabled: true
backend: "redis" # 或 'milvus'
ttl: 3600
similarity_threshold: 0.95
guardrails:
jailbreak_detection: true
pii_masking: true
逐步部署
指南本指南假设你已安装 Docker 和一台支持 GPU 的机器。我们将部署路由器以及两个 vLLM 实例。
1. 克隆基础设施仓库
这个特定的仓库包含了为 vLLM 优化的 Rust/Go 路由器实现。
git clone https://github.com/vllm-project/semantic-router.git
cd semantic-router
2. 配置路由器
在 ./config 目录下创建 config.yaml 文件(使用上方代码片段)。确保你的后端 URL 与内部 Docker DNS 或 IP 地址匹配。
3. 启动堆栈 (Docker Compose)
使用提供的快速启动脚本或 compose 文件。这将启动路由器、嵌入模型服务器和缓存。
# 使用包含 Rust 优化内部机制的官方 Docker 镜像
docker-compose -f docker-compose.yml up -d
4. 验证路由行为
向路由器的端口(通常是 8080)发送请求,而不是直接向 vLLM 实例发送。
测试“快速”路由:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "router-gateway",
"messages": [{"role": "user", "content": "Tell me a joke"}]
}'
# 日志应显示: Routed to [fast-chat] | Latency: 12ms
测试“推理”路由:
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "router-gateway",
"messages": [{"role": "user", "content": "Write a Rust implementation of a Red-Black tree."}]
}'
# 日志应显示: Routed to [heavy-reasoner]
5. 启用生产级功能
对于 Kubernetes 部署,请使用官方 Helm Charts。路由器原生集成作为 Envoy 外部处理器,使其能够以亚毫秒级的路由开销处理数千个并发请求。
vLLM 语义路由器 将逻辑从脆弱的应用代码中移出,整合到基础设施层。通过实施模型混合体网关,你有效地将“智能”与“执行”解耦,使你能够在提升推理能力(DeepSeek/Llama-70B)的同时,避免为每一次 API 调用都支付高额的延迟成本。
