跳到正文
北京时间
原文
Hacker News 热门(buzzing.cc 中文翻译)· ianberdin·· 2026-07-14精选AI 评分77

前沿模型实际成本:tokenizer 差异导致隐性涨价

前沿模型的实际价格。代币 * 价格,对吧?

AI 导读

同一份 TypeScript 文件在 GPT-5.x 上为 681 个 token,在 Claude 最新 tokenizer 下为 1,178 个,相差 1.73 倍。Anthropic 新 tokenizer 比旧版多产生约 30% 的 token,标价不变,构成隐性涨价。Claude Opus 4.6 与 Opus 4.8 标价同为 $5.00 / $25.00,但新 tokenizer 使同一代码的 token 数增加约 32%。Claude Sonnet 5 的 $2.00 / $10.00 为促销价,2026 年 8 月 31 日后恢复 $3.00 / $15.00,届时相同代码成本将比 Sonnet 4.6 高出约 32%。跨厂商对比中,Claude 新 tokenizer 在代码上比 GPT 多产生 1.50x 至 1.73x 的 token,TypeScript 差距最大。

推荐理由

这篇用实打实的token计数揭开了各厂商定价页藏着的秘密,代码场景下Claude有效价格比GPT贵50-73%,做coding agent的必须按‘每任务成本’而非‘每token标价’来算账。

正文 · AI 翻译

每个模型的定价页面都只显示一个数字:每百万 token 多少美元。这个数字在不同厂商之间并不可比,因为一个“token”并不是固定数量的文本。每个模型的分词器会把同一个文件切成不同数量的片段,而你是按片段付费的。我们统计了相同字节在每个前沿分词器下的结果。同一个 TypeScript 文件在 GPT-5.x 上是 681 个 token,而在 Claude 最新的分词器上是 1,178 个 token——多了 1.73 倍,这还没算任何价格差异。而 Claude 的新分词器相比 Claude 自己上一代分词器,在标价相同的情况下,产生的 token 数大约多了 31%。如果你用 AI 编程智能体来开发,你的工作负载大部分是代码——而这恰恰是差距最大的地方。

Bar chart: the same 2,888-character TypeScript file becomes 681 tokens on GPT-5.x, 718 on Grok 4.5, 788 on Gemini 3 Flash, 898 on Claude's old tokenizer, and 1,178 on Claude's new tokenizer

定价页面隐藏的那个数字

一个模型的账单是两个数字相乘的结果:

成本 =(你的内容变成的 token 数)×(每 token 价格)

定价页面展示的是第二个数字,并把第一个当作常量。它不是常量。它是模型分词器的一个属性——分词器就是把你的文本切成计费单元的组件。两个模型可以标榜同样的“$5.00 / 1M 输入 token”,却对同一段文字给出不同的账单,因为其中一个把这段文字变成了更多的 token。

没有人把“每单位内容对应多少 token”这个数字印出来,所以也没有人去比较它。于是我们测量了它。两个发现:

  • 同一厂商对比: Anthropic 的新 tokenizer 在相同代码上产生的 token 比其上一代多约 30%,而标价不变。这是一次隐性涨价。
  • 跨厂商对比: 在代码上,Claude 的新 tokenizer 产生的 token 是 GPT 的 1.50 倍到 1.73 倍——而 TypeScript,这一编程智能体写得最多的语言,是最糟糕的情况。

我们是如何测量的

我们选取了 16 个真实样本:英文散文、一个 HTML 页面、JavaScript、Python、TypeScript 和 Rust 文件、JSON 工具 schema 和工具结果、中文聊天和散文、符号密集的文本,以及我们自己线上运行的智能体系统提示词。我们在每个模型的真实 tokenizer 下逐字节地对每一个进行计数。没有生成,没有估算——只有 token 计数:

  • Anthropic(Claude) - Anthropic 的官方 count_tokens 端点。权威可靠:它与 Anthropic 计费所依据的计数完全一致。
  • OpenAI(GPT)- 文档中记载的o200k_basetokenizer,通过tiktoken。对于最新的模型,我们并未盲目相信:我们对 GPT-5.1、GPT-5.5 和 GPT-5.6 Sol 发起了真实的 API 调用,并读取了实时的usage计数,使用长减短的差值来抵消请求框架的影响。三者均完全吻合o200k_base(比值 1.0000)。
  • Google(Gemini)和 xAI(Grok)——各提供商自己的 token 计数端点。

在整篇文章中,GPT 的 o200k 是 1.00x 的参考标尺。它是合适的标尺,因为它不会变动:o200k 已被冻结并公开记录了很久。Claude 的 tokenizer 才是不断变化的那部分。有两个模型被刻意排除在外:DeepSeek 和 GLM。对于它们,我们只有粗略的“字符数除以四”估算,而不是真正的 tokenizer,而编造一个数字恰恰是这篇文章存在的意义所在——就是为了点名这种做法。

发现 1:标价相同,token 数多约 30%

这是数据集中最干净的案例,因为价目表上没有任何东西变动。Claude Opus 4.6 和 Opus 4.8 共享完全相同的 $5.00 / $25.00 价格。唯一的改变是 tokenizer:旧版随 Sonnet 4.6 和 Opus 4.6 发布,新版随 Sonnet 5、Opus 4.8 和 Fable 5 发布。每一行的字节数相同,同一家厂商,在 Anthropic 自己的端点上计数:

内容旧 tokenizer新 tokenizer变化
英文散文(2,115 字符)476636+34%
HTML 页面(3,195 字符)1,1311,302+15%
JavaScript(1,933 字符)659794+20%
Python(2,251 字符)8311,022+23%
TypeScript(2,888 字符)8981,178+31%
Rust(2,924 字符)1,0191,312+29%
JSON 工具 schema(9,948 字符)2,6313,306+26%
我们的智能体系统提示词(42,661 字符)10,76114,953+39%
中文散文(379 字符)435433~0%

按照真实智能体请求的构成方式把这些混合起来——主要是英文系统提示词、工具 schema、代码和 JSON——新的 tokenizer 每个请求大约多出 +32%。注意最后一行:在中文上,几乎没有任何变化。这种膨胀是英文和代码带来的效应。

名不副实的“降价”

这重新解读了一个看似利好的标题。Claude Sonnet 5 以 $2.00 / $10.00 的价格发布,低于 Sonnet 4.6 的 $3.00 / $15.00。但这是 introductory price(引入期价格),将于 2026 年 8 月 31 日结束。在引入期内,账目大致相互抵消:Sonnet 5 生成的 token 多约 32%,但每个 token 收费低三分之一,因此总体略便宜。到了 9 月 1 日,标价弹回 $3.00 / $15.00——而 +32% 的 token 膨胀依然存在。从那天起,同样的代码在 Sonnet 5 上的花费比 Sonnet 4.6 高出约 32%,而标价完全相同。这个折扣是过渡期的缓冲,而非降价。

我们对照真实账单进行了验证

token 计数器在被计费之前只是一个承诺,因此我们还发起了真实的付费请求(max_tokens: 1),并读取了每个提供商实际收取的 usage.input_tokens。对于相同的内容:Opus 4.6 计费 2,541 个输入 token,Opus 4.8 计费 3,191——各自与其 count_tokens 预测精确到每个 token 相符。这种膨胀体现在账单上,而不仅仅是在估算器里。

我们故意把额外的那次调用花在最贵的模型上,因为"相同的 tokenizer,没什么特别的"正是这篇文章所质疑的那类说法。Fable 5 对相同内容计费 3,191 个输入 token——与 Opus 4.8 完全相同——因此 Fable 运行的是同一个新 tokenizer,并按其精确计数计费。没有隐藏的按 token 附加费:Fable 贵是因为它的标价($10 / $50),而不是因为某种秘密的 token 税。这次验证的总成本约为 $0.08。

发现 2:差距在代码上最大

现在来看跨厂商的视角。下面每个数字都是同一文件下 GPT token 数量的倍数——GPT 的 o200k 是 1.00x 的标尺,所以 1.20x 意味着“比 GPT 多 20% 的 token”。Claude 的新旧分词器并排展示,因此你既能看到新分词器增加了多少,也能看到 Claude 此前已经比 GPT 高出多少:

内容Claude(新)Claude(旧)Gemini 3 FlashGrok 4.5
TypeScript1.73x1.32x1.16x1.05x
Rust1.58x1.22x1.19x1.05x
JavaScript1.52x1.26x1.23x1.11x
Python1.50x1.22x1.20x1.09x
HTML 页面1.36x1.18x1.08x1.04x
英文散文1.40x1.05x1.01x1.00x
中文散文1.44x1.45x0.85x0.86x
中文对话1.53x1.55x0.91x0.92x

代码行与其他所有内容清晰地分离开来。TypeScript 的差距最大,达到 1.73x,但它并非孤例:Rust 1.58x、JavaScript 1.52x、Python 1.50x——全都远高于英文散文的 1.40x。这不是 TypeScript 的偶然现象,而是整个代码类别的情况,其中 TypeScript 位居榜首。而代码正是 AI 编程智能体整天产出的东西,所以 1.50-1.73x 这个区间才是对应你账单的那个——而不是英文段落那更温和的 1.40x。

为什么偏偏是 TypeScript

因为 GPT 的 o200k 在这方面异常高效:大约 每个 token 4.24 个字符,这是一个大量用网页 JavaScript 和 TypeScript 训练出来的 tokenizer 的指纹——在这类语言中,camelCase 标识符和 JSX 模式会坍缩成单个 token。这种效率在 Rust 上就下滑了(约 3.51 字符/token),而 Claude 的 tokenizer 在两者上都同样密集。TypeScript 是那个异类,因为一家厂商把它的 tokenizer 专门针对你写的那种语言做了调优,而另一家没有。差距最大的地方,恰恰正是 GPT 最强的地方。

中文那几行讲的是另一个故事

在中文上,Claude 比 GPT 高出约 1.45-1.55 倍——但这是两个 tokenizer 都如此。旧版:435 个 token,而 GPT 是 300。新版:433。这个税并不是新版本带来的;它是 Claude 家族在 CJK 上长期存在的劣势,而新的 tokenizer 并没有触及这一点。(Gemini 在中文上其实胜过 GPT:256 个 token,而 GPT 是 300。)教训不是"某个模型永远最便宜"。而是哪个 tokenizer 在向你收税、收得多重,取决于你写的是什么。

这对价格意味着什么

把公开标价乘以实测的偏差,你就得到有效价格——也就是你处理同样工作实际支付的费用。这里的偏差是一个真实英文编程请求的混合乘数,以 GPT 的 o200k 为基准归一化。GPT 那几行按标价计算;其他所有模型则按它们把同样内容切分成多出(或少出)多少 token 来缩放:

模型标价
输入 / 输出($/Mtok)
偏差实际
输入 / 输出($/Mtok)
GPT-5.1$1.25 / $10.001.00x(基准)$1.25 / $10.00
GPT-5.5$5.00 / $30.001.00x$5.00 / $30.00
GPT-5.6 Sol$5.00 / $30.001.00x(已验证)$5.00 / $30.00
Grok 4.5$2.00 / $6.001.03x$2.06 / $6.18
Gemini 3 Flash$0.50 / $3.001.09x$0.55 / $3.27
Claude Sonnet 4.6$3.00 / $15.001.14x(旧 tokenizer)$3.42 / $17.10
Claude Sonnet 5 (intro)$2.00 / $10.001.50x(新 tokenizer)$3.00 / $15.00
Claude Sonnet 5 (from Sep 1)$3.00 / $15.001.50x$4.50 / $22.50
Claude Opus 4.6$5.00 / $25.001.14x(旧 tokenizer)$5.70 / $28.50
Claude Opus 4.8$5.00 / $25.001.50x(新 tokenizer)$7.50 / $37.50
Claude Fable 5$10.00 / $50.001.50x(新 tokenizer)$15.00 / $75.00

看了几行。Opus 4.6 和 4.8 标价同为 $5.00 / $25.00,但实际价格相差约 32%——这是发现 1,现在以美元计。GPT-5.5 和 GPT-5.6 Sol 的标价和实际价格都相同,因为它们共用经过验证的 tokenizer:这两个 GPT 档位的差异在于能力,而非隐藏的 token 税。Gemini 3 Flash 的实际价格仍然最低——它的 tokenizer 比 GPT 的略重,但标价足够低,因此无关紧要。

一个方向一致的独立数据点:Ploy 本周发布了向 GPT-5.6 Sol 的生产迁移,并报告称相同构建下输入 token 为 1.70M,而 Claude Opus 4.8 为 2.60M——大约少了 35%。这是真实的账单,不是合成探测,它把更精简的 tokenizer 与模型自身的冗长度混在了一起。测量方式不同,方向相同。

诚实的区间是:1.4 倍到 1.73 倍,而不是“2-4 倍”

你会看到有人声称 Claude 使用的 token 数量是 GPT 的 2 到 4 倍。我们的测量结果并不支持这一说法,而夸大这一点反而会削弱真正要表达的观点。Claude 的新 tokenizer 对比 GPT 的 o200k,按内容类型划分:

  • 英文散文、HTML、JSON:约为 1.36 倍到 1.42 倍。
  • 代码(Python、JavaScript、Rust、TypeScript):约为 1.50 倍到 1.73 倍,TypeScript 的差距最大。
  • 中文及符号密集型文本:约为 1.44 倍到 1.53 倍。

这是真实存在的、有实际影响的,也值得纳入成本考量——但它是有限的。我们把 TypeScript 的数字放进标题,是出于一个诚实的原因:它是这一区间的上限,而且它是 AI 编程智能体整天都在处理的内容,所以这个数字对应的是真实的账单。展示你实际的工作负载并不是挑樱桃——但“Claude 在所有内容上都是 1.73 倍”会是错误的,我们也没有这样声称。精确才是关键:如果散文的诚实数字是 1.4 倍,把它说成 3 倍会让整个论点轻易被驳倒。

如果你构建智能体,英文决定了你的税负

一个内容为中文的聊天机器人,最应该关心的是上面那些 CJK 行。但在一个编码智能体中,几乎每个请求都由英文脚手架主导:系统提示词、工具 schema、代码、JSON。在我们的混合样本中,无论用户的聊天消息是英文还是中文,Claude 的新 tokenizer 都保持在 GPT 的约 1.50 倍——与数万个 token 的脚手架相比,单行聊天内容不过是舍入误差。对于智能体而言,无论打字的是谁,tokenizer 在英文和代码上的表现才是真正重要的数字。

如何真正比较模型价格

  • 用你自己的内容来比较,而不是看标价。你的语言和文件类型决定了倍率。在信任费率表之前,先用具有代表性的样本跑一遍各个 tokenizer。
  • 把 tokenizer 变更当作价格变更来对待。 当某家厂商以“同样的价格”发布新模型时,要检查 tokenizer 是否变了。Opus 4.6 到 4.8 是约 32% 的涨幅,却没有任何明示条目。
  • 以每任务美元来衡量,而不是每 token 美元。 “这次构建实际花了多少钱”把 tokenizer 和模型的啰嗦程度合并在一起。提供商自己的 usage 字段才是真实依据。
  • 把 $/Mtok 当作开场白,而不是答案。 它必要、有用——但无法跨 tokenizer 比较。

这一切并不能说明某一个模型是普遍正确的。GPT-5.x 在英语和代码上是 token 用量精简的选择;Gemini 3 Flash 实际使用起来便宜得惊人;Claude 的模型即便运行时要消耗更多 token,也凭质量赢得了自己的位置。诚实的解读很简单:你该拿来比较的价格,应当是你实际支付的那个价格——是在经过 tokenizer 之后,而不是之前。


来源(请自行核实标价): Anthropic 定价(anthropic.com/pricing)、OpenAI 定价(platform.openai.com/docs/pricing)、Google Gemini API 定价(ai.google.dev)、xAI 定价(docs.x.ai)。token 计数来自 Anthropic 的 count_tokens 端点、OpenAI 的 o200k_base(已对照实时 API 用量核实),以及 Google 和 xAI 的计数端点。生成这些计数没有产生任何文本。

来源:Hacker News 热门(buzzing.cc 中文翻译) · playcode.io