如何按质量、成本和延迟做多模型路由?
简化版
多模型路由是在模型健康时主动选择“满足质量下限的最便宜/最快路径”,与故障发生后的 Fallback 不同。先用上下文长度、地域、工具与结构化能力做硬过滤,再根据任务类型、难度、风险、延迟和成本预测选择模型;不确定或高风险请求升级强模型。
训练与评测不能只看路由准确率,而要有每个请求在各候选模型上的反事实结果,计算质量违约、成本、延迟和 Routing Regret。上线先影子执行收集标签,再灰度;路由器失效时使用保守默认模型。故障重试、熔断和兼容降级由专门的 Fallback 策略处理。
详细版
候选模型先经过能力矩阵过滤,再估计各模型成功概率 p_success(x,m)。在质量/风险约束下最小化期望成本:
choose m = argmin_m expected_cost(x,m)
subject to p_success(x,m) >= quality_threshold(risk_class)
latency_p95(m, bucket) <= deadline
规则路由可解释,监督分类器能学习复杂边界,级联路由先跑小模型并按校准置信或验证结果升级,Bandit 适合安全边界内持续探索。任何策略都要记录候选集、特征版本、分数、最终模型与升级原因,并防止敏感内容直接进入路由特征库。
完整版教学
路由优化回答“正常情况下该先用谁”,Fallback 回答“首选路径不可用或不合格后怎么办”;把两者混在一起会让质量实验被故障流量污染。
一、为什么不应所有请求都用最强模型
格式分类、短改写和复杂推理对能力要求不同。全部走最强模型简单但成本与延迟高,全部走小模型又会让困难和高风险任务质量失守。
路由目标不是追求小模型占比,而是在明确质量约束下减少成本或延迟。高风险类别可以直接固定强模型,不参与经济性探索。
二、先用能力矩阵做硬过滤
上下文长度、语言、地域、工具协议、JSON Schema、图像输入和合规认证属于硬条件。不满足就不能成为候选,无论预测分数多高。
| 硬条件 | 请求要求 | 不满足的后果 |
|---|---|---|
| 上下文 | 40K Token | 输入截断或拒绝 |
| 工具 | 并行 Tool Call | 协议无法执行 |
| 地域 | 数据不得出区 | 合规违规 |
| 模态 | 图像理解 | 能力缺失 |
矩阵随 release 版本化,不能只维护营销名称。
三、路由特征从哪里来
可用特征包括任务类型、输入长度、语言、是否需要工具、结构复杂度、风险等级和廉价探测模型的分数。用户等级只能影响服务权益,不能绕过安全质量下限。
不要先把完整敏感 Prompt 发给所有供应商再决定路由;本地或已授权组件先做特征提取。路由特征也要防提示注入,例如用户自称“简单问题”不能直接决定档位。
四、规则、分类器与级联如何选择
规则透明,适合少量清晰任务;监督路由器适合有反事实标签的复杂分布;级联让小模型先回答并由验证器/置信判断是否升级;在线 Bandit 能适应变化,但探索会真实影响用户。
| 策略 | 优点 | 主要风险 |
|---|---|---|
| 规则 | 可解释、易审计 | 边界僵硬 |
| 监督路由 | 可学习复杂模式 | 标签昂贵、漂移 |
| 小到大级联 | 动态节省 | 置信未校准、重复成本 |
| Bandit | 持续适应 | 探索风险与归因复杂 |
高风险流量通常禁用在线探索。
五、怎样获得反事实标签
只观察被选模型的结果会产生选择偏差:小模型从未处理的困难题没有标签。离线应让多个候选在同一评测样本上运行,或对安全采样流量做 Shadow,得到“该请求交给每个模型会怎样”。
标签包含任务成功、严重错误、延迟和费用,而非单一偏好分。评测器及人工金标都要版本化,避免路由器学到 Judge 偏差。
六、Routing Regret 怎么理解
Oracle 在事后知道每个候选结果,会选满足质量的最低成本模型。实际路由与 Oracle 的差距可写为:
regret(x) = utility(oracle_model, x) - utility(routed_model, x)
假设 1,000 题中,Oracle 可让 700 题走小模型;路由器让 760 题走小模型,但其中 90 题质量不达标。小模型占比更高并非成功,应重点报告 90 个错误下放及其严重度。
七、置信度为何必须校准
让小模型自报“我有 95% 把握”不能直接用于升级。应在任务验证集上检查分数桶真实成功率,并画风险—覆盖率曲线。
阈值提高会减少小模型覆盖但降低质量风险。不同语言、任务和版本可能需要不同校准器;发布新模型或 Prompt 后要重新验证。
八、路由决策怎样计入完整期望成本
级联会先付小模型费用,失败后再付强模型费用:
E[cost] = router_cost + small_cost
+ P(escalate) × strong_cost
+ P(error) × remediation_cost
人工接管、用户流失和错误决策也是成本。只比较 API 单价会把高失败路线误判为便宜。
九、延迟约束怎样进入路由
模型 P95 延迟随输入长度、区域与当前负载变化。路由器应使用分桶历史或在线容量信号,并为总 Deadline 预留验证与可能升级时间。
先跑 8 秒小模型再升级 10 秒强模型,可能已超过用户 12 秒 Deadline。低剩余时间时应直接选可靠路径,而不是机械级联。
十、上线和漂移如何治理
先离线回放,再 Shadow 收集真实特征分布,然后小流量灰度。监控各模型流量、任务成功、错误下放、升级率、成本、延迟、切片公平性和候选不可用率。
任务分布、价格、模型或 Prompt 改变都会使策略漂移。保留保守默认路由和一键关闭学习策略;路由器版本本身进入 Release Manifest。
十一、与 Fallback 怎样衔接
路由器输出首选 release 与候选能力集;运行时若出现 429、超时或校验失败,再由 Fallback 根据错误类型和剩余预算处理。安全拒答不能通过路由到更宽松模型绕过。
统计时区分 primary_route 与 fallback_path。否则备用模型接收的全是困难或故障样本,看起来质量差,却不是公平比较。
十二、常见误区与追问
- 误区:路由器准确率高就代表系统好。 需要按错误代价看质量违约、Regret、成本和延迟。
- 误区:问题短就适合小模型。 短输入也可能是高风险或复杂推理。
- 误区:小模型自报高置信即可直接返回。 分数必须在目标任务和切片上校准。
- 误区:流量占比越多落到小模型越成功。 错误下放可能抵消全部节省。
- 误区:路由和 Fallback 是同一个策略。 一个做正常首选,一个处理故障与不合格结果。
- 追问:没有全模型标签怎么办? 对代表性离线集全跑,并对安全线上样本做 Shadow 或探索性采样。
- 追问:路由器故障怎么办? 回退到满足所有硬约束的保守默认 release。
十三、加强记忆
多模型路由记“硬过滤、估成功、算总成本、低置信升级”。先排除上下文、模态、工具、地域不兼容模型,再在质量与 Deadline 约束下选择最低期望成本路径。用反事实评测和 Routing Regret 验收,重点看困难题错误下放而非小模型占比。路由负责正常首选,Fallback 负责异常恢复,两者分开记录与治理。