一文搞懂 Token 和字节的区别——AI 大模型到底在读什么?(附实测数据)

你给 AI 发了 7 个字符,它只看到 2 个 Token,账单却按 Token 收费。同一句话中文比英文贵 50%?这篇文章把字节、字符、单词、Token 四层结构讲透。


💡 先给结论

概念是什么“Hello”“你好”API 计费?
字节存储最小单位56❌
字符人类可读符号52❌
单词空格/语义分割11❌
TokenAI 处理的子词单位11✅

划重点:Token ≠ 字节 ≠ 字符 ≠ 单词。AI 模型只认 Token,你的钱也是按 Token 花的。


一、从最底层说起:什么是字节

字节(Byte) 是计算机存储数据的最小单位。1 字节 = 8 位 = 一个 0~255 的数字。

UTF-8 编码下,不同字符占的字节数不同:

字符UTF-8 字节字节数十六进制
H72148
e101165
你228, 189, 1603e4 bd a0
好229, 165, 1893e5 a5 bd
🚀240, 159, 154, 1284f0 9f 9a 80

规律:英文 1 字节,中日韩 3 字节,Emoji 4 字节。

所以 “你好 Hello” = 3+3+1+1+1+1+1+1 = 12 字节:

你       好       空格  H   e   l   l   o
e4 bd a0  e5 a5 bd  20   48  65  6c  6c  6f
(3字节)  (3字节)  (1)  (1) (1) (1) (1) (1) = 12 字节

字节是计算机存储文本的方式,但 AI 不直接读字节。


二、四级阶梯:字节 → 字符 → 单词 → Token

以 “Hello, World” 和 “你好世界” 为例:

英文 “Hello, World”:

层级拆分结果数量
字节48 65 6c 6c 6f 2c 20 57 6f 72 6c 6412
字符H e l l o , ␣ W o r l d12
单词Hello, World2
TokenHello , World3

中文 “你好世界”:

层级拆分结果数量
字节e4 bd a0 e5 a5 bd e4 b8 96 e7 95 8c12
字符你 好 世 界4
单词你好 世界2
Token你好 世界2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

核心结论:Token 是介于字符和单词之间的"子词"单位,是效率和覆盖率的最佳平衡点。


三、为什么不直接用字节或单词?

字节的问题:序列太长

“Hello” 5 个字节还行,一篇 1000 字文章 ~5000 字节,一本小说 50 万字节。

Transformer 的注意力机制计算量是 O(n²)——序列翻倍,计算量翻四倍。字节序列比 Token 长 3~4 倍,成本直接起飞。

单词的问题:词表爆炸

英语常用词 17 万+,加上代码、URL、各国语言,词表轻松突破百万:

  • 嵌入表内存爆炸
  • 低频词学不好
  • 新词/打错的字完全无法处理(OOV 问题)

Token:完美折中

"unbelievable" → ["un", "bel", "ievable"]    # 3 个 Token
"tokenization" → ["Token", "ization"]         # 2 个 Token
"Hello"        → ["Hello"]                    # 1 个 Token(高频词,完整保留)
"你好"         → ["你好"]                      # 1 个 Token(高频组合)

短序列(高效) + 小词表(1020 万) + 无未知词 = Token 方案胜出。


四、BPE 分词算法详解

几乎所有主流大模型(GPT、Claude、Gemini)都用 BPE(Byte Pair Encoding) 构建 tokenizer。

第一步:拆成单个字符

"low"    → ["l", "o", "w"]
"lower"  → ["l", "o", "w", "e", "r"]
"newest" → ["n", "e", "w", "e", "s", "t"]

第二步:统计最高频相邻对

("l", "o") 出现 2 次  ← 最高频
("o", "w") 出现 2 次
("e", "w") 出现 1 次

第三步:合并最高频的对

"low"   → ["lo", "w"]
"lower" → ["lo", "w", "e", "r"]

第四步:重复数万次

不断统计、合并,直到词表达到目标大小(5~20 万)。最终 “the”、“Hello”、“你好” 这些高频词会变成单个 Token。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

用 tiktoken 亲手验证

import tiktoken

# o200k_base 是 GPT-4o/GPT-5 使用的 tokenizer
enc = tiktoken.get_encoding("o200k_base")

text = "你好 Hello"
tokens = enc.encode(text)
token_strings = [enc.decode([t]) for t in tokens]

print(f"原文: {text}")
print(f"UTF-8 字节数: {len(text.encode('utf-8'))}")
print(f"Token 数 ({len(tokens)}): {token_strings}")
print(f"Token ID: {tokens}")

输出:

原文: 你好 Hello
UTF-8 字节数: 12
Token 数 (2): ['你好', ' Hello']
Token ID: [177519, 32949]

12 个字节压缩成 2 个 Token,BPE 的威力就在这里。


五、不同模型的 Tokenizer 差异

同一段文字在不同模型上的 Token 数不同:

文本cl100k (GPT-4)o200k (GPT-5)UTF-8 字节
Hello, how are you today?7725
Explain quantum computing7641
你好,请用中文解释token15947
こんにちは、トークンとは何ですか?121051

GPT-5 的 tokenizer 对中日文效率大幅提升:同一句中文,GPT-4 要 15 个 Token,GPT-5 只要 9 个,省了 40%!


六、Token 数量直接决定你的账单

各语言 Token 效率对比(o200k_base)

语言文本Token 数字节数字节/Token
英文“Hello, how are you today?”7253.6
中文“你好,今天怎么样?”5275.4
日文“こんにちは”11515.0
韩文“안녕하세요”2157.5
代码def fibonacci(n): (5行)28923.3

实际成本对比(GPT-5 输入 $1.25/百万 Token)

语言100 万字符约 Token 数费用
英文~33 万$0.41
中文~50 万$0.63
中英混合~40 万$0.50

中文比英文贵约 50%。 原因:中文字符 UTF-8 编码更长 + tokenizer 压缩率不如英文。

降本秘诀:用统一网关横向对比

不同模型有不同 tokenizer 和价格,最划算的选择可能出乎意料:

from openai import OpenAI

client = OpenAI(
    api_key="your-crazyrouter-key",
    base_url="https://crazyrouter.com/v1"
)

# 同一个 prompt 测试多个模型
for model in ["gpt-5", "gpt-5-mini", "deepseek-v3.2", "claude-sonnet-4"]:
    response = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": "用两句话解释什么是 tokenization"}],
        max_tokens=100
    )
    usage = response.usage
    print(f"{model}: {usage.prompt_tokens} 输入 / {usage.completion_tokens} 输出")

通过 Crazyrouter 一个 API Key 调用 627+ 模型,轻松找到最适合你的高性价比方案。


七、前沿:字节级模型会取代 Token 吗?

2024 年底 Meta 发布 BLT(Byte Latent Transformer)——直接处理原始字节,绕过 tokenizer。

优势:

  • 真正语言无关
  • 没有 OOV 问题
  • 模型看到的就是原文

现实:

  • 字节序列长 3~4 倍,计算成本更高
  • 所有主流商用模型(GPT-5、Claude、Gemini)仍用 Token
  • BLT 还在研究阶段

结论:Token 至少还会统治 3~5 年。


八、速查表

属性字节字符单词Token
是什么存储最小单位人类可读符号空格/语义分割AI 的子词单位
大小固定 1 字节1-4 字节不固定不固定
“Hello”5511
“你好”6211
“unbelievable”121213
API 计费?❌❌❌✅

换算经验值:

  • 1 英文 Token ≈ 4 字符 ≈ 4 字节 ≈ 0.75 个单词
  • 1 中文 Token ≈ 1~3 个汉字 ≈ 3~9 字节
  • 1000 Token ≈ 750 英文单词 ≈ 4000 字符

在线工具:


常见问题

Q: Token 和字节是一回事吗?
不是。字节是存储单位,Token 是 AI 处理单位。“Hello” = 5 字节 = 1 Token,“你好” = 6 字节 = 1 Token。

Q: 为什么 AI 不直接读字节?
效率问题。字节序列比 Token 长 3~4 倍,Transformer O(n²) 的计算成本扛不住。

Q: 同一段文字不同模型的 Token 数一样吗?
不一样。同一句中文在 GPT-4 上 15 Token,GPT-5 上 9 Token。选模型时要考虑这个差异。

Q: 怎么降低 Token 成本?
5 招:精简 prompt、限制 max_tokens、选够用的便宜模型、缓存重复查询、用 Crazyrouter 一键对比 627+ 模型。


延伸阅读


理解字节和 Token 的区别,是控制 AI 成本的第一步。更多开发者指南请访问 Crazyrouter 博客。

📌 如果觉得有帮助,点个赞 + 收藏,方便以后查阅!

更多推荐