1. 从一组反差数据说起:为什么模型不再是唯一战场
第一次看到"56% 的 Token 只花了 14% 的钱"这个说法,我的直觉是数据统计口径出了问题。做过 AI 应用成本核算的人都知道,Token 消耗和费用支出在大多数团队里几乎是线性关系——用得多就花得多,模型单价乘以调用量,小学数学就能算清楚。但把这组数字拆开看,会发现它描述的其实是一个正在发生的结构性变化:真正被高频调用的,往往不是最贵的那个模型。
举个我实际遇到的场景。有个做智能客服的朋友,早期所有请求都打到同一个旗舰模型上,一个月账单高得离谱。后来他把请求拆成三类:简单意图识别、常规问答、复杂投诉处理。前两类占了总调用量的八成以上,全部切到轻量模型;只有最后一类才走旗舰模型。结果 Token 总量没怎么变,费用直接砍掉一大半。这就是那组数据的现实版本——大量 Token 流向了便宜模型,少量 Token 承担了主要成本。
这件事的意义不在于"省钱"两个字,而在于它揭示了一个被长期忽视的事实:模型能力只是整个 AI 系统的一个环节,真正决定成本和体验的,是请求怎么被分配到不同模型上去。这个分配动作,行业里叫"路由"(Routing)。路由做得好,便宜模型干粗活、贵模型干细活,整体性价比能翻好几倍;路由做得差,要么全用贵模型烧钱,要么全用便宜模型答非所问。
所以这篇内容想聊的不是某个具体模型有多强,而是当模型能力逐渐趋同之后,路由为什么成了新的分水岭。我会从成本结构、路由的核心逻辑、落地时的具体做法、以及实际踩过的坑几个角度展开,适合正在做 AI 应用、关心成本控制、或者准备搭建多模型架构的读者。哪怕你只是调用 API 做个副业项目,理解路由的思路也能帮你把账单压下来。
2. 拆解那组反差数据:Token 与费用的错位从何而来
2.1 模型单价的量级差异是错位的根源
要理解"56% 的 Token 只花 14% 的钱",得先看清不同模型之间的价格鸿沟。以目前主流 API 的定价为例,旗舰模型和轻量模型的单价差距通常在 10 倍到 50 倍之间,极端情况下甚至更高。这个差距不是线性的,而是数量级的。
| 模型档位 | 典型输入单价(每百万 Token) | 典型输出单价(每百万 Token) | 适用场景 |
|---|---|---|---|
| 旗舰级 | 较高 | 较高 | 复杂推理、长文分析、代码生成 |
| 中档 | 中等 | 中等 | 常规问答、内容改写、信息抽取 |
| 轻量级 | 极低 | 极低 | 意图识别、分类、简单摘要 |
这张表里最关键的信息不是具体数字,而是档位之间的倍数关系。假设旗舰模型单价是轻量模型的 30 倍,那么当轻量模型承担了 56% 的 Token 时,它对应的费用占比只有 56% ÷ 30 ≈ 1.9%,即便算上中档模型的混合,整体费用占比落在 14% 左右是完全合理的。
换句话说,那组数据并不神奇,它只是模型单价差异在调用分布上的自然投影。真正值得琢磨的是:为什么会有这么多 Token 流向轻量模型?答案在于任务本身的分布。
2.2 大多数请求其实不需要旗舰模型
我观察过自己项目里的请求日志,也跟几个做 AI 产品的朋友交流过,大家的结论高度一致:真实业务里,超过一半的请求是"简单任务"。什么叫简单任务?用户问"我的订单到哪了"、系统需要判断一句话是正面还是负面、要把一段文本分类到五个标签之一、要提取一个日期或金额。这些任务用旗舰模型当然也能做,但就像开卡车去菜市场买两根葱——能到,但没必要。
这里有个反直觉的点:很多人以为"用最好的模型总没错",但在成本和延迟两个维度上,旗舰模型反而是劣势。旗舰模型通常参数更多、推理更慢、单价更高,处理简单任务时不仅浪费钱,响应速度还更差。用户等三秒和等一秒的体验差距,在客服、搜索这类场景里是致命的。
所以那 56% 的 Token 流向轻量模型,本质上是任务复杂度分布决定的。简单任务多,自然轻量模型吃掉的 Token 多;复杂任务少,旗舰模型虽然单价高,但调用量小,总费用占比反而可控。这就是错位的底层逻辑。
2.3 错位背后是"能力过剩"的普遍浪费
再往深一层想,这个错位其实暴露了一个行业性的浪费:大量请求在用远超需求的能力处理。一个只需要判断"是/否"的任务,用能写诗、能推公式的旗舰模型来做,中间的算力几乎全被浪费掉了。
这种浪费在早期不明显,因为大家还在验证 AI 能不能用,顾不上成本。但当 AI 应用进入规模化阶段,调用量从每天几百次涨到几百万次,浪费就会被放大成真金白银。我见过一个团队,月调用量上千万次,其中七成是简单的文本分类,全部走旗舰模型,一个月光这一项就烧掉六位数。后来做了路由分流,同样的业务量,费用降到原来的两成不到。
提示:判断自己的项目有没有"能力过剩",最简单的办法是抽样看请求日志,把任务按复杂度分三档,统计各档的调用占比。如果简单任务占比超过 50% 却仍在用旗舰模型,那基本可以确定有优化空间。
3. 路由到底在做什么:把对的请求交给对的模型
3.1 路由的本质是一次"请求分类"
很多人一听"路由"觉得是个很玄的架构概念,其实它的核心动作非常朴素:在请求到达模型之前,先判断这个请求该由哪个模型处理。这个判断过程,本质上就是一次分类。
你可以把它想象成医院的分诊台。病人来了,护士先看一眼:感冒发烧去普通门诊,骨折去骨科,胸痛去急诊。分诊护士不需要治病,但她决定了你去找哪个医生。路由层就是 AI 系统里的分诊台,它不生成内容,只决定请求的流向。
这个分类可以做得非常简单,也可以做得非常复杂。最简单的版本是基于规则的:如果请求文本长度小于 50 字且包含"分类""判断"等关键词,就走轻量模型;否则走旗舰模型。复杂一点的版本会用一个小模型来做意图识别,甚至用上语义相似度、历史成功率等信号。
3.2 路由决策依赖哪几类信号
实际落地时,路由决策通常会综合几类信号。我把常见的整理成下面这张表,方便对照自己的场景选用。
| 信号类型 | 具体例子 | 优点 | 局限 |
|---|---|---|---|
| 文本特征 | 长度、语言、是否含代码 | 计算快、零成本 | 判断粗糙 |
| 任务类型 | 分类、摘要、推理、生成 | 准确度高 | 需要预先定义 |
| 历史表现 | 该模型在此类任务的成功率 | 动态自适应 | 需要积累数据 |
| 成本预算 | 当前时段预算余量 | 直接控成本 | 可能牺牲质量 |
| 延迟要求 | 用户可接受的响应时间 | 优化体验 | 与质量有冲突 |
这几类信号不是互斥的,成熟的路由层往往会组合使用。比如先用文本特征做粗筛,再用任务类型做精判,最后根据预算和延迟要求做微调。我自己的项目里,最有效的组合是"任务类型 + 历史成功率",前者决定初始路由,后者在运行中不断修正。
3.3 路由和负载均衡不是一回事
这里要澄清一个常见误解:路由不等于负载均衡。负载均衡解决的是"同样的请求分给哪台机器",目标是均摊压力;路由解决的是"不同的请求分给哪个模型",目标是匹配能力和成本。
打个比方,负载均衡是餐厅里把客人平均分到几个窗口,每个窗口卖的东西一样;路由是根据客人想吃什么,把他引导到对应的档口。前者关心的是"别让某个窗口排太长队",后者关心的是"别让做川菜的师傅去做寿司"。
理解这个区别很重要,因为很多团队一开始会把路由当成负载均衡来做,结果只是把请求随机分到不同模型上,既没省下钱,还因为模型能力不一致导致体验忽好忽坏。真正的路由必须建立在任务与模型能力的匹配之上。
4. 落地一套路由方案:从规则到模型的渐进路径
4.1 第一阶段:用规则跑通最小闭环
如果你刚开始做路由,我的建议是别一上来就搞复杂的分类模型,先用规则跑通闭环。规则路由的好处是透明、可控、好调试,出问题一眼能看出是哪条规则判错了。
一个可用的规则路由大概长这样:
def route_request(text, task_hint=None): # 规则1:显式任务类型优先 if task_hint in ("classify", "extract", "intent"): return "light_model" # 规则2:短文本且无复杂指令 if len(text) < 80 and not contains_code(text): return "light_model" # 规则3:包含推理、分析、代码等关键词 if any(kw in text for kw in ["分析", "推理", "为什么", "写代码", "重构"]): return "flagship_model" # 默认走中档模型 return "mid_model"这段代码不复杂,但它能覆盖大部分场景。我实测下来,纯规则路由就能把成本压掉四到六成,而且因为逻辑简单,几乎不会出大错。关键是规则要基于你自己的请求分布来定,别照搬别人的阈值。
4.2 第二阶段:引入小模型做意图分类
规则跑一段时间后,你会积累一批"规则判错"的案例。这时候就可以考虑引入一个小模型来做意图分类,把规则覆盖不到的长尾情况接住。
具体做法是:用历史请求数据训练一个轻量分类器,输入是请求文本,输出是任务类型标签。这个分类器不需要很准,达到 85% 左右的准确率就能显著改善路由效果。因为剩下的 15% 即使判错,代价也只是"用贵模型处理了简单任务"或"用便宜模型处理了稍复杂的任务",不会造成灾难性后果。
这里有个经验:分类器的标签体系要跟你的模型档位对齐。如果你只有两档模型,就做二分类;有三档就做三分类。别搞出十几个细分类别然后映射到三个模型上,中间映射逻辑越复杂越容易出错。
4.3 第三阶段:用反馈闭环动态调优
路由做到一定程度,就该引入反馈闭环了。核心思路是:记录每次路由的结果,用实际表现来修正路由策略。
具体可以记录这几个字段:请求特征、路由到的模型、响应质量评分(可以用人工抽检或自动评估)、实际成本、延迟。积累一段时间后,你会发现某些任务类型在轻量模型上的表现其实很好,可以进一步下沉;而某些看似简单的任务在轻量模型上频繁翻车,需要上调。
这个闭环不需要很复杂,哪怕只是每周人工看一次报表、调整几条规则,也能让路由策略持续进化。我自己的项目里,这个习惯坚持了三个月,路由准确率从最初的七成提升到了九成以上。
注意:反馈闭环里最容易忽略的是"质量评分"的获取。如果完全靠人工抽检,成本高且滞后;如果完全靠自动评估,又可能失真。我的做法是两者结合,自动评估做日常监控,人工抽检做周期性校准。
5. 路由实战中那些文档不会写的坑
5.1 坑一:模型能力边界比想象中模糊
理论上我们知道旗舰模型强、轻量模型弱,但具体到某个任务上,边界往往很模糊。我遇到过好几次:一个看起来需要推理的任务,轻量模型居然答得不错;而一个看起来简单的分类任务,轻量模型却频繁出错。
原因是任务的"表面复杂度"和"实际复杂度"经常不一致。有些任务文字很短,但需要背景知识;有些任务文字很长,但只是信息抽取。所以路由策略不能只看表面特征,必须结合实测数据来校准。
我的应对办法是:新任务上线前,先做一轮 A/B 测试,同一批请求分别走轻量模型和旗舰模型,对比质量和成本,再决定路由策略。这个测试成本不高,但能避免拍脑袋决策。
5.2 坑二:路由层本身也会成为瓶颈
路由层虽然不生成内容,但它要处理每一个请求,如果设计不当,会成为整个系统的性能瓶颈。我见过一个团队,路由逻辑写得极其复杂,每次请求要跑好几个模型来判断意图,结果路由耗时比模型推理还长。
避免这个坑的原则是:路由决策要快,最好在毫秒级完成。规则路由天然快;如果用模型做分类,也要选足够小的模型,或者把分类结果缓存起来。对于重复性高的请求,缓存路由决策能省下大量开销。
5.3 坑三:多模型输出格式不统一
当你开始用多个模型时,很快会遇到一个烦人的问题:不同模型的输出格式不一样。有的返回 JSON,有的返回纯文本;有的把答案放在content字段,有的放在message里。如果不做统一处理,下游代码会变得一团糟。
我的做法是在路由层之上加一个适配层,把不同模型的输出统一成内部标准格式。这样下游业务代码只需要面对一种格式,切换模型时不用改业务逻辑。这个适配层看起来是额外工作,但它省下的维护成本远超投入。
5.4 坑四:成本核算口径不一致
最后一个坑比较隐蔽:不同模型的计费口径不一样。有的按输入输出分别计费,有的合并计费;有的对缓存命中打折,有的不打。如果不统一核算口径,你根本算不清路由到底省了多少钱。
建议在路由层记录每次调用的标准化成本,把不同模型的计费规则统一换算成"每千 Token 综合成本",这样横向对比才有意义。我自己的报表里,成本字段都是换算后的标准值,否则根本没法做决策。
6. 从路由延伸出去:AI 系统的下一个竞争点
6.1 路由只是"模型编排"的一个切面
把视角拉高一点看,路由其实是模型编排(Model Orchestration)的一个切面。编排要解决的问题是:一个复杂任务怎么拆解成多个子任务,每个子任务交给哪个模型,结果怎么汇总。路由只负责"选模型"这一步,编排还要管"拆任务"和"合结果"。
举个例子,一个"帮我分析这份财报并写摘要"的请求,编排层可能会把它拆成:提取关键数据(轻量模型)、计算同比环比(代码工具)、生成分析文字(旗舰模型)、压缩成摘要(中档模型)。路由负责给每个子任务选模型,编排负责把它们串起来。
这个方向目前还在早期,但已经能看出潜力。当模型能力趋同、单价差异成为主要变量时,谁的编排做得好,谁就能用更低的成本做出更好的体验。
6.2 路由能力会成为团队的核心资产
我有个判断:未来 AI 团队的竞争力,很大一部分会体现在路由和编排能力上。因为模型是公开的,谁都能调用;但怎么把请求分配到最合适的模型上,怎么在成本和质量之间找到最优解,这是需要长期积累的。
这种能力不像模型参数那样可以买来,它依赖于你对业务请求分布的理解、对模型能力边界的把握、以及持续调优的耐心。换句话说,它是一个运营型的能力,而不是采购型的能力。这也是为什么我说"分水岭正从模型转向路由"——模型可以买,路由得自己练。
6.3 给不同阶段团队的建议
最后按团队阶段给点具体建议。如果你刚起步,请求量不大,先别急着做路由,把业务跑通更重要,等调用量上来再说。如果你已经有一定量级,从规则路由开始,用最小成本验证效果。如果你已经在做多模型架构,重点投入反馈闭环,让路由策略能持续进化。
不同阶段的重点不一样,但方向是一致的:让合适的请求找到合适的模型。这件事没有终点,只有不断逼近最优的过程。我自己做了大半年,到现在每周还在微调规则,因为业务在变、模型在更新、成本结构也在变。这大概就是路由这件事的常态——它不是一次性的架构决策,而是一个需要长期经营的系统能力。