30秒快速回答

模型路由(LLM Routing)是一种让应用根据每次请求的内容、难度和预算,自动选择最合适大模型的技术。不再把所有请求都发给最贵最强的模型,而是”简单问题用小模型,难题才上大模型”。一个设计良好的路由系统能在保持 95% 性能的同时,节省 85% 的成本。

核心价值:它是 AI 应用从”能用”走向”用得起”的关键基础设施。


为什么需要模型路由?

单模型部署的痛点

2024 年到 2025 年初,大多数 AI 应用的架构很简单:所有请求统一发往 GPT-4 或 Claude。这很快暴露了三个致命问题:

问题 具体表现 后果
成本失控 简单分类任务也走 GPT-4,每次调用 $0.03 月账单轻松破千刀
延迟过高 大模型推理延迟 2-5 秒,简单问题也要等 用户体验极差
单点故障 唯一依赖的模型挂了,整个应用不可用 没有降级方案

路由的核心思想

把问题想象成”快递分拣”:一封信不需要用专机运送,一瓶水也不需要冷链物流。同理——

用户请求
   │
   ▼
┌──────────────┐
│  模型路由器    │ ← 判断:这个问题有多难?预算多少?
└──────┬───────┘
       │
  ┌────┼────┬──────┐
  ▼    ▼    ▼      ▼
小模型   中模型   大模型   专业模型
(免费/极快) (便宜/快) (贵/强)  (垂直领域)

数据证明

UC Berkeley 和 Anyscale 联合发布的 RouteLLM(ICLR 2025)给出了令人信服的数据:

  • 用矩阵分解路由器,仅 26% 的请求需要走 GPT-4,其余用开源小模型处理
  • 在 MMLU 基准上,保持了 GPT-4 95% 的性能,成本降低 85%
  • MMLU 测试集成本节省 45%,GSM8K 数学测试节省 35%

模型路由的核心技术

1. 基于分类的路由(Classifier-based Routing)

训练一个轻量分类器,判断请求的难度等级,然后分发给对应模型。

实现代码示例(使用 RouteLLM 的矩阵分解方法):

from openai import OpenAI
import numpy as np

# 假设你已训练好路由矩阵 W(这里用简化版)
W = np.load("router_matrix.npy")

def route_request(prompt: str, embedding_model) -> str:
    # 1. 获取 prompt 的嵌入向量
    emb = embedding_model.encode(prompt)
    
    # 2. 计算路由分数
    scores = W @ emb
    
    # 3. 根据分数选择模型
    if scores[0] > 0.7:    # 高难度
        return "gpt-4o"
    elif scores[0] > 0.3:  # 中等难度
        return "gpt-4o-mini"
    else:                   # 低难度
        return "llama-3-8b"

# 使用路由器
model_choice = route_request("翻译这段文字:Hello World", embedder)
print(f"路由到: {model_choice}")  # → llama-3-8b

2. 级联路由(Cascade Routing)

这是目前生产环境最成熟的方案。思路很简单:先试便宜的,不行再升级

请求 → 小模型 → 置信度低? → 中模型 → 还是低? → 大模型
              ↓                           ↓
           返回结果                     返回结果
def cascade_route(prompt: str, threshold: float = 0.85):
    # 第一步:尝试便宜模型
    response = call_model("gpt-4o-mini", prompt)
    
    # 检查置信度(通过 logprobs 或自定义评估)
    if response.confidence >= threshold:
        return response
    
    # 第二步:降级到强模型
    print(f"置信度 {response.confidence} < {threshold},升级到旗舰模型")
    return call_model("gpt-4o", prompt)

3. LLM-as-Judge 路由

用一个廉价 LLM 充当”法官”,先分析问题再决定路由。这是 2026 年最流行的轻量方案。

ROUTER_PROMPT = """你是一个路由专家。根据用户问题,判断它属于哪个难度等级。

难度等级说明:
- easy: 翻译、简单问答、文本摘要、格式化
- medium: 代码生成、逻辑推理、中等长度写作  
- hard: 复杂数学、多步推理、专业领域分析、长文档理解

只回复 easy / medium / hard,不要其他内容。

用户问题:{query}"""

def llm_judge_route(query: str):
    router = OpenAI()
    response = router.chat.completions.create(
        model="gpt-4o-mini",  # 路由器本身用廉价模型
        messages=[{"role": "user", "content": ROUTER_PROMPT.format(query=query)}],
        max_tokens=10
    )
    level = response.choices[0].message.content.strip()
    
    # 映射到具体模型
    model_map = {
        "easy": "llama-3.1-8b",
        "medium": "gpt-4o-mini",
        "hard": "gpt-4o"
    }
    return model_map.get(level, "gpt-4o-mini")

三种方案对比

方案 推理开销 路由精度 灵活性 适用场景
分类路由 极低(嵌入计算) 中等 需训练 请求量大、类型固定
级联路由 可能多一次调用 对质量要求极高的场景
LLM-as-Judge 一次廉价LLM调用 中高 最高 快速落地、迭代中项目

AI Gateway:路由之上的完整控制层

模型路由是 AI Gateway 的核心能力之一。2026 年,任何严肃的 LLM 应用都运行在 AI Gateway 之后。

Gateway 的全景架构

         ┌──────────────────────────┐
 App ───▶│        AI Gateway        │
         │  · 认证 & 限流           │
         │  · 模型路由 & 降级       │───▶ Anthropic
         │  · 语义缓存              │───▶ OpenAI
         │  · 成本追踪              │───▶ Google / vLLM
         │  · 可观测性              │───▶ Together
         └──────────────────────────┘

一个 Gateway 统一暴露 OpenAI 兼容 API,你的应用只需改 base_url,代码零改动。

主流 Gateway 方案对比

方案 类型 核心优势 适用团队
LiteLLM 开源自托管 130+ 模型提供商、成本追踪、速率限制 需要完全控制的中大型团队
Portkey 托管/开源 零配置即用、内置 A/B 测试、缓存 快速启动的中小团队
OpenRouter 托管 200+ 模型、统一计费、无需管理 API Key 独立开发者、原型验证
Helicone 观测层 Request 日志、成本面板、团队仪表盘 已有应用、只需观测的团队

10 分钟接入 LiteLLM

pip install litellm
from litellm import completion

# 配置路由策略(litellm 自动处理)
import litellm
litellm.set_verbose = True

# 方式1:直接指定模型
response = completion(
    model="gpt-4o",
    messages=[{"role": "user", "content": "解释量子计算"}]
)

# 方式2:用同一个接口切模型(改一行)
response = completion(
    model="claude-3-5-sonnet-20240620",
    messages=[{"role": "user", "content": "解释量子计算"}]
)

# 方式3:配置 fallback 列表
response = completion(
    model="gpt-4o",  # 首选
    fallbacks=["claude-3-5-sonnet-20240620", "gemini-1.5-pro"],  # 降级链
    messages=[{"role": "user", "content": "解释量子计算"}]
)

语义缓存:路由的加速器

Gateway 的另一大杀器是语义缓存。不等同于精确匹配,而是用嵌入相似度判断两个问题是否语义相同:

用户A: "Summarize the quarterly report"    → 缓存命中 ✓
用户B: "Give me a summary of the quarterly report" → 语义相同,直接用缓存!
# LiteLLM 的语义缓存配置
litellm.cache = litellm.Cache(
    type="redis",
    host="localhost",
    port=6379,
    ttl=3600,  # 1小时过期
    mode="semantic",  # 语义缓存模式
    similarity_threshold=0.92  # 相似度阈值
)

生产落地的四个关键决策

1. 模型分层策略

把模型池划分为三层,各司其职:

层级 代表模型 适用任务 单次成本(参考)
轻量层 Llama 3-8B, DeepSeek-V3 翻译、分类、格式化 ~$0.0001
主力层 GPT-4o-mini, Claude Haiku 代码生成、写作、推理 ~$0.001
旗舰层 GPT-4o, Claude Sonnet 复杂分析、多步推理 ~$0.03

2. 路由粒度

不要只按”难度”路由。生产环境建议至少考虑三个维度:

  • 任务类型:代码用 Claude,写作用 GPT,翻译用小模型
  • 用户优先级:付费用户优先走旗舰模型,免费用户走轻量
  • 实时负载:高峰期自动降低路由门槛,保证吞吐

3. 成本追踪

没有追踪的路由等于没路由。每个请求至少记录:

request_id, user_id, routed_model, actual_model, 
tokens_in, tokens_out, cost, latency_ms, fallback_used

4. A/B 测试路由策略

# 使用 Portkey 的 A/B 测试能力
headers = {
    "x-portkey-virtual-key": "your-key",
    "x-portkey-strategy": "ab-test-v1"  # A/B 测试配置
}
# 50% 流量走路由方案,50% 直走 GPT-4o
# 一周后看效果对比:成本、延迟、用户满意度

总结

  • 模型路由不是可选的优化,而是 AI 应用规模化的必修课
  • RouteLLM 证明:用 26% 的 GPT-4 调用即可保持 95% 的性能
  • AI Gateway(LiteLLM / Portkey)是路由落地的成熟基础设施
  • 生产落地的核心是:分层策略 + 多维度路由 + 成本追踪 + 持续 A/B 测试

延伸阅读