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

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


💡 先给结论

概念 是什么 “Hello” “你好” API 计费?
字节 存储最小单位 5 6
字符 人类可读符号 5 2
单词 空格/语义分割 1 1
Token AI 处理的子词单位 1 1

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


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

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

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

字符 UTF-8 字节 字节数 十六进制
H 72 1 48
e 101 1 65
228, 189, 160 3 e4 bd a0
229, 165, 189 3 e5 a5 bd
🚀 240, 159, 154, 128 4 f0 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 64 12
字符 H e l l o , ␣ W o r l d 12
单词 Hello, World 2
Token Hello , World 3

中文 “你好世界”:

层级 拆分结果 数量
字节 e4 bd a0 e5 a5 bd e4 b8 96 e7 95 8c 12
字符 你 好 世 界 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? 7 7 25
Explain quantum computing 7 6 41
你好,请用中文解释token 15 9 47
こんにちは、トークンとは何ですか? 12 10 51

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


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

各语言 Token 效率对比(o200k_base)

语言 文本 Token 数 字节数 字节/Token
英文 “Hello, how are you today?” 7 25 3.6
中文 “你好,今天怎么样?” 5 27 5.4
日文 “こんにちは” 1 15 15.0
韩文 “안녕하세요” 2 15 7.5
代码 def fibonacci(n): (5行) 28 92 3.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” 5 5 1 1
“你好” 6 2 1 1
“unbelievable” 12 12 1 3
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 博客

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

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐