前沿模型的真实价格。代币数乘以价格,对吧?

Hacker News Top 新闻

摘要

文章揭示了由于分词器差异,使用前沿模型的实际成本有显著不同,TypeScript在Claude上比GPT多消耗高达73%的代币,而这些信息并未在定价页面上显示。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/07/13 19:54

# 同样的 TypeScript 代码在 Claude 上比 GPT 多消耗 73% 的 Token | Playcode 博客 来源:https://playcode.io/blog/real-price-of-frontier-models 每个模型的定价页面上都显示着一个你本该比较的数字:每百万 Token 的美金价格。把两个并排放,一个看起来更便宜。但这种比较是有缺陷的——如果你用 AI 编码智能体构建应用,那这种缺陷会往最贵的方向发展。价格是按 Token 计算的,但“Token”并不是固定的文本量:每个模型的 Tokenizer 会将同一份文件切割成不同数量的片段,而你按片段付费。下面这个数字才会出现在你的账单上。同一份 TypeScript 文件,**在 GPT-5.x 上是 681 个 Token**,**在 Claude 最新的 Tokenizer 上是 1178 个 Token**——**多了 1.73 倍**,并且**比 Claude 自己之前的 Tokenizer 增加了 31%**,这还没算上价格差异。作为开发者,你的真实工作负载基本上就是 TypeScript,而 TypeScript 恰恰是差距最大的地方。(英文散文的差距大约为 1.4 倍,相对温和——下文会解释原因。) 柱状图:同一份 2,888 字符的 TypeScript 文件,在 GPT-5.x 上变成 681 个 Token,在 Grok 4.5 上是 718 个,在 Gemini 3 Flash 上是 788 个,在 Claude 旧 Tokenizer 上是 898 个,在 Claude 新 Tokenizer 上是 1178 个。 ## 定价页面隐藏的数字 模型的账单是两个数字相乘的结果: > 成本 = (你的内容转化成的 Token 数量) × (每个 Token 的价格) 定价页面只展示第二个数字,并把第一个数字当作常量。但它并不是常量。它是模型 Tokenizer 的属性——Tokenizer 负责将你的文本切分成模型实际计费的单元。两个模型可以宣传完全相同的“5.00 美元 / 1M 输入 Token”,但同一段文字却会给你不同的账单,因为其中一个模型会把那段文字切成更多的 Token。 没有人公布“每单位内容的 Token 数”,所以也没有人比较它。这就是整个错觉。要看到真实价格,你必须测量 Tokenizer,然后将它乘回去。 ## 价目表隐藏的两层成本 价目表显示一个价格,却隐藏了其下的两层成本。这两层成本都在下面测量,都会出现在你的账单上,但定价页面上却没有任何地方显示它们。请分清这两个基准,因为它们是不同的比较,数字只有在区分后才能对得上。 **第一层——相同标价下的隐形涨价。**这是 Anthropic 的新 Tokenizer 与**它自己之前的 Tokenizer** 的比较——同厂商、同类对比。Claude Opus 4.6 和 Opus 4.8 的价目表完全一样,都是 5.00 美元 / 25.00 美元,但 4.8 搭载了更新的 Tokenizer,它将同一段代码转化成大约 **29-32% 更多的 Token**:TypeScript 增加 31%(从 898 到 1178),Rust 增加 29%(从 1019 到 1312)。“相同价格,新模型”悄悄让你多花大约 30% 的钱,而且这个涨幅从未作为单独项目打印出来。 **第二层——在你实际编写的语言上最严重。**那大约 30% 是平均值。现在,将新 Claude Tokenizer 与市场上最精简的 Tokenizer——GPT 的 `o200k`——在 TypeScript 上进行比较,而 TypeScript 正是 AI 编码智能体产生的主要内容。差距是 **73%**(1178 对 681 = 1.73 倍)。这是跨厂商的比较,Anthropic 从未声称与 GPT 的 Token 数一致——所以把它看作放大器,而不是指责:它把抽象的“$/Mtok”变成了你具体工作负载上的真实损害。价目表无法向你显示这两层成本。 ## 我们如何测量 我们选取了 16 个真实样本——英文散文、一个 HTML 页面、JavaScript、Python、TypeScript 和 Rust 文件、JSON 工具模式和工具结果、中文聊天和散文、一段符号密集的文本,以及我们自己的实时智能体系统提示——并对每个样本逐字节计数,使用每个模型的**真实** Tokenizer。没有生成,没有账单估算:只有 Token 计数。 - **Anthropic (Claude)**——通过 Anthropic 官方的 `count_tokens` 端点计数。这是权威的;它与 Anthropic 实际计费的计数相同。 - **OpenAI (GPT)**——通过 OpenAI 文档化的 `o200k_base` Tokenizer,使用 `tiktoken` 计数。我们并没有盲目相信最新模型:我们向 GPT-5.1、GPT-5.5 和 GPT-5.6 Sol 发起了真实的最小 API 调用,读取实时的 `usage` Token 计数,并使用长减短的差值来消除请求框架的影响。三者都与 `o200k_base` 完全匹配(比值为 1.0000)。Tokenizer 是经过验证的,不是假设的。 - **Google (Gemini) 和 xAI (Grok)**——通过各自提供商的 Token 计数端点。 我们以 GPT 的 `o200k` 作为 1.00 倍参考,所有跨厂商的比率都读作“与 o200k 相比的 Token 倍数”。选择它作为标尺正是因为它不变:`o200k` 已经冻结并公开记录很长时间,是一个稳定可验证的基准——而 Claude 的 Tokenizer 是不断变化的部分。我们有意将两个模型排除在比较表之外:DeepSeek 和 GLM。我们只对这些模型有粗略的“字符数除以四”的估计,没有真实的 Tokenizer,而捏造的数字正是这篇文章要揭露的问题。它们要么被标注为估计值,要么根本不出现。 ## 发现 1:第一层,相同标价下的隐形涨价 第一层完整呈现,这是数据集中最清晰的情况,因为价目表上没有任何变化——只有 Tokenizer 变了。Claude Opus 4.6 和 Opus 4.8 共享完全相同的 5.00 美元 / 25.00 美元标价;4.8 只是搭载了更新的 Tokenizer,并悄无声息地为相同的代码收取更多费用。以下是将新 Tokenizer 与旧 Tokenizer 在每个样本上的对比——每一行的字节数相同,同厂商,通过 Anthropic 自己的 `count_tokens` 端点测量: | 内容(相同字节) | 旧 Tokenizer(Sonnet 4.6 / Opus 4.6) | 新 Tokenizer(Sonnet 5 / Opus 4.8 / Fable 5) | 变化 | | --- | --- | --- | --- | | 英文散文(2115 字符) | 476 | 636 | **+34%** | | HTML 页面(3195 字符) | 1131 | 1302 | **+15%** | | JavaScript(1933 字符) | 659 | 794 | **+20%** | | Python(2251 字符) | 831 | 1022 | **+23%** | | TypeScript(2888 字符) | 898 | 1178 | **+31%** | | Rust(2924 字符) | 1019 | 1312 | **+29%** | | JSON 工具模式(9948 字符) | 2631 | 3306 | **+26%** | | 我们渲染的智能体系统提示(42661 字符) | 10761 | 14953 | **+39%** | | 中文散文(379 字符) | 435 | 433 | 约 0% | 按照真实智能体回合的组成混合——主要是英文系统提示、工具模式、代码和 JSON——新 Tokenizer 在整个请求上大约增加了 **+32%**。注意最后一行:在中文上,新 Tokenizer 几乎没有变化。+32% 是英文和代码的效果。 这重新诠释了一个看似降价的头条新闻。Claude Sonnet 5 推出时的价格为 2.00 美元 / 10.00 美元——低于 Sonnet 4.6 的 3.00 美元 / 15.00 美元。但这个入门价格仅在 2026 年 8 月 31 日之前有效,之后将恢复为标准价格 3.00 美元 / 15.00 美元。在入门价格窗口期间,较低的标价勉强抵消了通货膨胀:Sonnet 5 比 4.6 多产生约 32% 的 Token,但以 2.00 美元的价格计算,每个 Token 便宜三分之一,因此总体略便宜。入门价结束的那天,标价跳回 3.00 美元,而 +32% 的 Token 膨胀保持不变——因此相同代码在 Sonnet 5 上的价格比 4.6 高出约 32%,标价却都是 3.00 美元。折扣是过渡期的缓冲,而不是持续性的降价。 ## 我们阅读了实际账单,包括最贵的模型 Token 计数器在你被收费之前只是一个承诺。因此,我们并没有止步于 `count_tokens`——我们发起了真实的、已计费的请求(`max_tokens: 1`),并读取了提供商实际收费的 `usage.input_tokens`。对于相同的内容,Opus 4.6 收取了 **2,541** 个输入 Token,而 Opus 4.8 收取了 **3,191** 个——每个都与它的 `count_tokens` 预测完全匹配。相同标价下的涨价不是估算器的产物;它就在账单上,对于完全相同的字节,大约多了四分之一。 我们故意在最贵的模型上多花了一次调用,因为“相同的 Tokenizer,没什么特别的”正是这篇文章不信任的那种说法。Fable 5 对相同内容收取了 **3,191** 个输入 Token——与 Opus 4.8 和 Sonnet 5 相同——因此 Fable 使用了相同的新 Tokenizer 并按实际计数收费,**没有隐藏的每 Token 附加费**。Fable 的昂贵在于它的标价(10 美元 / 50 美元),而不是因为秘密的 Token 税。整个验证花费了大约 **0.08 美元**:计数器是诚实的,通货膨胀是真实的,即使是最贵的模型也老老实实。 ## 发现 2:底层之下的底层,在你编写的代码上最严重 这是跨厂商的比较,这里 GPT 的 `o200k` 是 1.00 倍的标尺。每个单元格表示该模型的 Token 数量相对于 GPT 对同一文件的 Token 数量的倍数——因此 1.20x 意味着比 GPT 多 20% 的 Token。我们并列展示 Claude 的旧 Tokenizer 和新 Tokenizer,这样两层成本一目了然:Claude 原本就比 GPT 高多少,以及新 Tokenizer 又增加了多少。代码行与其他内容行清晰分离。 | 内容(相同字节) | GPT-5.x o200k(1.00x 标尺) | Grok 4.5 | Gemini 3 Flash | Claude(旧) | Claude(新) | | --- | --- | --- | --- | --- | --- | | TypeScript(2888 字符) | 1.00x | 1.05x | 1.16x | 1.32x | **1.73x** | | Rust(2924 字符) | 1.00x | 1.05x | 1.19x | 1.22x | **1.58x** | | JavaScript(1933 字符) | 1.00x | 1.11x | 1.23x | 1.26x | **1.52x** | | Python(2251 字符) | 1.00x | 1.09x | 1.20x | 1.22x | **1.50x** | | HTML 页面(3195 字符) | 1.00x | 1.04x | 1.08x | 1.18x | **1.36x** | | 英文散文(2115 字符) | 1.00x | 1.00x | 1.01x | 1.05x | **1.40x** | | 中文散文(379 字符) | 1.00x | 0.86x | 0.85x | 1.45x | **1.44x** | | 中文聊天(117 字符) | 1.00x | 0.92x | 0.91x | 1.55x | **1.53x** | 你不会处理散文——你处理的是代码,而每一个代码样本都远高于它。TypeScript 是最宽的,达到 **1.73x**,而且它并非孤例:**Rust 1.58x**,**JavaScript 1.52x**,**Python 1.50x**——都远高于英文散文的 1.40x。GPT 在每一行代码上都设定了 1.00x 的底线;就连 Claude 的旧 Tokenizer 也已经高出 1.22x 到 1.32x,而新的 Tokenizer 将其扩大到 1.50x-1.73x。因此,这不是 TypeScript 的偶然现象:这是整个代码类别,TypeScript 位居首位——而代码正是 AI 编码智能体整天生产的内容,所以这个范围对应的是你的账单,而不是英文段落那温和的 1.4x。 为什么偏偏是 TypeScript?因为 GPT 的 `o200k` 对它的处理异常高效——大约 **每个 Token 4.24 个字符**,这是一个经过大量网络 JavaScript 和 TypeScript 训练的 Tokenizer 的特征,其中驼峰式标识符和 JSX 模式会压缩成单个 Token。这种效率在 Rust 上会下降(大约每个 Token 3.51 个字符),而 Claude 的 Tokenizer 对两者保持相对密集。因此,TypeScript 是异常值,因为一个供应商针对你编写的语言优化了其 Tokenizer,而另一个没有——而不仅仅是代码本身紧凑。差距恰恰在 GPT 最强的地方最大。 在非拉丁文字上的形态再次变化。在中文上,Claude 大约是 GPT 的 1.4-1.5 倍——但这对于**旧和新**的 Claude Tokenizer 都是如此。旧 Tokenizer 将中文散文变为 435 个 Token,而 GPT 是 300 个;新的为 433 个——无论哪种方式都是大约 1.45 倍。这里的税不是新版本带来的,而是 Claude 家族在 CJK 上长期存在的劣势,新 Tokenizer 并没有修复。(Gemini 实际上在中文上略优于 GPT——256 个 Token 对 GPT 的 300 个。)教训不是“一个模型总是最便宜的”。而是**哪个 Tokenizer 向你征税,以及征多少,完全取决于你写的是什么。** ## 影响的真实大小:1.4x 到 1.73x,而不是 2-4x 你会看到有人声称 Claude 使用的 Token 是 GPT 的“2 到 4 倍”。我们的测量不支持这一点,夸大其词反而会削弱真正的论点。Claude 的新 Tokenizer 与 GPT 的 `o200k` 相比,按内容类型: - **英文散文、HTML、JSON:**大约 **1.36x 到 1.42x**。 - **代码——Python、JavaScript、Rust、TypeScript:**大约 **1.50x 到 1.73x**,TypeScript 最宽。 - **中文和符号密集文本:**大约 **1.44x 到 1.53x**。 真实、影响重大,值得计入成本——但在有限范围内。TypeScript 的 1.73x 是我们在真实 Tokenizer 上发现的最大差距,而不是你可以到处假设的底线——其余代码在 1.50x 到 1.58x 之间,英文散文保持在 1.4x 左右。我们把 TypeScript 的数字放在前面有一个诚实的理由:它是范围的上限,**而且**是 AI 编码智能体整天处理的内容,所以它是映射到真实账单的数字。这是突出你的实际工作负载,而不是选择性挑数据——声称“Claude 在所有内容上都是 1.73x”是错误的,我们也不这样宣称。精确是关键:如果散文的真实数字是 1.4x,却说是 3x,那整个论点就容易被驳倒。 ## 实际价格是多少 将公开标价乘以测量到的 Tokenizer 差异,就得到了每单位真实内容的有效价格——你处理相同工作实际支付的费用。下面的“差异”是一个真实的英文编码回合的混合倍数,以 GPT 的 `o200k`(1.00x)为基准标准化——就是之前那个固定标尺——因此 GPT 的行按标价定价,其他人根据他们对相同内容产生多少(或少)Token 进行缩放。标价是各提供商自己的公开列表价格;来源见下方链接。 | 模型 | 公开标价 输入/输出($/Mtok) | Tokenizer(已测量) | 差异 | 有效价格 输入/输出($/Mtok) | | --- | --- | --- | --- | --- | | GPT-5.1 | $1.25 / $10.00 | OpenAI o200k | 1.00x(标尺) | $1.25 / $10.00 | | GPT-5.5 | $5.00 / $30.00 | OpenAI o200k | 1.00x | $5.00 / $30.00 | | GPT-5.6 Sol | $5.00 / $30.00 | OpenAI o200k(已验证) | 1.00x | $5.00 / $30.00 | | Grok 4.5 | $2.00 / $6.00 | xAI 计数端点 | 1.03x | $2.06 / $6.18 | | Gemini 3 Flash | $0.50 / $3.00 | Google 计数端点 | 1.09x | $0.55 / $3.27 | | Claude Sonnet 4.6 | $3.00 / $15.00 | Anthropic 旧版 | 1.14x | $3.42 / $17.10 | | Claude Sonnet 5*(入门价)* | $2.00 / $10.00 | Anthropic 新版 | 1.50x | $3.00 / $15.00 | | Claude Sonnet 5*(标准价,从 9 月 1 日起)* | $3.00 / $15.00 | Anthropic 新版 | 1.50x | $4.50 / $22.50 | | Claude Opus 4.6 | $5.00 / $25.00 | Anthropic 旧版 | 1.14x | $5.70 / $28.50 | | Claude Opus 4.8 | $5.00 / $25.00 | Anthropic 新版 | 1.50x | $7.50 / $37.50 | | Claude Fable 5 | $10.00 / $50.00 | Anthropic 新版 | 1.50x | $15.00 / $75.00 | 阅读几行。GPT 是标尺,所以它的行按标价定价。Opus 4.8 和 Opus 4.6 共享 5.00 美元 / 25.00 美元的标价,但有效价格相差约 32%——相同标价下的第一层成本,现在以美元显示。GPT-5.5 和 GPT-5.6 Sol 具有相同的 5.00 美元 / 30.00 美元标价和相同的有效价格,因为它们共享已验证的 o200k Tokenizer——这两个 GPT 层级在能力和速度上不同,而不是因为隐藏的 Tokenizer 税。Gemini 3 Flash 在效果上仍然是最便宜的:它的 Tokenizer 比 GPT 稍重(1.09x),但其标价足够低,所以无关紧要。 一个独立的、真实世界的数据点,方向相同:另一个团队 Ploy 本周发布了他们迁移到 GPT-5.6 Sol 的生产环境,并[报告](https://ploy.ai/blog/migrating-a-production-ai-agent-to-gpt-5-6)说,对于相同的构建,它消耗了 170 万个输入 Token,而 Claude Opus 4.8 消耗了 260 万个——大约少 35%。这是真实的账单,不是人工探测,它混合了更精简的 o200k Tokenizer 和模型自身的冗长度。不同的测量,相同的方向。 ## 对于构建智能体的人的一个转折 如果你编写一个**内容**为中文的聊天机器人,那么发现 2 中的语言特定差距就是你的主要问题。但如果你构建一个编码智能体,每个请求的绝大部分是英文:系统提示、工具模式、代码、JSON。这些有效载荷决定了税。在我们的混合中,无论用户的消息是英文还是中文,Claude 的新 Tokenizer 都保持约 1.50x GPT——因为单行聊天内容与数万个英文脚手架 Token 相比,只是四舍五入的误差。对于智能体,Tokenizer 在英文和代码上的行为才是重要的数字,不管是谁在打字。 ## 如何真正比较模型价格 - **根据你的内容而不是标价进行比较。**你的语言和文件类型决定了倍数。在信任价目表之前,先对代表性样本运行每个 Tokenizer。 - **Tokenizer 的变化就是无声的价格变化。**当供应商发布

相似文章

GPT-5.5 或许消耗更少的 token,但它始终烧掉更多的钱

Reddit r/artificial

尽管 OpenAI 声称 GPT-5.5 在 token 效率上有所提升,但实际使用成本仍比 GPT-5.4 高出 49% 至 92%;与此同时,Anthropic 的 Claude Opus 4.7 对于较长提示词的实际成本也上涨了 12% 至 27%。这一现象反映出前沿模型价格普遍上涨的趋势,而两家公司均面临巨额预计亏损。

Claude Token Counter,现已支持模型对比

Simon Willison's Blog

Simon Willison 升级了他的 Claude Token Counter 工具,增加了对不同 Claude 模型之间的 token 数量对比功能。升级后的工具发现,Claude Opus 4.7 采用的新分词器相比 Opus 4.6 对相同文本需要多 1.46 倍的 token,这导致成本增加约 40%,尽管两个模型定价相同。

每百万Token的价格毫无意义

Hacker News Top

本文认为,由于分词器和Token效率的差异,按每百万Token价格比较AI模型会产生误导。文章提供了一个基准成本分析,表明每Token价格较高的模型在完成每个任务时反而可能更便宜,其中DeepSeek V4 Pro是一个突出的成本效率异常值。