2.2 智能路由:按成本 / 延迟 / 质量自动选路 上一节我们把「重复请求」挡在了模型门外。但真实流量里,还有大量一次性、差异化的请求——缓存帮不上忙,它们终归要落到某个模型上。问题来了:落到哪个模型? 如果全扔给最贵最强的大模型,成本直接爆;如果全用 cheapest 小模型,质量又塌方。这一节要解决的,就是「未命中缓存的那部分请求,如何自动选到最划算的模型」——智能路由。 读完这一节,你应能一句话概括:路由的本质是一棵「任务难度 → 模型档位」的决策树,它在成本、延迟、质量三者之间替你做权衡,而不是无脑全上大模型。 先破除一个误区:不是「大模型一定更好」 很多团队一开始把所有请求都发给旗舰大模型,理由是「质量最稳」。
上一节我们把「重复请求」挡在了模型门外。但真实流量里,还有大量一次性、差异化的请求——缓存帮不上忙,它们终归要落到某个模型上。问题来了:落到哪个模型? 如果全扔给最贵最强的大模型,成本直接爆;如果全用 cheapest 小模型,质量又塌方。这一节要解决的,就是「未命中缓存的那部分请求,如何自动选到最划算的模型」——智能路由。
读完这一节,你应能一句话概括:路由的本质是一棵「任务难度 → 模型档位」的决策树,它在成本、延迟、质量三者之间替你做权衡,而不是无脑全上大模型。
很多团队一开始把所有请求都发给旗舰大模型,理由是「质量最稳」。但事实是:相当一部分请求,小模型(或开源/廉价模型)完全能胜任,质量差距肉眼难辨,成本却差几倍到几十倍。
举几个真实画像:
这些请求如果全走大模型,等于用牛刀杀鸡,且牛刀按次计费,刀刀都是钱。路由的价值,就是识别「哪些该用牛刀,哪些用菜刀就行」。
光说概念容易飘,给一个真实感强的场景。假设你是某电商的客服助手,每天几万条用户问句。我们抽样发现:约五成是「订单到哪了」「怎么退货」「优惠券怎么用」这类高度标准化问题;三成是「帮我对比两款手机」「写一段催付短信」这类中等生成任务;两成是「我这个纠纷该怎么维权」「根据我的账户给理财建议」这类复杂或高风险任务。
如果不路由,全扔旗舰大模型,账单最贵。路由后:那五成标准化问题用便宜的小模型/专用问答服务就够了(用户根本分不出差别);三成中等任务走中档;只有两成复杂或高风险走旗舰。算下来整体成本砍掉一大截,而用户满意度几乎没动——因为简单问题本就用不上大模型的能力。这个例子想说明:路由省的钱,来自「承认大部分请求其实不值那个价」。
路由不是单看价格。它是一个三目标权衡,不同业务对三者的权重不同:
三者经常打架:大模型质量高但贵且慢;小模型便宜快但可能错。路由的功夫,就是给每类任务找到「质量达标前提下,成本和延迟最优」的那一档。
我建议的优先级是:先保证质量达标,再在达标的模型里挑最便宜最快的。 不要为了省钱去用一个「经常答错」的模型——省下的 Token 钱,可能赔进客诉和返工。所以路由的第一步不是比价,而是给每类任务设一条「质量红线」:低于这条线的模型,直接失去候选资格。
路由器要替你选路,得先判断「这条请求难不难」。常见有四类信号,可以组合使用:
对结构化、可预判的请求,直接用规则分流,根本不调模型判断:
tier=internal_batch)→ 走批处理廉价模型。规则路由零延迟、零额外成本,但只能覆盖「你能预见」的部分。它是路由的第一道闸门。
对无法用规则预判的,可以先用一个便宜的小模型给请求打难度标签(简单/中等/复杂),再据此选路。这相当于「花一分钱请个调度员」。只要分类器准,整体比「全部上大模型」省得多。注意:分类器本身也要评估准确率,分错了会错配。
很多任务可以从「元特征」直接猜难度,比调分类器还省:
这是我最推荐的工程套路:先用最便宜的模型试,质量不达标就升级一档,直到达标。 因为大量请求其实简单,便宜模型就搞定了;只有少数难的才需要逐级升级。级联把「为简单请求多付的钱」压到最低。
但要注意级联的额外开销:每升一档都要重算一次,且升级判断本身需要标准。所以级联适合「简单请求占比高」的业务;若请求普遍很难,级联反而因反复升级更费钱。
路由不只是「选哪个模型」,还要管「选了之后怎么办」:
为了让你能直接落地,我给你一个配置骨架(伪代码/配置思路,按你的技术栈替换):
cheap(小模型,单价最低)、mid(中档,性价比)、flagship(大模型,质量最强)。translate/classify/extract → cheap;summarize under 500字 → mid;reasoning/codegen → flagship。cheap → mid → flagship,每级设质量判官(规则或校验模型)。把前面几种路由方式摊开对比,照着对号入座:
| 路由方式 | 额外成本 | 准确率依赖 | 适用场景 | 风险 |
|---|---|---|---|---|
| 规则硬路由 | 零 | 不依赖模型 | 意图明确、结构化请求 | 覆盖不了长尾 |
| 小模型分类器 | 极低(一次小调用) | 依赖分类器准度 | 意图多样、可预估 | 分错会错配 |
| 元特征粗筛 | 零 | 启发式 | 有规律可循的请求 | 边界模糊会误判 |
| 级联 cascade | 低(仅升级时多算) | 依赖质量判官 | 简单请求占比高 | 普遍难时反复升级更费 |
我推荐的组合拳是:规则硬路由做第一闸门(零成本覆盖大头),元特征粗筛补一层,剩下的交给级联(便宜先试、不行升级)。分类器是可选增强,当你发现规则+粗筛误判太多再上。
级联和降级都依赖一个东西——「质量判官」:判断当前模型输出是否达标。判官可以有三档:
我的主张:先用规则判官拦明显错误,再用校验模型查语义,关键类目保留人工抽检通道。 没有判官,级联就是「瞎升级」,路由的质量红线会塌。
假设每天 10 万次请求,其中 40% 是简单任务(本可走廉价模型,单价约为大模型的 1/10),30% 中等,30% 复杂必须大模型。若全部走大模型,日成本记为 100 单位。路由后:简单档成本≈4 单位,中等档≈30 单位(假设中档单价为 1/3),复杂档≈30 单位,合计≈64 单位。一天省 36%,一个月省下的量相当可观——而用户感知到的质量几乎不变,因为简单任务本就用不上大模型。
讲完怎么做,必须讲「别怎么做」。以下是我在真实项目里反复见到的路由翻车现场:
回到开头的那句话——路由是一棵「任务难度 → 模型档位」的决策树。你今天至少该带走两个判断:第一,先划质量红线,再在达标模型里挑便宜的;第二,优先用级联(便宜先试、不行再升),而不是无脑全上大模型。 缓存管「重复」,路由管「差异」,两者都就位了,下一节我们把它们拼成一道完整的中间层闸门。