跳到正文
    Ertas
    Back to blog

    LLM 路由策略:降低前沿模型 API 成本

    比较六种 LLM 路由策略在成本、延迟和风险上的差异,涵盖按任务静态路由、规则、语义路由、学习型路由器、级联和跨服务商回退,并给出影子测试、金丝雀发布和逐步放量的流量迁移方法,帮助您把流量安全地交给更便宜的模型,同时按路由衡量升级率和单个成功任务成本。

    A pale astronomical impression in graphite and copper, with a soft amber penumbra on warm paper.Two fine engraved orbital fields crossing in deep space, with cool cyan light and a warm distant seam.

    LLM 路由降低前沿模型 API 成本的方式,是把每个请求发给能达到其质量标准的最便宜模型。按从简单到复杂排列,主要策略有:按任务静态路由、规则、语义路由、学习型路由器和级联,另外用跨服务商回退保障可靠性。把流量迁移到更便宜的模型时,要分影子测试、金丝雀发布和逐步放量几个阶段进行,并以评估集把关。

    价格差距正是值得搭建路由器的原因。截至 2026 年 10 月,OpenAI 的标价是 GPT-6 Astra 每百万输入 token 10 美元、每百万输出 token 50 美元,GPT-6 Luna 分别为 0.10 美元和 0.50 美元。Anthropic 的标价是 Claude Opus 5 为 5 美元和 25 美元,Claude Haiku 4.5 为 1 美元和 5 美元。路由器每把一个请求降到更低一档,这个请求就只按原价的一小部分计费。

    本指南比较各种策略,说明如何组合使用,并给出一套在流量迁移过程中保持质量稳定的方法。路由是我们 12 种 LLM 成本优化技术排名中的第 3 项,那篇文章也讲了级联的算术。我们之前关于 SLM 优先的 80/20 路由模式和如何在微调模型、API 与 RAG 之间选择的文章讨论的是架构。同一笔账单的管理视角,见如何降低企业的 AI token 成本。

    什么是 LLM 路由?

    LLM 路由是位于应用和模型之间的一层,逐个请求决定由哪个模型回答。应用把请求连同它掌握的相关信息一起发出,路由器选定一个目标,例如某个前沿模型档位、更便宜的档位、另一家服务商或一个定制模型,再以统一的格式返回答案。

    “路由”这个词底下其实有三个不同的决策,各自依据不同的信号。

    决策回答的问题依据的信号
    路由请求先交给哪个模型?任务标签、请求属性或内容
    升级答案不合格怎么办?对答案的检查
    回退服务商出故障怎么办?错误、超时和速率限制

    把三者分开,每一项都能按自己的标准测试。路由规则看单任务成本,升级检查看它拦下了多少坏答案,回退看它从故障中恢复得有多快。

    路由器本身也有成本。静态规则不给每个请求增加任何开销;语义路由器和学习型路由器会给每个请求多加一次嵌入或一次分类器推理;级联则给每次升级多加一次 API 调用。这些成本和延迟都要从路由器带来的节省里扣除,所以能拿到大部分节省的最简单策略,往往就是最优解。

    LLM 路由策略有哪些?

    六种策略几乎覆盖了所有生产环境中的路由器。它们的区别在于依据什么做决定、给每个请求增加什么,以及出错时是什么样子。

    策略决策依据每个请求的额外开销主要风险
    按任务静态路由任务标签或端点无整个任务只用一个模型
    规则与启发式请求属性几乎为零流量变化后规则失准
    语义路由与已标注示例的相似度一次嵌入请求相似但不同的请求被误路由
    学习型路由器用结果训练的分类器一次分类器推理路由出错却没有报错
    级联对便宜模型答案的检查每次升级多一次 API 调用升级请求的延迟
    跨服务商回退错误和超时出故障前没有备用模型的质量不同

    1. 按任务静态路由

    为工作流的每一步设一条独立的路由,并在配置里固定每条路由使用的模型。一条客服流水线可能要先对工单分类,再提取订单信息,然后起草回复,最后为人工客服总结案例。每一步都是一条单独的路由,有自己的模型、自己的评估集和自己的单任务成本。

    Code example
    # 工作流每一步一条路由。每条路由都有自己的评估集和预算。
    ROUTES = {
        "classify_ticket": {"model": "gpt-6-luna", "fallback": "claude-haiku-4-5"},
        "extract_order": {"model": "claude-haiku-4-5", "fallback": "gpt-6.1-sol"},
        "draft_reply": {"model": "claude-sonnet-5-5", "fallback": "gpt-6.1-sol"},
        "case_summary": {"model": "claude-opus-5", "fallback": "gpt-6-astra"},
    }
    
    def route(task: str) -> dict:
        return ROUTES[task]

    这里的模型名称仅作示例。每一步该用的最便宜合格模型,要用这一步的评估集把每个候选模型都跑一遍才能确定。

    静态路由以最小的风险拿到了很大一部分节省。应用本来就知道自己处在哪一步,不需要任何猜测,每条路由也可以凭自己的证据单独换成更便宜的模型。它的局限在于粒度:一条路由上的所有请求都交给同一个模型,偶尔出现的难题也不例外,所以静态路由很适合在每条路由内部再配一个级联。

    2. 规则与启发式

    规则依据应用在任何模型运行之前就能读到的属性来路由:输入长度、语言、文档类型、客户等级,以及是否涉及附件或工具。像“超过 50,000 token 的输入交给已经测过长上下文质量的模型”这样的规则,运行成本低,调试也容易。

    每条规则都隐含着一个关于哪些请求更难的假设,而流量会在它底下不断变化。记录每个请求触发了哪条规则,用它所管辖那部分流量的评估结果去检验每条规则,并把规则集控制在一位工程师能完整读完的长度。

    3. 语义路由

    语义路由先为进入的请求生成嵌入向量,再与每条路由各自的一组已标注示例比较。相似度超过阈值时,请求交给示例最接近的那条路由;哪条都没超过时,交给默认路由。

    它适合只有一个入口、却要接收多种请求的场景,例如一个聊天框或一个收件邮箱。代价是每个请求都多一次嵌入请求和相应的延迟。风险在于近似匹配:一个看起来像常规请求、实际需要别的处理的请求。把默认路由设为前沿模型,阈值定得严一些,低于阈值的请求一律视为超出便宜路由的范围。

    4. 学习型路由器

    学习型路由器是一个分类器,逐个请求估计更便宜模型的答案是否可以接受。它用您自己流量中记录下来的结果训练:哪些请求上便宜模型的答案合格,哪些不合格。

    已发表的基准测试结果令人鼓舞。LMSYS 的研究人员在 2024 年发表的 RouteLLM,用人类偏好数据训练路由器,在较强和较弱的两个模型之间做选择。论文报告,在多个广泛认可的基准上,某些情况下成本降低超过 2 倍,且不影响回答质量;在测试时更换强、弱模型后,这些路由器仍保持了原有表现。

    放到您自己的流量上,任何路由器的估计都会在一部分请求上出错,而一次误路由只会产生一个更差的答案,不会有任何报错提醒。只有在积累了来自自己流量的带标签结果之后,才去训练路由器;在它后面保留对答案的检查;并且每周抽查一部分路由决策,用评估集核对。

    5. 基于校验升级的级联

    级联先把一条路由上的每个请求交给更便宜的模型,检查答案,检查不通过时再升级到更强的模型。级联的好坏取决于它的检查,而最可靠的检查是代码能够执行的那些。

    • **Schema 检查:**输出可以解析,必填字段齐全,枚举值落在允许的集合内。
    • **一致性检查:**提取出的合计数对得上,引用的 ID 在您的数据库里存在,日期落在合理范围内。
    • **范围检查:**输入属于便宜模型接受过评估的那个任务。
    • **置信度信号:**token 概率或模型自报的分数。它们比上面几种检查弱,只应作为多个依据之一。
    • **评审模型:**由第二个模型给答案打分。它能拦下更多问题,但每个被评审的请求都要为它付费。

    斯坦福大学的研究人员在 2023 年发表的 FrugalGPT,把 LLM 级联列为降低推理成本的三类策略之一,并学习为每个查询选用哪种模型组合。在其实验中,它在成本最多降低 98% 的情况下,达到了当时最好的单个模型 GPT-4 的表现。

    具体算术见我们排名中的第 3 项技术。如果便宜模型的价格是强模型的 5%,并有 30% 的请求升级,级联的成本就是全部交给强模型时的 0.35。升级率决定节省多少,而且升级的请求要等两个模型,所以级联适合偶尔慢一点也可以接受的工作。

    难的案例正是通过这个机制交给前沿模型的,判断依据是请求发生时已有的信息。当答案没有通过检查、请求超出这条路由的范围,或者任务标签直接把它发往前沿路由时,这个请求就被视为难的案例。

    6. 跨服务商回退

    回退处理的是服务商出故障的情况。它之所以出现在一篇讲成本的指南里,是因为没有回退的便宜路由是单点故障,第一次故障就可能让团队从此退回昂贵的默认模型。Anthropic 的 API 错误参考列出了 429 速率限制错误和 529 过载错误,并说明后者可能在所有用户的流量都很高时出现。每家服务商都有类似的错误。

    为每条路由在第二家服务商配一个备用模型,在切换之前先做带退避的重试,并加一个熔断器,在某家服务商持续出错时停止向它发送请求。有两个细节常常让团队吃亏。

    • **备用模型也必须通过这条路由的评估集。**一个从未在该任务上评估过的备用模型,会把一次看得见的故障换成一次没人察觉的质量下降。
    • **提示缓存只属于各自的服务商。**在一家服务商缓存的前缀,请求转到另一家时就失去了缓存折扣,所以要为故障切换期间的成本上涨预留预算。

    同一份参考文档还建议逐步提高流量,以免在用量骤增后触发加速限制。这也是要分阶段迁移流量的又一个理由,下面的方法正是这样做的。

    如何组合使用路由策略?

    大多数生产环境的路由器会叠加六种策略中的三种。按任务静态路由选定路由,每条路由内部的级联把没通过检查的答案升级,回退则为每个模型在第二家服务商配好备用。

    示意图:分层的 LLM 路由器。一个标签为 extract_order 的请求到达任务路由器,路由器读取标签后,把它发往三条路由之一:用 GPT-6 Luna 分类、用 Claude Haiku 4.5 提取,或用 Claude Sonnet 5.5 起草回复。在提取路由上,通过检查的答案直接返回,没通过的升级到 Claude Opus 5。下方的横条表示跨服务商回退:遇到速率限制、过载或超时时,每条路由都会改用第二家服务商的备用模型重试。
    每一层都可以单独测试和回滚,不影响另外两层,这正是安全迁移一条路由的前提。

    只有当一个入口要接收多种请求时,才在前面加语义路由。只有当一条路由的流量足够大、带标签的结果足够多,让更准确的首选省下的钱超过路由器本身的成本时,才给它加学习型路由器。

    您的情况从这里开始
    工作流中有多个不同步骤按任务静态路由
    一个入口,多种请求语义路由,默认交给前沿模型
    答案可以由代码检查在路由内部加级联
    流量大且有带标签的结果在检查之前加学习型路由器
    所有路由都依赖同一家服务商先配好回退

    如何安全地把流量迁移到更便宜的模型?

    分阶段迁移流量,每个阶段何时推进由一道关卡决定。无论更便宜的目标是更低一档的前沿模型、另一家服务商的模型还是定制模型,阶段都一样:离线评估、影子测试、金丝雀发布、逐步放量,最后是持续打分的稳定运行。

    阶段谁能看到候选模型的答案推进的关卡
    离线评估没有人;它回答回放的请求在评估集上达到标准
    影子测试没有人;只在后台打分在真实流量上保持标准
    金丝雀发布一小部分用户升级和投诉没有增加
    逐步放量越来越多的用户每一步所有关卡都守住
    稳定运行这条路由上的所有请求持续打分保持在标准之上

    **离线评估。**用候选模型回放一批预留的历史请求,并按这条路由的评估集打分。这是成本最低的阶段,大多数候选模型在这里就会被淘汰。

    **影子测试。**在现有模型继续回答的同时,把真实请求的副本在后台发给候选模型。用户永远看不到候选模型的输出。对同一批请求的两份答案都打分,就能看到候选模型如何应对评估集从未覆盖的真实输入。影子流量要付两次费,所以路由流量很大时只镜像一部分样本。

    **金丝雀发布。**让候选模型处理百分之几的真实请求,并把级联的检查放在它和用户之间。没通过检查的答案会在同一个请求内回退到现有的前沿模型,所以一个能力不足的候选模型只会表现为升级和延迟的上升,用户拿到的仍是通过检查的答案。

    **逐步放量。**分几步提高比例,每一步都保持足够长的时间,覆盖一个完整的流量周期,例如包含月末的一整周。只有所有关卡都守住时才继续推进。

    **稳定运行。**继续抽取候选模型的一部分真实答案按评估集打分,回滚触发条件也保持生效。一条路由可能在放量几周之后才开始退化,比如输入发生漂移,或者某个模型别名开始指向新版本。

    柱状图:在一个示例计划中,真实请求先交给候选模型的比例。影子测试阶段为 0%,因为候选模型只在后台打分。金丝雀发布阶段为 5%,没通过检查的答案回退到前沿模型。逐步放量阶段先到 25%,再到 50%。稳定运行阶段为 100%,难的案例仍然升级到前沿模型。
    即使全部放量,前沿模型仍在每个请求的升级路径上,所以账单上始终保留一笔前沿模型费用,大小由升级率决定。

    回滚要自动执行,并且按路由进行。升级率高于基线、评估分数低于标准、p95 延迟超出这条路由的预算,或者回退率突然上升,任何一项发生,都应把这条路由的流量切回现有模型,再由人排查原因。

    每条路由应该测量什么?

    每条路由都要单独测量,因为路由器的平均值会掩盖那条正在亏钱或掉质量的路由。每次 API 调用记录一条日志,写明路由、阶段和结果。

    Code example
    log.info("api_call", extra={
        "task_id": task_id,
        "route": "extract_order",
        "stage": "canary",  # offline、shadow、canary、ramp 或 steady
        "model": model,
        "input_tokens": usage.input_tokens,
        "output_tokens": usage.output_tokens,
        "cost_usd": cost,
        "check_passed": passed,
        "escalated": not passed,
        "latency_ms": elapsed_ms,
    })

    然后按路由和阶段汇总这些记录。

    指标说明什么何时处理
    升级率便宜模型完成不了的比例高于基线时
    单个成功任务成本含重试和升级的单位成本超出路由目标时
    评估分数标准是否仍然守住低于标准时
    p95 延迟等待时间,含升级超出路由预算时
    回退率服务商的健康状况突然上升时

    一条路由值不值得保留,由单个成功任务成本决定。升级率高的便宜模型,每个升级请求都要为两个模型付费;一次重试则让同一个请求付两次钱。我们关于单任务成本与 AI 单位经济的指南讲了如何为每条路由设定目标,智能体 AI 成本优化则把同样逐步分析的视角用在智能体上,智能体每运行一步,都是一次路由决策。

    定制模型在路由策略中处于什么位置?

    定制模型只是又一个路由目标,放进上面这些策略里,什么都不用改。按任务静态路由给一个高流量任务单独设一条路由,定制模型成为这条路由上更便宜的目标,前沿模型留在它身后作为升级路径,再用上面的流量迁移方法把这条路由迁过去。

    它的价值体现在其他目标都无法压低账单的地方:一个流量高且稳定的单一任务,即使用通过评估集的最便宜前沿档位,它的花费仍然超过您运行的其他一切。为单一工作训练的模型只带有这项工作需要的能力,所以服务成本更低,响应也更快。我们关于定制模型何时在成本上胜过前沿 API 的分析,详细计算了盈亏平衡点。

    在我们的 QMSum 研究中,一个为基于查询的会议摘要训练的 1.2B 模型,估算服务成本为每次查询 0.00053 美元,而按同步标价计算,Claude Opus 5 为 0.104 美元,GPT-5.6 Luna 为 0.0130 美元。它在单张 GPU 上的响应时间为 0.39 秒,Claude Opus 5 通过 API 为 9.0 秒。这个估算不含训练成本,而且质量因任务而异,所以只有在定制模型通过您的评估集之后,这条路由才会迁移。

    自适应模型端点替您把这条路由打包好。自适应模型端点是为您的某一项任务提供的单一 API 端点:起初由前沿模型回答,用您的请求和团队反馈训练出的定制模型在通过您的评估集后接手,难的案例继续留在前沿模型上。

    整条路由都在一个端点之后,所以无论背后发布多少个版本,您的路由器里这个任务都只需要一条配置。

    它在这一条路由上执行上面的流程。定制模型的每个新版本都会在后台用真实请求运行,并按您的评估集打分,这就是影子测试阶段。未经您的批准,什么都不会切换;版本通过后,越来越多的请求转给它,这就是金丝雀发布和逐步放量。难的案例继续交给前沿模型。我们监控模型,并随着您的任务变化重新训练,每个新版本都要通过同样的关卡。该端点目前仅限受邀企业使用,我们正在开发一个更简化的版本,让更多企业可以接入。

    对您的路由器来说,采用它只需要把一条路由指向一个新的模型名称。模型可以由我们托管运行,也可以部署在您的云或本地,并且归您所有。

    常见问题

    什么是 LLM 路由器?

    LLM 路由器是位于应用和模型之间的一层,为每个请求选定由哪个模型回答。它可以依据任务标签、请求属性、与已标注示例的相似度或一个训练好的分类器来决定。大多数路由器还负责在答案没通过检查时升级,以及在服务商出故障时回退。

    LLM 路由器会增加延迟吗?

    静态路由和规则几乎不增加延迟,因为它们读取的是应用已经掌握的信息。语义路由会多一次嵌入请求,学习型路由器会多一次分类器推理。级联在升级请求上增加得最多,因为这些请求要先后等待便宜模型和更强的模型。

    学习型路由器比路由规则更好吗?

    当学习型路由器有了来自您流量的带标签结果可供学习时,它能做出比规则更细的决策;RouteLLM 在 2024 年报告,在基准测试中某些情况下成本降低超过 2 倍。规则运行成本更低,也更容易调试。先从按任务静态路由开始,只有当某条路由的流量足够大时,才给它加学习型路由器。

    如何在 OpenAI 和 Anthropic 的模型之间路由?

    在两者前面放一个统一的接口,统一响应格式,并为每条路由配一个主模型和一个在另一家服务商的备用模型。用这条路由的评估集测试它可能用到的每个模型,备用模型也不例外,并且要预料到流量从一家服务商转到另一家时,提示缓存的折扣会重新计算。

    LLM 路由和 LLM 级联有什么区别?

    路由在任何模型运行之前,根据已知的请求信息选定模型。级联则先运行更便宜的模型,答案没通过检查时再升级到更强的模型。大多数生产系统两者都用:用路由选定路由,再在路由内部用级联。

    如何在不影响质量的前提下把流量迁移到更便宜的模型?

    分阶段进行:先用回放的请求做离线评估,再在真实流量上做影子测试,然后对一小部分用户做金丝雀发布,最后逐步放量。每个阶段都以评估分数、升级率和延迟作为关卡,在每个请求内部保留前沿模型作为回退,并在任何关卡失守时自动回滚。

    简短版

    先按任务路由,因为应用本来就知道自己处在哪一步。在代码能检查答案的地方,为每条路由内部加一个级联;为每个模型在第二家服务商配好备用;只有在流量足以覆盖成本的地方,才加语义路由或学习型路由器。把流量迁移到任何更便宜的目标时都要分阶段、以评估集把关,并在每条路由上测量单个成功任务成本。

    如果某一条路由占了您 token 账单的大头,预约通话,我们和您一起评估。


    资料来源:OpenAI API 定价、Anthropic 定价、Anthropic API 错误参考、RouteLLM(Ong 等,2024)和 FrugalGPT(Chen、Zaharia 和 Zou,2023)。价格核实于 2026 年 10 月 6 日。