Files
llm-compass/docs/llm-router-open-source-research.md
aszerW 5a322e93a0 docs(research): 更新调研报告至v2.0反映NVIDIA选型
- 调研报告从RouteLLM BERT切换为NVIDIA多头分类器作为推荐方案
- 新增选型变更记录、复杂度评分公式、测试结果
- 更新tx402技术对比表和演进路线
- nvidia_router.py添加use_safetensors=True兼容transformers 4.57
2026-04-18 01:45:07 +08:00

342 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 开源 LLM 路由模型调研报告
> **调研日期**: 2026-04-17
> **调研目的**: 寻找可替代 tx402 BERT 路由器的开源方案
> **报告版本**: v2.0
> **最新更新**: 技术选型已从 RouteLLM BERT 切换至 NVIDIA 多头分类器
---
## 执行摘要
### 核心发现
当前开源 LLM 路由模型生态已较为成熟,主要方案包括:
| 方案 | 准确率 | 延迟 | 路由能力 | 推荐指数 |
|------|--------|------|---------|---------|
| **NVIDIA Multi-Head Classifier** ⭐ 已采用 | ~90% | 5-15ms | 多维度 3-tier | ⭐⭐⭐⭐⭐ |
| **RouteLLM BERT** (已弃用) | 85-92% | 1-5ms | 二分类 (强/弱) | ⭐⭐⭐ |
| **Arch-Router 1.5B** | 93% | 50-100ms | 动态多策略 | ⭐⭐⭐⭐ |
| **RoRF (Random Forest)** | - | - | Pairwise | ⭐⭐⭐ |
**关键决策**: NVIDIA `prompt-task-and-complexity-classifier` 是最终选型方案。相比 RouteLLM BERT 的二分类局限NVIDIA 多头分类器提供 8 个维度的分析能力,支持 3-tier 路由simple/medium/complex更接近 tx402.ai 的生产实现。
### 选型变更记录
| 版本 | 日期 | 选型 | 变更原因 |
|------|------|------|---------|
| v0.1 | 2026-04-17 | Token 长度规则路由 | 初始 MVP |
| v0.2 | 2026-04-17 | RouteLLM BERT | 引入 ML 路由 |
| **v0.3** | **2026-04-17** | **NVIDIA Multi-Head** | **支持 3-tier多维度分析** |
---
## 1. 当前选型: NVIDIA Multi-Head Classifier
### 1.1 项目信息
- **模型**: [nvidia/prompt-task-and-complexity-classifier](https://huggingface.co/nvidia/prompt-task-and-complexity-classifier)
- **机构**: NVIDIA
- **参数量**: 184M
- **架构**: DeBERTa-v3-base backbone + 8 个独立分类头
- **许可**: Apache 2.0
### 1.2 技术架构
```
┌─────────────────────────────────────────────────────────┐
│ NVIDIA Multi-Head Classifier (184M) │
├─────────────────────────────────────────────────────────┤
│ Backbone: DeBERTa-v3-base (768维隐层) │
├─────────────────────────────────────────────────────────┤
│ 8 个分类头: │
│ ├─ head_0: task_type (12类) │
│ ├─ head_1: creativity_scope (3类: High/Low/No) │
│ ├─ head_2: reasoning (2类: Yes/No) │
│ ├─ head_3: contextual_knowledge (2类) │
│ ├─ head_4: number_of_few_shots (6类) │
│ ├─ head_5: domain_knowledge (4类: High/Medium/Low/No) │
│ ├─ head_6: no_label_reason (1类) │
│ └─ head_7: constraint_ct (2类) │
├─────────────────────────────────────────────────────────┤
│ 综合评分 → 3-Tier 路由: │
│ simple (<0.35) → qwen-flash │
│ medium (0.35-0.65) → qwen-plus │
│ complex (>0.65) → qwen-max │
└─────────────────────────────────────────────────────────┘
```
### 1.3 复杂度评分公式
```python
score = (
0.4 * domain_knowledge + # High=1.0, Medium=0.6, Low=0.3, No=0.0
0.3 * reasoning + # Yes=1.0, No=0.0
0.2 * creativity + # High=1.0, Low=0.4, No=0.0
0.1 * task_type # Code=0.8, QA=0.5, Chatbot=0.2, ...
)
```
### 1.4 Task Type 分类 (12类)
| ID | 类型 | 复杂度权重 |
|----|------|-----------|
| 0 | Brainstorming | 0.6 |
| 1 | Chatbot | 0.2 |
| 2 | Classification | 0.3 |
| 3 | Closed QA | 0.4 |
| 4 | Code Generation | 0.8 |
| 5 | Extraction | 0.3 |
| 6 | Open QA | 0.5 |
| 7 | Other | 0.5 |
| 8 | Rewrite | 0.5 |
| 9 | Summarization | 0.6 |
| 10 | Text Generation | 0.7 |
| 11 | Unknown | 0.5 |
### 1.5 测试结果
| 查询 | Tier | Score | Task | Model |
|------|------|-------|------|-------|
| "你好" | simple | 0.17 | Chatbot | qwen-flash |
| "What is 2+2?" | simple | 0.17 | Chatbot | qwen-flash |
| "Write quicksort in Python" | medium | 0.45 | Code Generation | qwen-plus |
| "Analyze 10-page paper" | medium | 0.47 | Summarization | qwen-plus |
### 1.6 依赖版本 (已验证可用)
```
torch==2.2.2
transformers==4.44.2
tokenizers==0.19.1
safetensors==0.4.3
numpy==1.26.4
sentencepiece==0.2.1
```
> **注意**: 该模型使用自定义多头架构,无法通过 `AutoModelForSequenceClassification` 直接加载,需手动构建模型并用 `safetensors.torch.load_file` 加载权重。Tokenizer 需使用 slow 模式 (`use_fast=False`)。
### 1.7 优势
- ✅ 多维度分析task_type/reasoning/creativity/domain 等 8 个维度)
- ✅ 原生支持 3-tier 路由,不限于二分类
- ✅ DeBERTa 架构,语义理解能力优于 BERT
- ✅ NVIDIA 出品,模型质量有保障
- ✅ CPU 可运行,延迟 5-15ms
### 1.8 劣势
- ⚠️ 自定义架构,不能直接用 HuggingFace AutoModel 加载
- ⚠️ 依赖版本要求较严格transformers/tokenizers/torch 需要特定组合)
- ⚠️ 对 reasoning/creativity 判断偏保守,评分权重可能需要根据业务调优
- ⚠️ 与 LiteLLM 存在依赖冲突tokenizers 版本),已移除 LiteLLM
---
## 2. 已弃用方案: RouteLLM BERT
### 2.1 弃用原因
1. **仅支持二分类** (strong/weak),无法实现 3-tier 路由
2. 中间模型(如 qwen-plus永远不会被选中
3. 无法提供查询的多维度分析task type/domain/reasoning 等)
4. 与 tx402.ai 的三层架构差距过大
### 2.2 项目信息
- **论文**: [RouteLLM: Learning to Route LLMs with Preference Data](https://arxiv.org/abs/2406.18665)
- **代码**: https://github.com/lm-sys/RouteLLM
- **机构**: LMSYS, UC Berkeley
- **发布时间**: 2024年7月
### 2.3 技术架构
RouteLLM 提供三种路由器实现:
```
┌─────────────────────────────────────────────────────────┐
│ RouteLLM Framework │
├─────────────────────────────────────────────────────────┤
│ 1. Similarity-Weighted (SW) Ranking │
│ - 基于向量相似度的加权 Elo 计算 │
│ - 无需训练,冷启动友好 │
├─────────────────────────────────────────────────────────┤
│ 2. Matrix Factorization (MF) │
│ - 矩阵分解学习查询-模型评分函数 │
│ - 论文报告最佳性能 │
├─────────────────────────────────────────────────────────┤
│ 3. BERT Classifier │
│ - 基于 BERT 的二分类器 │
│ - 预测强模型 vs 弱模型 │
│ - 延迟: 1-5ms (CPU) │
└─────────────────────────────────────────────────────────┘
```
### 2.4 模型规格
- **基础模型**: BERT-base-uncased
- **参数量**: ~110M
- **输入长度**: 512 tokens
- **输出**: 二分类 (0=弱模型, 1=强模型)
- **推理延迟**: 1-5ms (CPU)
### 2.5 性能指标
| 基准测试 | 达到 95% GPT-4 性能所需 GPT-4 调用比例 | 成本降低 |
|---------|--------------------------------------|---------|
| MT Bench | 14% (使用 LLM Judge 增强数据) | 85% |
| MMLU | 54% (使用 Golden Label 增强数据) | 14% |
| GSM8K | 35% | 35% |
---
## 3. 备选方案: Arch-Router 1.5B
### 3.1 项目信息
- **论文**: [Arch-Router: Aligning LLM Routing with Human Preferences](https://arxiv.org/abs/2506.16655)
- **模型**: https://huggingface.co/katanemo/Arch-Router-1.5B
- **机构**: Katanemo Labs
- **发布时间**: 2025年6月
### 3.2 技术架构
```
┌─────────────────────────────────────────────────────────┐
│ Arch-Router Framework │
├─────────────────────────────────────────────────────────┤
│ 核心创新: Domain-Action Taxonomy │
│ - 使用自然语言定义路由策略 │
│ - 支持多维度人类偏好对齐 │
├─────────────────────────────────────────────────────────┤
│ 模型架构: 1.5B Generative Language Model │
│ - 输入: 用户查询 + 策略描述列表 │
│ - 输出: 最佳匹配的策略标识符 │
│ - 支持动态添加新策略(无需重新训练) │
└─────────────────────────────────────────────────────────┘
```
### 3.3 模型规格
- **参数量**: 1.5B
- **架构**: Generative Language Model (类似 Llama)
- **推理延迟**: 50-100ms (GPU)
- **准确率**: 93%(对比 GPT-4 的 85%
### 3.4 优劣势
**优势**
- ✅ 人类偏好对齐,更符合实际使用场景
- ✅ 支持自然语言策略定义,灵活性高
- ✅ 添加新模型无需重新训练
**劣势**
- ⚠️ 模型较大 (1.5B),推理延迟较高
- ⚠️ 2025年新发布生产验证较少
- ⚠️ 需要 GPU 才能达到可接受延迟
---
## 4. 其他方案
### 4.1 RoRF (Not Diamond)
- **类型**: Random Forest 分类器
- **特点**: Pairwise 路由决策
- **状态**: 开源,但文档较少
### 4.2 LLMRouter (UIUC)
- **项目**: https://github.com/ulab-uiuc/LLMRouter
- **特点**: 智能路由系统
- **状态**: 部分开源,细节待验证
### 4.3 DeBERTa 3-class Classifier
- **参数量**: 163M
- **分类**: easy/medium/hard 三分类
- **评估**: 功能较简单,不如 NVIDIA 多头方案丰富
---
## 5. 方案对比总表
| 维度 | NVIDIA Multi-Head ⭐ | RouteLLM BERT | Arch-Router 1.5B | RoRF |
|------|---------------------|---------------|-------------------|------|
| **模型类型** | DeBERTa Multi-Head | BERT Classifier | Generative LM | Random Forest |
| **参数量** | 184M | 110M | 1.5B | - |
| **推理延迟** | 5-15ms | 1-5ms | 50-100ms | - |
| **路由能力** | 3-tier + 多维度 | 2-class (强/弱) | 动态策略 | Pairwise |
| **分析维度** | 8 维 | 1 维 | 策略匹配 | - |
| **硬件要求** | CPU 即可 | CPU 即可 | 需要 GPU | CPU |
| **开源程度** | 完全开源 | 完全开源 | 模型开源 | 开源 |
| **生产验证** | NVIDIA 内部 | LMSYS 验证 | 较少 | 未知 |
| **自定义难度** | 中(需手动加载) | 低 | 低 | 中 |
---
## 6. 与 tx402.ai 技术对比
| 技术点 | tx402.ai (商业) | NVIDIA Multi-Head (当前) | 差距分析 |
|--------|----------------|------------------------|---------|
| **Layer 1 分类器** | BERT 三分类 (3ms) | DeBERTa 多头 8维 (5-15ms) | ✅ 维度更丰富 |
| **Layer 2 选择** | 多臂老虎机 (2-5ms) | 静态评分公式 | ⚠️ 缺少在线学习 |
| **Layer 3 执行** | 语义缓存 + 批量优化 | 直接调用 | ⚠️ 需实现 |
| **路由层级** | 3层: 分类→MAB→执行 | 1层: 多头分类→评分 | ⚠️ 需扩展 |
| **模型覆盖** | 40+ | 3 (flash/plus/max) | ⚠️ 需扩展 |
| **在线学习** | 支持 (MAB) | 不支持 | ⚠️ 需实现 |
| **语义缓存** | 支持 | 不支持 | ⚠️ 需实现 |
| **总延迟** | 10-18ms | 5-15ms | ✅ 更优 |
**当前已缩小的差距**(相比 RouteLLM BERT:
1. ✅ 支持 3-tier 路由simple/medium/complex
2. ✅ 多维度查询分析task_type/reasoning/creativity/domain
3. ✅ 更接近 tx402 Layer 1 的分类能力
**仍需实现的功能**:
1. Layer 2: 多臂老虎机在线学习Thompson Sampling
2. Layer 3: 语义缓存 + 批量优化
3. 扩展模型池覆盖(当前仅 3 个 Qwen 模型)
---
## 7. 演进路线
```
Phase 1 (已完成): NVIDIA 多头分类器 3-tier 路由
Phase 2 (下一步): 添加多臂老虎机在线学习 (Layer 2)
Phase 3: 语义缓存 + 批量优化 (Layer 3)
Phase 4: 扩展模型池 (40+ 模型支持)
Phase 5: 基于业务数据微调 NVIDIA 分类器
```
---
## 8. 参考文献
### 学术论文
1. **RouteLLM**: Ong et al. "RouteLLM: Learning to Route LLMs with Preference Data". arXiv:2406.18665, 2024.
2. **Arch-Router**: Tran et al. "Arch-Router: Aligning LLM Routing with Human Preferences". arXiv:2506.16655, 2025.
3. **RouterArena**: Lu et al. "RouterArena: An Open Platform for Comprehensive Comparison of LLM Routers". arXiv:2510.00202, 2025.
4. **RouterBench**: Hu et al. "RouterBench: A Benchmark for Multi-LLM Routing System". ICML 2024.
### 开源项目
- NVIDIA Classifier: https://huggingface.co/nvidia/prompt-task-and-complexity-classifier
- RouteLLM: https://github.com/lm-sys/RouteLLM
- Arch-Router: https://huggingface.co/katanemo/Arch-Router-1.5B
- LLMRouter: https://github.com/ulab-uiuc/LLMRouter
- Awesome AI Model Routing: https://github.com/Not-Diamond/awesome-ai-model-routing
### 相关调研
- X402 生态竞品技术架构深度调研 (本文档同目录)
---
**报告结束**
> 本报告基于 arXiv 论文、GitHub 开源项目和技术博客整理。
> 数据截至 2026-04-17。
> 如需更新或补充,请参考原始文献。