10.4 模型选择与路由策略:Model Routing 与 Cascading
在 AI 工程中,“One Model Fits All” 是一个谎言。 为了在质量、成本和延迟之间找到最优解,需要构建一个 Model Router(模型路由器)。
10.4.1 模型分层
与其把路由策略绑定到某一个短期型号,不如先按模型家族分层:
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:
Attempt 1:先用 Haiku 类模型 尝试写代码。
Verify:运行单元测试或静态检查。
如果通过 -> Return。
如果失败 -> 进入下一步。
Attempt 2:把失败代码、报错信息和约束条件一起交给 Sonnet 类模型。
Fix:由更强模型修复,再进入下一轮验证。
这种策略的核心价值不在某一个固定百分比,而在于:
把简单流量拦在便宜模型;
仅让复杂样本触发升级;
用验证环节决定是否升级,而不是凭主观感觉升级。
如果你要做收益测算,应使用自己的业务数据统计:
10.4.5 A/B Testing 与 Evals
如何知道路由策略是否有效?需要建立 Evals(评估体系)。
构建一组覆盖真实业务分布的 Golden Dataset。
分别让不同模型家族执行同一批任务。
记录质量、成本、时延、升级率和失败率。
画出 Pareto Frontier(帕累托前沿),找到“质量下降可接受、成本下降明显”的甜蜜点。
评估路由策略时,至少要看 5 个指标:
首次成功率
综合成本
P95 延迟
升级率
人工接管率
到目前为止,已经把模型“榨干”了:既让它干复杂的活,又通过各种手段压低成本。 但在这个过程中,是否忽略了什么? 当 AI 变得越来越强大,越来越便宜,它会不会失控?它会不会被坏人利用? Safety(安全) 不仅仅是设一道防火墙,它是 AI 产品的生命线。
➡️ 第十一章:安全与伦理
最后更新于
