同一句话,粤语要贵 24%:我量了 236 对双语文档和 4 种写法

2 阅读4分钟

先说结论,三个数字:

  • 同一个意思写成粤语,比简体多 24%  的 token(o200k_base,GPT-4o 及之后)
  • 换一代 tokenizer,同一段简体文本从 128 → 83 token(−35% )
  • 换到旧的 cl100k_base(GPT-4 那代),同一篇中文文档比英文贵 67% ,其中 108 个 token 是"半个字"

这些不是估算,是跑出来的。下面说怎么量、为什么、以及哪些结论能拿去用。

一、句级:同一句话,四种写法

6 条香港劳资/法律问句,每句手写四种写法(不是机翻),喂给两个真实 tokenizer:

TokenizerEnglish简体繁體粵語
o200k_base(GPT-4o 及之后)838398103
cl100k_base(GPT-4 那代)84128149150

两件事:现代 tokenizer 上,繁體/粵語仍比简体贵 18–24% ;而旧一代上,中文整体比英文贵 52%(简)到 79%(粤)。

二、文档级:236 对真人写的双语文档

句子样本太小,所以我拿了一套现成的平行语料 —— 某个开源项目的中英文档,236 对、同一份内容两个语言版本、真人写的:

指标结果
总 tokensEN 980,107 / ZH 1,037,826 → 1.059×
每对中位数1.111×(p10 1.039× / p90 1.209×)
中文更便宜的对0 / 236
偏移最大 / 最接近1.43× / 1.00×

有意思的地方:整体只有 +6%,中位数却是 +11% 。因为最大的几篇文档(3 万、5 万 token)几乎 1.00× —— 它们是代码和标识符为主,两种语言完全一样。

所以"+6%"不是税率,"+31%"才是。  挑出偏移最大的那篇(一篇纯散文的升级指南)实测:

TokenizerENZH差ZH 的归因
o200k_base221290+31.2%10 半个字 / 120 单字 / 47 多字
cl100k_base223373+67.3%108 半个字 / 138 单字 / 21 多字

注意那两个文件的字节数几乎一样(1075 vs 1055),token 却差 31% 到 67%。用字节数或字数估成本,会系统性错判。

三、为什么贵:不是语言,是词表

o200k_base 的 20 万个 token 里:

  • 可带前导空格的英文词块:约 105,898 个
  • 含汉字的 token:只有 7,532 个

词表没收录的字只能被拆开。饿 会被切成两个 token(字节 e9 | a5bf)—— 每半个字一个 token。粤语口语词(咗、嘅、出糧)基本不在词表里,所以最贵。

顺带一个反直觉的对照:DeepSeek 的 tokenizer 上,简体比英文更便宜(64 vs 83,−23%),繁体和粤语才和英文打平。也就是说"中文税"的税率取决于谁训练的词表,不是语言本身。

四、两条能拿去用的结论

  1. 换 tokenizer 比换语言划算:简体从 cl100k 到 o200k 省 35%,而把繁體改写成简体只省 8–14%(我实测过一篇真实 prompt:866 → 697 token,Qwen3.5-9B 口径 −19.5%)。改 tokenizer 是一次工程动作,改文字是持续成本。
  2. 先量,再决定要不要改:我拿这套量法评估过"砍掉 prompt 里 27% 的邻类定义块"——确实省 19.5%,但配对检验显示类别正确率的点估计从 82% 掉到 69%(p=0.688,样本不够)。结论是不砍:省的是小数,掉的是数据质量。

五、工具

上面所有数字来自一个本地工具,MCP 协议,不联网、不上传文字:

bash

npx -y yue-token-cost

三个能力:数 token 与成本、四种书写系统并排对比、逐 token 拆分并标出"半个字"。

基准是生成物不是手写的,Python 和 Node 两套独立实现逐行对断言(48 行),CI 里跑。所有边界都写在 BENCHMARK.md 末尾:只有 6 条句子、比值不是普适常数、繁体/简体完全相同的条目故意保留。

六、邀请

把你平时给 AI 的那段 prompt 丢进去量一下,再换成英文看看差多少。如果你算出来的数和我差很多,或者你的语料是另一种情况(比如全是代码、全是口语),把数字发我 —— 我更想要的是"我的结论哪里不成立"。