深度技术分析 · 211k+ 行 Go 代码 · 50+ 贡献者

vLLM Semantic Router
深度研究报告

系统级智能路由器 · 信号驱动决策引擎 · 10+ 种模型选择算法
面向云、数据中心和边缘环境的 Mixture-of-Models 架构

项目概述

vLLM Semantic Router 是一个基于 Go 语言开发的企业级智能路由系统,核心代码超过 21 万行。

211k+
Go 代码行数
3.8k
GitHub Stars
600+
合并 PRs
15+
信号类型
10+
选择算法

Token 经济

智能模型选择 + 语义缓存,减少 token 浪费,最大化每 token 的价值输出。

LLM 安全

TruthLens 幻觉检测、PII 泄露防护、Jailbreak 攻击检测,三层安全体系。

Fullmesh 智能

云-边-端协同,本地私有模型与前沿模型动态编排,跨域协调。

核心组件

模块 路径 功能 关键实现
决策引擎 pkg/decision/ 布尔表达式树求值 AND/OR/NOT 逻辑,15+ 信号类型
分类器 pkg/classification/ 意图/安全/复杂多分类 60+ Go 文件,多分类器协同
模型选择 pkg/selection/ 路由算法实现 Elo/AutoMix/RouterDC/Hybrid 等
语义缓存 pkg/cache/ 响应缓存 + 命名空间隔离 HMAC 用户隔离,CLS 优化
向量存储 pkg/vectorstore/ Embedding 存储与检索 Memory/Milvus/Valkey/LlamaStack
API 服务器 pkg/apiserver/ REST/gRPC 接口 OpenAI 兼容,/v1/chat/completions

技术架构

信号驱动决策流程,模块化插件架构,支持热更新和动态配置。

请求处理数据流
输入层

HTTP/gRPC

OpenAI 兼容 API
信号提取层

Keyword

关键词匹配

Embedding

向量相似度

Domain

MMLU 分类

Language

语言检测

Complexity

复杂度分析

Structure

请求结构

Jailbreak

越狱检测

PII

敏感信息

FactCheck

事实核查

Authz

授权验证

Context

上下文

Feedback

用户反馈
决策层

DecisionEngine

布尔表达式树求值
选择层

Selector

Elo/AutoMix/RouterDC/Hybrid...
模型池

GPT-4

云端

Claude

云端

Llama

私有

Qwen

中文

Mixtral

MoE

决策引擎实现

决策引擎基于布尔表达式树,支持 AND/OR/NOT 逻辑运算。核心数据结构是 RuleNode,支持递归求值。

pkg/decision/engine.go
// SignalMatches 包含所有匹配的信号 type SignalMatches struct { KeywordRules []string EmbeddingRules []string DomainRules []string FactCheckRules []string JailbreakRules []string PIIRules []string // ... 15+ 信号类型 } // 布尔表达式树节点 type RuleNode struct { Type string // 信号类型 Name string // 规则名称 Operator string // AND/OR/NOT Conditions []RuleNode // 子节点 } // 递归求值入口 func (e *DecisionEngine) evalNode( node RuleNode, signals *SignalMatches, ) (matched bool, confidence float64) { if node.IsLeaf() { return e.evalLeaf(node.Type, node.Name, signals) } switch node.Operator { case "AND": return e.evalAND(...) case "OR": return e.evalOR(...) case "NOT": return e.evalNOT(...) } }

Registry 依赖注入

系统使用 Registry 模式管理运行时依赖,支持配置热更新和组件动态替换。

pkg/routerruntime/registry.go
// Registry 是运行时依赖共享的窄接口 type Registry struct { mu sync.RWMutex config *config.RouterConfig classificationService *services.ClassificationService memoryStore memory.Store vectorStore *VectorStoreRuntime } // 线程安全的配置更新 func (r *Registry) UpdateConfig( cfg *config.RouterConfig, ) { r.mu.Lock() defer r.mu.Unlock() r.config = cfg } // 刷新运行时配置 func (r *Registry) RefreshRuntimeConfig( newCfg *config.RouterConfig, ) { r.UpdateConfig(newCfg) if service := r.ClassificationService(); service != nil { service.RefreshRuntimeConfig(newCfg) } }

向量存储后端

Memory

轻量级内存存储,适用开发和测试。最多 100,000 条目。

backendType: memory maxEntriesPerStore: 100000

Milvus

分布式向量数据库,适合大规模生产部署。

backendType: milvus connection: host: "localhost" port: 19530

Valkey

内存数据库 + 向量索引,低延迟场景。

backendType: valkey metricType: "COSINE" indexM: 100 indexEf: 256

信号分类系统

15+ 种信号类型支撑灵活路由决策,每种信号针对特定场景优化。

KW

Keyword

关键词精确匹配

EM

Embedding

语义向量相似度

DM

Domain

MMLU 领域分类

FC

FactCheck

事实核查信号

JB

Jailbreak

越狱攻击检测

PI

PII

个人身份信息

LG

Language

语言识别

CX

Context

Token 数量上下文

ST

Structure

请求结构分析

CM

Complexity

复杂度评估

MD

Modality

模态分类

AZ

Authz

用户级授权

FB

Feedback

用户反馈信号

PR

Preference

外部 LLM 偏好

RE

Reask

重问检测

统一分类器实现

pkg/classification/classifier.go
// Classifier 统一分类器,整合多种分类能力 type Classifier struct { // 内部分类器 categoryInitializer CategoryInitializer jailbreakInitializer JailbreakInitializer piiInitializer PIIInitializer keywordClassifier *KeywordClassifier embeddingClassifier *EmbeddingClassifier // 安全相关 factCheckClassifier *FactCheckClassifier hallucinationDetector *HallucinationDetector feedbackDetector *FeedbackDetector // 高级分类器 languageClassifier *LanguageClassifier complexityClassifier *ComplexityClassifier structureClassifier *StructureClassifier authzClassifier *AuthzClassifier // 配置映射 CategoryMapping *CategoryMapping PIIMapping *PIIMapping JailbreakMapping *JailbreakMapping }

TruthLens 幻觉检测框架

集成在推理网关层,提供三层缓解模式:

  • Lightweight — 单轮检测 + 警告注入,低延迟
  • Standard — 迭代自 refinement(同一模型)
  • Premium — 多模型交叉验证 + 协作修正

决策引擎

基于布尔表达式树的规则引擎,支持复杂的信号组合逻辑。

决策流程

1

收集信号 (Collect Signals)

从请求中提取 15+ 种信号,构建 SignalMatches 结构体

2

规则匹配 (Rule Matching)

遍历配置的决策规则,对每个规则的布尔表达式树求值

3

置信度计算 (Confidence Calculation)

根据匹配的信号计算决策置信度 (0.0-1.0)

4

策略选择 (Strategy Selection)

根据配置策略 (priority/confidence/tiered) 选择最优决策

5

模型路由 (Model Routing)

将决策结果传递给选择层,选择具体模型执行

决策配置结构

YAML 配置示例
1decisions:
2- name: "math_routing"
3priority: 10
4tier: 1
5rules:
6operator: "AND"
7conditions:
8 - type: "embedding"
9 name: "math_category"
10 - type: "domain"
11 name: "mathematics"
12modelRefs:
13- model: "qwen-math"
14 weight: 0.9

选择策略

策略 行为 适用场景
priority 按 priority 字段降序,然后 confidence 降序 确定性强的业务规则
confidence 按 confidence 降序,然后 priority 降序 需要参考置信度的场景
tiered 先按 tier 升序(1 < 2 < 3),同 tier 内按 confidence 分层部署,按模型能力分级

模型选择算法

从生产级到实验级,10+ 种算法满足不同场景需求。

生产级算法

Elo

GA

基于 Bradley-Terry 模型的 Elo 评分系统,通过成对比较学习模型性能。

参考: RouteLLM (arXiv:2406.18665)

RouterDC

GA

双重对比学习路由,学习查询嵌入与特定模型能力的匹配。

参考: arXiv:2409.19886

AutoMix

GA

POMDP 级联路由,先用小模型,置信度低时自动升级到大模型。

参考: arXiv:2310.12963

Hybrid

GA

多算法混合,支持配置 Elo + embedding + cost 的权重组合。

参考: arXiv:2404.14618

实验级算法

KNN

Exp

K 近邻算法,找相似历史查询,质量加权投票。

KMeans

Exp

K 均值聚类,按质量和延迟分数分配模型。

MLP

Exp

多层感知机分类器,使用 Candle GPU 加速推理。

RLDriven

Exp

强化学习路由,实现 Router-R1 奖励结构。

GMTRouter

Exp

异构图学习,从多轮交互中学习用户偏好。

LatencyAware

Exp

基于 TPOT/TTFT 百分位数据的延迟感知选择。

AutoMix 详解

AutoMixConfig
type AutoMixConfig struct { // 置信度阈值,低于此值触发升级 VerificationThreshold float64 `yaml:"verification_threshold"` // 最大升级次数 MaxEscalations int `yaml:"max_escalations"` // POMDP 折扣因子 DiscountFactor float64 `yaml:"discount_factor"` // 启用自验证 EnableSelfVerification bool `yaml:"enable_self_verification"` // 信念粒子数 BeliefParticles int `yaml:"belief_particles"` }

三级联路由流程

1

Generate

从最小/最便宜的模型开始生成答案

2

Self-Verify

同一模型通过蕴含检查验证答案正确性

3

Route

置信度低于阈值时自动升级到更大模型

API 规范

OpenAI 兼容 REST API,支持流式输出和路由元数据。

端点 方法 描述
/v1/chat/completions POST 聊天补全,model="MoM" 启用智能路由
/v1/models GET 列出可用模型
/api/v1/classify/intent POST 意图分类
/api/v1/classify/security POST 安全检测
/api/v1/feedback POST 提交反馈
/metrics/classification GET 分类指标
/health GET 健康检查

请求示例

聊天完成请求
{ "model": "MoM", "messages": [ {"role": "user", "content": "求导: y = x^2 + 3x - 7"} ], "max_tokens": 150 }
路由响应
{ "routing_metadata": { "selected_model": "qwen-math", "confidence": 0.96, "processing_time_ms": 15, "cache_hit": false, "security_checks": { "pii_detected": false, "jailbreak_detected": false } } }

配置架构

YAML 格式配置,支持模型定义、信号配置、决策规则和向量存储。

完整配置示例
1# 路由器配置
2router:
3# 模型定义
4models:
5- name: "gpt-4o-mini"
6endpoint: "https://api.openai.com"
7strategy: "chat"
8- name: "qwen-math"
9endpoint: "https://api.example.com"
10capabilities: ["math", "reasoning"]
11# 信号配置
12signals:
13embedding:
14model: "BAAI/bge-small-en-v1.5"
15dimension: 512
16# 向量存储
17vectorStore:
18backendType: "memory"
19embeddingModel: "BAAI/bge-small-en-v1.5"
20embeddingDimension: 512
21# 算法选择
22algorithm:
23type: "automix"
24verificationThreshold: 0.7
25maxEscalations: 2

语义缓存

pkg/cache/cache.go
// 用户级命名空间隔离,防止跨用户缓存污染 const scopeNamespaceRepeat = 3 func ScopeQueryToUser(query string, userID string) string { if userID == "" || query == "" { return query } // HMAC-SHA256 保护用户 ID 不被暴露 namespace := userScopeNamespace(userID) tokens := make([]string, scopeNamespaceRepeat) for i := range tokens { tokens[i] = namespace } return fmt.Sprintf("cache-scope %s %s", strings.Join(tokens, " "), query) }

发展历程

从 2025 年 9 月到 2026 年 3 月,快速迭代中。

2025/09/01
项目正式发布
vLLM Semantic Router: Next Phase in LLM inference
2025/10/12
论文被接受
When to Reason: Semantic Router for vLLM
2025/11/03
论文发表
Category-Aware Semantic Caching for Heterogeneous LLM Workloads
2025/12/16
AMD 合作
GPU 资源和 ROCm 软件支持
2026/01/05
v0.1 Iris 发布
首个重要版本,50+ 工程师贡献
2026/02/27
白皮书发布
Signal Driven Decision Routing for Mixture-of-Modality Models
2026/03/10
v0.2 Athena 发布
第二个重要版本,重构模型栈
2026/03/24
愿景论文发布
The Workload-Router-Pool Architecture for LLM Inference Optimization

关键结论

系统级定位最高

面向 AI 基础设施层,支持云-边-端混合部署,是目前定位最高的开源语义路由项目。

信号驱动架构

15+ 种信号类型支撑灵活决策,布尔表达式树支持复杂规则组合和动态更新。

算法丰富

10+ 种选择算法,从生产级 Elo/AutoMix 到实验级 RLDriven,覆盖各类场景。

安全内置

TruthLens 幻觉检测、PII/Jailbreak 防护,三层安全体系满足企业合规需求。

"vLLM Semantic Router 是一个信号驱动的智能路由器,位于用户和模型之间,从请求、响应和上下文捕获信号,做出智能路由决策。"

— 官方项目描述