3.2 路由决策:在成本、延迟、质量间找最优解 读完这一节,你应该能向团队讲明白:"智能路由的本质,是把'每次请求都用最贵最好的模型'换成'按请求难度自动选模型',它的降本不靠省掉重复,而靠让简单请求别花大钱。" 缓存解决"重复请求",路由解决"单次请求的选型浪费"——这一节我们拆开路由的目标函数和几种典型策略。 一、路由在优化什么:一个多目标问题 缓存的优化目标是单一清晰的(提升命中率 r),路由要难得多,因为它同时被三个彼此打架的目标拉扯: 成本(Cost):越低越好。 延迟(Latency):用户要快,尤其 C 端。 质量(Quality):答案得够用,不能为了省钱答非所问。 任何路由策略,都是在给定的成本和延迟约束下,尽量保住质量;或者在保住质量底线时,把成本和延迟压到最低。
读完这一节,你应该能向团队讲明白:"智能路由的本质,是把'每次请求都用最贵最好的模型'换成'按请求难度自动选模型',它的降本不靠省掉重复,而靠让简单请求别花大钱。" 缓存解决"重复请求",路由解决"单次请求的选型浪费"——这一节我们拆开路由的目标函数和几种典型策略。
缓存的优化目标是单一清晰的(提升命中率 r),路由要难得多,因为它同时被三个彼此打架的目标拉扯:
任何路由策略,都是在给定的成本和延迟约束下,尽量保住质量;或者在保住质量底线时,把成本和延迟压到最低。写成一个约束优化:
最小化 Cost(route)
满足 Latency(route) ≤ L_max
且 Quality(route) ≥ Q_min
这里 L_max 是用户能忍受的延迟上限,Q_min 是业务能接受的质量下限。路由器的全部聪明,都在于找到满足这两个约束、且成本最低的"那一个模型"。
主流 LLM 供应商的模型是分层的:小模型便宜快但能力弱,大模型贵而慢但能力强。以典型档位为例(具体价格以官方为准,这里只讲结构):
真实流量里,大量请求其实是简单的:"把这句话翻译成英文""提取这段的用户名""判断这条评论是正还是负"。这些用小型模型就够了,却常被默认路由到大模型,等于用跑车送外卖。路由的第一桶金,就是把这类"简单请求"识别出来,丢给小模型。
最朴素也最可控的路由,是人工写规则:按请求类型、长度、是否含代码、是否要求推理,映射到模型。
优点:可解释、好调试、上线即稳定。缺点:规则要人维护,遇到新请求类型得手动加,且"难度"往往不是几个字段能判定的。
def route_by_rule(request): # 简单文本分类/抽取,直接小模型 if request.task in ("classify", "extract", "translate"): return "small-model" # 长上下文或要求高准确 if request.context_len > 8000 or request.need_reasoning: return "large-model" # 其余走中型 return "mid-model"
规则路由适合请求结构清晰、类型有限的内部系统。它不聪明,但够稳,是很多团队的第一版。
级联路由的思想极其实用:先用最便宜的小模型试,它答得够好就结束;答不好,再升级到大模型。 这像"先看社区医院,不行再转专家号"。
关键在"小模型答得好不好"怎么判。常见判据:
级联的妙处:大部分简单请求停在第一级,只花小模型的钱;只有真正难的才逐级上升到贵模型。实测里,60%~80% 的请求可能在小模型一层就结束,整体成本能砍掉一半以上,而用户端质量几乎无感——因为难的请求最终还是大模型的答案。
当"难度"无法用简单规则判定时,可以训练一个轻量分类器,输入请求特征(长度、是否含代码、历史相似请求的质量反馈),输出"该用哪个模型"。
这类路由更自适应,但需要标注数据(哪些请求用小模型就够了)和持续评估,防止分类器漂移。对多数团队来说,规则 + 级联已经能拿下降本的大头,学习式路由是锦上添花,不是前提。
把"成本"和"质量"画成二维,每个模型是一个点。帕累托前沿就是"在不牺牲质量的前提下,成本最低的那条边界"。路由的目标,是让每个请求都落在这条前沿上——既不花冤枉钱,也不掉质量。
现实里没有"全能最优模型",只有"对这类请求最优的模型"。路由做的,就是按请求类型把流量分到前沿上不同的点。
很多团队只考虑成本,却忽略延迟。C 端对话超过 3 秒用户就跑了,这时候"为了省钱用慢的小模型"可能是负优化。所以路由必须带延迟约束:
把"实时/离线"分开路由,是很多人漏掉的一层降本。 离线任务对延迟零敏感,完全可以排队到低价时段或用最便宜的档位,省下的钱常常比在线优化还多。
回到全书主线:缓存和路由是两套互补杠杆。它们配合时的典型顺序是——
这一章我们讲了两个数学内核:命中率决定了缓存能省多少(S≈r),而路由把"每个请求的成本"按难度重新分配。下一章(实战案例)我们会把这两套杠杆,放进三个规模不同的真实系统里,看它们到底省下多少钱、踩过哪些坑。