前沿模型的真实成本:为何 $/Mtok 是一个误导性的指标

前沿模型的真实成本:为何 $/Mtok 是一个误导性的指标

$/Mtok 指标在不同供应商之间不可比

列出的每百万标记费用($/Mtok)并不是一个固定值,因为每个模型供应商使用不同的分词器将原始文本转换为计费单元。 由于“标记”并不是固定长度的文本,两款模型即使标价相同,对相同输入的账单也可能大相径庭。实际请求的费用等于内容被拆分后的标记数量乘以每标记的单价。

Claude 的新分词器提升了实际成本

Anthropic 最新的分词器(用于 Sonnet 5、Opus 4.8 和 Fable 5)在典型的英文和代码请求中会产生约 32% 更多的标记,尽管部分模型的标价保持不变。 这实际上相当于一次没有在发票上单独列出的涨价。

按内容类型的分词膨胀

使用 Anthropic 自己的 count_tokens 接口进行测量,切换到新分词器后标记数量的增长如下:

内容 标记数量变化
英文散文 +34%
TypeScript +31%
Rust +29%
Python +23%
JavaScript +20%
JSON 工具模式 +26%
Agent 系统提示 +39%
中文散文 ~0%

Sonnet 5 定价窗口

Sonnet 5 以 $2.00 / $10.00 的引入价上线(低于 Sonnet 4.6 的 $3.00 / $15.00)。虽然这一更低的费率覆盖了标记数量的增加,但价格计划将在 2026 年 9 月 1 日恢复至 $3.00 / $15.00。此后,同样的工作负载费用约比 Sonnet 4.6 高出三分之一。

跨供应商分词差异

以 GPT‑5.x 的 o200k_base 分词器作为 1.00× 基准,Claude 的新分词器效率显著更低,尤其在代码方面。 这种差距在 TypeScript 中最为明显,Claude 对同一文件产生的标记是 GPT 的 1.73 倍。

分词倍率(Claude 新 vs. GPT‑5.x)

内容 倍率
TypeScript 1.73×
Rust 1.58×
JavaScript 1.52×
Python 1.50×
英文散文 1.40×
中文散文 1.44×

TypeScript 是最差的情况,因为 GPT 的 o200k 分词器针对网页语言高度优化,能够更高效地压缩 camelCase 标识符和 JSX 结构,而 Claude 的分词器则不具备此优势。

编码工作负载的有效定价

“有效价格”是指标价乘以分词差异系数。 对于典型的英文编码请求,实际费用差异相当大:

模型 标价(输入/输出) 差异系数 有效价格(输入/输出)
GPT‑5.1 $1.25 / $10.00 1.00× $1.25 / $10.00
Gemini 3 Flash $0.50 / $3.00 1.09× $0.55 / $3.27
Claude Sonnet 5(9 月 1 日后) $3.00 / $15.00 1.50× $4.50 / $22.50
Claude Opus 4.8 $5.00 / $25.00 1.50× $7.50 / $37.50
Claude Fable 5 $10.00 / $50.00 1.50× $15.00 / $75.00

超越输入分词:任务总成本

输入分词只是总账单的一个组成部分;模型的冗长程度、推理消耗以及缓存策略会导致任务总成本远超 1.73× 的输入差距。

关键成本驱动因素

  • 缓存流量: 由于缓存的读写同样按标记计费,分词效率低下会使每一次缓存操作的成本按输入膨胀的相同比例上升。
  • 冗长与思考: 模型为得到答案而生成的输出标记和“思考”标记数量差异巨大。某些模型在同一代理任务上可能使用 2‑4 倍的标记,原因是内部推理循环或更高的冗长度。
  • 代理行为: 工具调用频率、每一步加载的上下文量以及子代理的使用都会显著影响最终账单。

社区洞察

用户和开发者注意到,这些差异在大型代码库中尤为明显。一位用户报告称,约 90k 行的遗留 C++ 代码在 GPT 上产生 1.12M 标记,而在 Claude 上则达到 2.2M。其他人强调,唯一可靠的成本预测方式是衡量“每完成任务的美元数”,而不是依赖费率表。

比较模型成本的建议

  1. 在代表性内容上测试: 将你的特定语言和文件类型样本分别通过各供应商的分词器,得到个人的倍率。
  2. 关注分词器变更: 将分词器更新视为一次价格变动。模型升级(例如 Opus 4.6 到 4.8)即使标价不变,也可能导致约 32% 的成本上升。
  3. 测量基于任务的成本: 使用提供商的 usage 字段计算每个完成任务的费用,这一指标同时囊括了分词、冗长和缓存等因素。

Sources