不,中文对 LLM 并不比英文更省 token
一位中文母语者测试“中文字符更省 token”这个流行说法。跨六种 tokenizer,包括 Qwen、GLM、DeepSeek 等中文优先模型,英文每次都使用更少 token。本文讨论数据、BPE 机制,以及为什么字符数和 token 数不是一回事。
AI 驱动 · 每小时限 20 次请求

中文互联网里一直有个说法,大概是:“用中文和 LLM 交流更省 token。一个汉字信息量更大,所以 token 更少,也更省钱。”我在知乎、微信文章和技术论坛都见过。它听起来很合理。中文更紧凑,同样意思字符更少,所以应该更高效。
但我是中文母语者,对这个说法一直有点怀疑。于是我测了一下。
测试方式
我从 Golden CLAUDE.md 仓库里拿了两个文件:英文版 CLAUDE.md,以及同内容的中文版 CLAUDE.zh.md。语义相同,语言不同。然后我把两个文件跑过我能找到的分词器。
英文版:5,474 个字符,5,514 字节。中文版:2,452 个字符,5,634 字节。
中文字符数少了 55%。但字节数反而更多,因为 UTF-8 里每个汉字通常占 3 字节,而 ASCII 英文字符占 1 字节。对”中文更小”这个直觉来说,这已经不是什么好信号了。
然后看 token 数。
| 分词器 | 英文 token | 中文 token | 差异 |
|---|---|---|---|
| GPT-4o / GPT-5.x (o200k_base) | 1,196 | 1,479 | +23.7% |
| GPT-4 / GPT-3.5 (cl100k_base) | 1,200 | 2,001 | +66.8% |
| GPT-3 时代 (p50k_base) | 1,329 | 3,753 | +182.4% |
中文用了更多 token。在最老的分词器上,几乎是三倍。在最新的分词器上,仍然多接近四分之一。方向从来没有反过来。
那中文模型呢?
最自然的反驳是:也许西方模型对中文处理得差。那 Qwen、GLM、DeepSeek 呢?这些是中文背景更强的模型,它们的分词器肯定看过更多中文文本。
我也测了。
| 分词器 | 英文 token | 中文 token | 差异 |
|---|---|---|---|
| Qwen 2.5 | 1,203 | 1,351 | +12.3% |
| GLM-4 | 1,202 | 1,307 | +8.7% |
| DeepSeek-V2 | 1,324 | 1,427 | +7.8% |
差距确实小很多,从 GPT-4o 的 +24% 降到 DeepSeek 的 +8%。但它没有反转。英文仍然赢。
为了确认离线分词器结果在真实 API 里也成立,我把同样两个文件通过阿里云 百炼发给实时 API,并检查模型实际返回的 prompt_tokens。
| 模型(实时 API) | 英文 token | 中文 token | 差异 |
|---|---|---|---|
| Qwen 3.5 Plus | 1,272 | 1,363 | +7.2% |
| GLM-5 | 1,205 | 1,310 | +8.7% |
API 计数包含聊天模板开销,所以原始数字比离线测试高。但相对差异反映的是同一个结论。

为什么英文赢:分词的工作方式
LLM 读的不是字符,而是 token。token 是模型在训练中学会识别的文本片段。把文本拆成 token 的算法叫 BPE(字节对编码,Byte-Pair Encoding)。简化版流程是:
- 从所有单独字节开始(256 个基础 token)
- 在训练语料里找到最常出现的相邻 token 对
- 把这一对合并成一个新 token
- 重复 50,000 到 200,000 次
在这之前还有一步很重要:正则会先把输入切成块,大致按单词或标点分。BPE 的合并发生在这些块内部,而不是跨块发生。这就是为什么整个英文单词可以变成单个 token:正则先把一个形状像英文单词的干净输入块交给 BPE。
结果就是:常见模式会被压缩进单个 token。西方模型的训练数据以英文为主,所以英文模式拿到了更多词表预算。
大概像这样:
英文: "The golden rules apply to every session"
分词: [The] [golden] [rules] [apply] [to] [every] [session]
数量: 7 个 token
中文: "金规适用于每个会话"
分词: [金] [规] [适] [用于] [每] [个] [会] [话]
数量: 8 个 token英文里,带空格前缀的 " golden" 可以成为单个 token。分词器在训练中见过这个模式足够多次,于是一路合并下来。
中文更碎,但也不是完全按字切。用于 合并成了一个 token。o200k_base 词表里其实有超过 3,000 个多字 CJK token,比老分词器多很多。但大多数字符仍然单独存在,因为 CJK 字符组合太多,词表不可能全部覆盖。
这不表示中文对计算机不好。它只表示构建这些分词器的人把大部分词表预算给了英文,因为训练数据就是那个样子。
人们混淆了三个指标
这个误解存在很久,是因为人们把三个不同测量混在一起。
字符数:中文赢。“永远不要假设一个库存在”是 11 个汉字;“永远不要假设一个库存在”带空格是 29 个字符。这是人眼看到的,也是直觉来源。
字节数:大致接近。中文字符 UTF-8 通常 3 字节,英文字符 1 字节。同样内容的字节数最后差不多(这次测试是英文 5,514 vs 中文 5,634)。
Token 数:英文赢。BPE 会把常见字节序列合并成单个 token。英文单词因为训练数据占比高,合并得很激进;中文字符大多仍然分散。

“中文更省 token”这个说法,是把字符数观察直接套到了 token 上。但它们不是一回事。字符数是 token 数的很差代理,驱动因素完全不同。
在变好,但很慢
也有好消息。看 OpenAI 分词器的演进:
- p50k_base(GPT-3 时代,词表里 39 个 CJK token):中文多 +182%
- cl100k_base(GPT-4,754 个 CJK token):中文多 +67%
- o200k_base(GPT-4o,5,776 个 CJK token):中文多 +24%
从 39 个 CJK token 到 5,776 个,差距确实在缩小。Qwen 和 DeepSeek 这样的中文背景模型把差距进一步压到约 +8%。
但“没那么差”不等于“更好”。我找到的最好情况,Qwen 3.5 Plus 仍然是中文多 +7.2%。英文还是更省 token。
如果你在选择提示词语言,这意味着什么
在 GPT-4o 上,相同内容的中文提示词比英文大约多 24% token。规模化使用时,这是真钱,也是真上下文窗口消耗。其他西方模型大概率类似,具体数值取决于分词器。
在 Qwen 或 DeepSeek 上,差距降到 7-12%。小很多,但仍然存在。
如果你是在选择用什么语言写提示词:用你思考时最自然的语言。token 差异还没大到值得你切换语言,而且翻译自己想法造成的清晰度损失,可能比 token 成本更伤响应质量。
字符数不是 token 数。你的中文提示词在屏幕上看起来更短,但模型看到的是更长。任何告诉你“切到中文可以省 token”的人,都在混淆人眼看到的东西和模型实际处理的东西。
想复核数字?
测试文件是 Golden CLAUDE.md 里的 CLAUDE.md 和 CLAUDE.zh.md。同一组行为规则,一个英文,一个中文。如果你找到某个分词器在完整文档上中文更省,我真的想知道。
许可
Article text © 2026 Mark Huang. Licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) unless otherwise noted. 文章文本可在非商业场景下分享或翻译,但需标注原文 URL。商业使用需事先取得书面许可,并清楚引用原始来源。
代码片段、截图、第三方素材和网站源码可能适用单独条款。
建议署名: Based on "不,中文对 LLM 并不比英文更省 token" by Mark Huang, originally published at https://markhuang.ai/zh/blog/chinese-token-myth.
相关文章

我可能看错了 Agentool
一篇个人自动化复盘:我曾经构建 agentool,希望让 AI CI 工作流更轻;后来意识到真正的成本可能是功能维护、编排复杂度,以及追逐 Claude Agent SDK 和 Codex SDK 已经承担的 SDK 行为。
阅读文章
别再从零开始教每一个 AI
一篇关于 Dense-Mem 的个人反思:哪些问题把我从静态 skills 和过期文件推向动态共享记忆、只读自动化上下文、导入导出,以及受治理的知识图谱。
阅读文章
我有点替 AI 委屈
为什么 AI 狂热和反 AI 敌意都错过了同一个重点:LLM 更像成绩很好的应届新人,而不是资深专家。有用的智能体需要入职培训、技能和维护过的记忆,而不是第一次尝试就完美的期待。
阅读文章订阅更新
Go、AI/LLM 和分布式系统的技术文章,绝不滥发。
评论
正在加载评论...