10.4 模型选择与路由策略:Model Routing 与 Cascading

在 AI 工程中,“One Model Fits All” 是一个谎言。 为了在质量、成本和延迟之间找到最优解,需要构建一个 Model Router(模型路由器)

10.4.1 模型分层

与其把路由策略绑定到某一个短期型号,不如先按模型家族分层:

Tier
模型家族
擅长
成本
延迟

S-Tier

Opus 类

复杂推理、难例处理、深度规划

$$$

A-Tier

Sonnet 类

编程、数据分析、通用生产任务

$$

B-Tier

Haiku 类

简单分类、提取、翻译、聊天

¢

这样写的好处是:即使未来版本号更新,你的路由思想也不需要跟着重写。

10.4.2 静态路由

最简单的路由,是按任务类型做规则分发:

def route_request(task_type, prompt):
    if task_type == "coding":
        return call_sonnet_family(prompt)
    elif task_type == "summarization":
        return call_haiku_family(prompt)
    elif task_type == "creative_writing":
        return call_opus_family(prompt)

优点:实现简单,可预测性强。 缺点:对边界样本不够灵活,容易把本可由便宜模型处理的请求错误升级。

10.4.3 动态路由

更进一步的做法,是先让一个轻量 Router 对请求复杂度做判断,再决定是否升级模型。

Router Prompt

“评估以下用户请求的复杂度(Level 1-5)。 Level 1-2:日常问候、简单事实查询 -> Route to Haiku family Level 3-4:编程、逻辑推理、文档分析 -> Route to Sonnet family Level 5:极端复杂的规划、证明或高风险难例 -> Route to Opus family”

动态路由的关键,不是“预测得多聪明”,而是:

  • Router 的判断成本必须足够低;

  • Router 的误判代价必须可控;

  • 升级路径要可观测、可复盘。

10.4.4 级联降级:Cascading / Fallback

这是一种“不仅要便宜,还要兜底”的策略:默认先尝试便宜模型,失败了再升级。

Coding Task Workflow

  1. Attempt 1:先用 Haiku 类模型 尝试写代码。

  2. Verify:运行单元测试或静态检查。

    • 如果通过 -> Return。

    • 如果失败 -> 进入下一步。

  3. Attempt 2:把失败代码、报错信息和约束条件一起交给 Sonnet 类模型

  4. Fix:由更强模型修复,再进入下一轮验证。

这种策略的核心价值不在某一个固定百分比,而在于:

  • 把简单流量拦在便宜模型;

  • 仅让复杂样本触发升级;

  • 用验证环节决定是否升级,而不是凭主观感觉升级。

如果你要做收益测算,应使用自己的业务数据统计:

10.4.5 A/B Testing 与 Evals

如何知道路由策略是否有效?需要建立 Evals(评估体系)

  • 构建一组覆盖真实业务分布的 Golden Dataset。

  • 分别让不同模型家族执行同一批任务。

  • 记录质量、成本、时延、升级率和失败率。

  • 画出 Pareto Frontier(帕累托前沿),找到“质量下降可接受、成本下降明显”的甜蜜点。

评估路由策略时,至少要看 5 个指标:

  • 首次成功率

  • 综合成本

  • P95 延迟

  • 升级率

  • 人工接管率


到目前为止,已经把模型“榨干”了:既让它干复杂的活,又通过各种手段压低成本。 但在这个过程中,是否忽略了什么? 当 AI 变得越来越强大,越来越便宜,它会不会失控?它会不会被坏人利用? Safety(安全) 不仅仅是设一道防火墙,它是 AI 产品的生命线。

➡️ 第十一章:安全与伦理

最后更新于