AI

模型成本的第一性原理:以成功任务成本衡量

模型便宜不等于任务便宜。真正应该比较的是在质量、可靠性和延迟达标后,每个成功任务的完整成本。

核心原则

模型成本评估的起点不是 token 单价、缓存命中率或单次请求费用,而是:

模型能否以可接受的质量完成目标任务?

如果一个模型无法完成任务,它的调用价格再低,也不能构成有效的成本优势。失败调用、反复重试、人工返工和最终切换模型都是真实成本。

因此,成本优化应该从任务结果向后倒推:

定义任务目标与质量门槛
→ 判断方案能否稳定达标
→ 计算完成任务的全部消耗
→ 比较每个成功任务的成本
→ 再优化 token、缓存、轮数和工具调用

模型便宜不等于任务便宜,缓存命中率高也不等于任务便宜。以可接受质量完成同一任务的成功成本更低,才是真的便宜。

先把问题写成约束优化

模型选型不是无条件追求最低费用,而是在质量约束下寻找成本更低的方案:

在任务质量 ≥ 可接受门槛
且可靠性、延迟满足业务要求的前提下
最小化 Cost per Successful Task

这条约束很重要。不同模型如果完成的目标、质量等级或可靠性要求不同,它们的成本就不能直接横向比较。

例如,小模型无法完成复杂代码修改,大模型可以完成。此时小模型的低单价没有比较意义,因为两者没有产生等价结果。反过来,简单分类任务由小模型一次完成,就没有必要为了更高缓存命中率使用成本更高的大模型。

三层成本模型

第一层:单次请求成本

Provider 的直接计费通常可以表示为:

Request Cost
= uncached_input_tokens × uncached_input_price
+ cached_input_tokens × cached_input_price
+ output_tokens × output_price

这一层适合解释账单,但不能代表 Agent 完成任务的成本。

第二层:单个任务成本

Agent 通常通过多轮模型调用、工具执行和重试完成任务:

Task Cost
= Σ Request Cost
+ 工具调用成本
+ 检索与存储成本
+ 执行环境成本
+ 重试成本
+ 失败返工成本
+ 必要的人工介入成本

同一个模型的请求单价很低,如果需要更多轮次、更长上下文或频繁重试,最终任务成本仍可能更高。

第三层:成功任务成本

业务真正需要的是成功完成的任务,而不是便宜的调用次数:

Cost per Successful Task
= 总任务消耗成本 / 成功完成的任务数

如果任务分布和每次尝试近似稳定,也可以用下面的方式做快速估算:

Expected Cost per Successful Task
≈ 平均单次任务成本 / 任务成功率

例如:

方案 A:平均每次尝试 1 元,成功率 40%
预期成功任务成本约为 2.5 元

方案 B:平均每次尝试 2 元,成功率 90%
预期成功任务成本约为 2.22 元

方案 B 的单次成本更高,但成功任务成本更低。

Cache Hit Rate 只是局部系数

Prefix Cache 命中率影响的是请求成本中的输入部分:

有效输入单价
= (1 - cache_hit_rate) × uncached_input_price
+ cache_hit_rate × cached_input_price

它不能单独回答整个任务是否便宜,因为任务总成本还取决于:

  • 输入 token 总量。
  • 输出 token 总量。
  • 输入与输出单价。
  • Agent 调用轮数。
  • 工具、检索与执行成本。
  • 重试和失败次数。
  • 任务成功率。
  • 结果质量与人工返工量。
  • 延迟造成的业务成本。

所以更准确的定位是:

Cache hit rate 是输入成本的折扣系数,不是最终成本指标。

缓存命中率低的模型,如果上下文短、输出短、轮数少、成功率高,总成本仍然可能较低。缓存命中率高的模型,如果上下文巨大、输出冗长、轮数多或频繁失败,总成本仍然可能较高。

质量必须先变成可判断的标准

“先看任务质量”不能停留在主观感受,否则成本比较仍然没有共同基准。评估前需要先定义任务的验收条件,例如:

  • 分类、抽取任务的准确率、召回率或格式通过率。
  • 代码任务的测试通过率、需求覆盖率和回归错误数。
  • Agent 任务的目标完成率、工具调用正确率和状态一致性。
  • 内容任务的事实准确性、约束满足度和人工修改量。
  • 生产任务的延迟上限、失败率和人工接管率。

质量不是越高越好,而是先确定业务真正需要的最低可接受门槛。超过门槛后的额外质量是否值得付费,需要另外判断。

正确的比较单位

模型成本实验应该固定或对齐以下条件:

  1. 相同任务目标:模型面对的是同一类业务问题。
  2. 相同验收标准:成功的定义一致。
  3. 相近运行条件:工具、上下文、超时和重试策略可比。
  4. 完整任务链路:记录所有模型请求和外部资源消耗。
  5. 足够任务样本:覆盖简单、常规、困难和异常场景。

然后同时记录:

任务成功率
质量指标
单次请求成本
平均任务轮数
重试与兜底次数
平均任务成本
成功任务成本
端到端延迟
人工介入时间

只有这些指标放在一起,才能判断模型、provider 和 Agent 策略的真实经济性。

优化顺序

成本优化应遵循从结果到局部变量的顺序:

  1. 明确任务目标和质量门槛。
  2. 排除无法稳定完成任务的方案。
  3. 比较达标方案的成功任务成本。
  4. 找出成本主要来自请求、轮数、输出、重试还是工具。
  5. 再优化模型路由、上下文长度、Prefix Cache、输出长度和工具链路。
  6. 优化后重新检查质量与成功率,防止局部降本造成整体退化。

Prefix Cache、prompt 裁剪和小模型路由都只是第五步的优化手段。它们不应该反过来定义系统的根本目标。

最终判断

评估模型成本时,应始终保留三个层级:

请求便宜
≠ 任务便宜
≠ 成功任务便宜

真正应该追求的是:

在达到质量、可靠性和延迟门槛的前提下,
用最低的完整成本成功完成任务。

这是模型成本判断的第一性原理。Token 价格、缓存命中率、上下文长度和输出长度都重要,但它们只能在这个前提下被正确解释。

Back to Blog

Related Posts

View All Posts »