用反馈驱动模型路由,动态控制调用成本
文章介绍根据响应成本、速度和质量持续更新模型选择策略,并通过汤普森采样探索不同模型的表现。内容涵盖安全架构、约束机制及方案局限,回应固定路由难以适应价格和流量变化的问题。
AI 深度解读
把所有请求交给一个 LLM,或者固定按 70% / 30% 分流,配置写完很省心,价格、模型表现和业务流量变了却未必有人发现。原文提出一套会根据响应结果调整选择的路由:持续评分,按客户和任务积累证据,再决定下一次调用哪个模型。
它最有价值的地方,是讲清了省钱的条件:没有答案质量反馈,自学习路由学到的是谁更快、更便宜、更稳定,学不到谁答得更对。 文中的模型、数字均用于说明机制,没有真实团队的降本实测。
先定义什么叫好,再让路由学习
路由面对的是一个多臂老虎机问题(multi-armed bandits):每个供应商与模型组合都是一个候选项,调用一次,才知道这次表现如何。一直选当前最好的,可能错过其他模型;随机尝试,又会消耗真实请求。
但选模型之前,得先确定奖励,也就是一次响应能拿多少分。原文把它分成两部分:
- 消耗侧衡量延迟、价格,以及响应是否完整。
- 答案侧衡量结果是否正确,需要用户反馈、校验器或评审模型提供证据。
前者网关自己就能测,后者经常缺席。JSON 能解析,只能证明格式合格,不能证明字段内容正确。
当两部分都有数据时,用质量偏好参数 p 组合。p = 0.3 时,答案侧占 0.3,消耗侧占 0.7。原文示例中,Model A 快、便宜,准确率为 82%;Model B 慢、贵,准确率为 95%。偏好约超过 0.84,B 才开始占优。

这不是算法算错了,而是目标决定了选择。更关键的是,没有质量评价的请求只按消耗侧评分,此时把 p 从 0.1 调到 0.9,也不会改变选择逻辑。
评分还得防止几种失真:失败直接记零,不能让快速报错成为优势;价格应按本次请求规模与其他候选比较;缺失信号不能当零分。供应商用量不可信、需要估算,或者实际响应模型与指定模型不一致时,可以记录可靠性,但不能拿这些数据学习价格。
延迟反馈则作为独立观察,权重为 p / (1 − p)。p = 0.3 时约为 0.43,p = 0.75 时为 3,还要配合反馈限流,约束单个客户端对路由的影响。
为什么不能直接选平均分最高的模型
同样是平均分 0.9,来自 5 次请求还是 5000 次请求,可信程度完全不同。只存平均分,会把这两种证据混在一起。
原文用 Beta 分布保存判断及其不确定性。每个候选从 α = 1、β = 1 开始;一次响应得分 0.9,就给 α 加 0.9,给 β 加 0.1。α / (α + β) 表示均值,α + β 越大,分布通常越窄。
Thompson sampling 的选择方式很直接:从每个候选的分布里各抽一个值,谁最高就调用谁。证据少的模型分布宽,偶尔能抽到高分,获得继续验证的机会;证据积累后,选择逐渐稳定。
原文给出的三个示例分布,中心约为 0.86、0.74、0.38,分别对应约 100、17、6 次观察。基于这些分布模拟 10,000 次选择,Model A、B、C 获得的流量分别为 89.1%、10.8%、0.1%。B 仍有约九分之一的机会,因为它可能比当前判断更好。这是模拟结果,不是线上收益。
学习还要分清对象。一个擅长代码、一般问答表现普通的模型,不能只用一个总分评价。原文建议按客户与任务类型保存分布,任务可包括 chat、code、summarise、extract、reasoning、factual knowledge,且标签必须来自封闭集合,避免存储无限增长。
分得太粗会掩盖专长,分得太细又攒不够证据。上下文老虎机(contextual bandits)还能利用提示长度、是否含代码等特征;linear Thompson sampling 则用小型线性模型描述奖励,但需要更多数据,也更难解释。
旧证据同样会成为负担。模型修好了,路由可能还记着它过去的失败。因此作者建议设置探索下限,例如随机分配 5% 的决策;有 5 个候选时,每个落后模型约能分到 1%。候选越多,这点机会越薄,还需要配合逐步遗忘或变化检测。
学习器可以暂停,权限和请求不能跟着失控
原文的工程设计有一个清晰边界:选择模型留在网关进程内,更新判断放到独立学习器。
网关持有内存中的最新分布,本地抽样,不为选择额外发起网络请求。评分异步发送,网关每隔几秒拉取更新。学习器停了,继续使用旧分布或初始分布,只暂停学习。
请求标识由网关生成,反馈绑定具体决策、任务键和实际服务模型,避免归因串位。分布更新采用单写入者;网关与学习器若使用不同语言,还要统计验证两边采样行为一致。
学习器只能在允许的候选中排序,不能扩大调用权限。
权限、能力、上下文窗口、熔断状态、限流冷却和预算,都必须在抽样前过滤。调用失败后,再由回退链逐级检查实时健康状态。路由再相信某个模型,也不能把已被过滤的候选选回来。
省钱还有另一笔账:提示前缀缓存。对话切换供应商,可能失去连续调用的缓存折扣。固定会话能保住折扣,却会推迟切换到新优选模型。仅比较单次价格,未必能得到整段对话的最低成本。
对于不能接受探索性弱答案的任务,原文提出质量受约束的路由:提前固定评测集、评分规则、基线、质量门槛和置信水平,使用精确置信界,并校正同时测试多个模型带来的影响。证据绑定具体模型版本且会过期;只在合格模型中选最便宜的,没有合格者就回到指定基线。
我的判断
我认可它把评分、探索和权限边界放在一起讨论。相比固定权重,自适应路由能接住后续反馈;相比永远选最便宜的模型,它也能表达质量取舍。
但作者没有给出真实流量下的成本、质量、延迟对照,也没有交代评审费用与运维投入。标题里的降本是机制上的可能性,不能当成已经验证的收益。
「默认偏效率,因为差答案容易被发现,贵账单无法撤销」也是价值判断。程序员会遇到表面合理、测试未覆盖的错误,发现成本可能很高。是否降低质量权重,应取决于错误能否被可靠识别。
冷启动同样不能靠参数包装成确定性。原文给出的热启动示例是均值 0.9、证据强度 10,对应 α = 10、β = 2。按它前面的公式,实际均值是 10 / 12,约为 0.833。可以理解为在初始 α = β = 1 上增加证据,但原文没有把口径讲清,落地时需要核对。
记录选择概率确实有助于离线评估其他策略。不过旧流量无法完整复现新策略上线后会收集到的证据。离线结果能辅助筛选,仍不能替代真实验证。小流量、任务单一的团队,也未必值得承担额外进程、状态存储和监控成本。
能拿来做什么
- 在 Node 网关里接入多个模型前,先统一记录延迟、失败、可信用量和实际响应模型,并明确每个候选的价格,不能把未知价格当免费。
- 给日常 AI 编程请求传入明确任务类型,再接入与目标对应的验证信号,例如代码测试、解析器、schema 检查或标签匹配;不要把格式通过直接当成答案正确。
- 试用自适应路由时,同时观察模型流量占比、分布宽度、质量评价覆盖率,以及决策属于已学习、冷启动还是探索,避免只看账单下降。
- 对不能接受探索性错误的任务,先建立固定评测和质量准入,再从合格模型中选低价候选;涉及多轮对话时,把缓存折扣与会话固定策略一起核算。