Token:AI 眼中的"文字"
你有没有想过,当你跟 ChatGPT 聊天的时候,它看到的并不是你输入的那些字?在 AI 的眼里,文字会被拆解成一个个叫做 Token 的小碎片。这些碎片既不是”字”,也不是”词”,而是 AI 自己发明的一套拆分规则。今天这篇文章,我们就来聊聊这个 AI 世界里最基础、却常被忽略的概念——Token。
这是「小白讲 AI」系列的第 04 篇。前几篇我们聊了大模型、Prompt 等概念,这一篇我们深入一层,看看 AI 到底是怎么”阅读”你的文字的。
一、开场类比:AI 拆积木的方式和你想的不一样
想象你面前有一盒乐高积木,拼成了一座城堡。现在让你把它拆开,你会怎么拆?大多数人会一块一块地拆,对吧?
但如果让 AI 来拆,它的做法完全不同。它可能会把城堡的一面墙当成一个整体拆下来,把一扇小窗户也当成一个整体,而城堡顶上那个不常见的装饰,却被拆成了好几个零散的小块。
这就是 Token 的核心逻辑:AI 不是按你直觉中的”一个字”或”一个词”来拆分文字的,而是按照自己学到的规律来拆分。常见的组合会被当作一个整体,罕见的组合则会被拆得更碎。
比如,英文单词 “understanding” 可能被拆成 “under” + “standing” 两个 Token;而常见的 “the” 就是一个完整的 Token。中文的”人工智能”可能是一个 Token,但”量子纠缠”就可能被拆成”量子” + “纠” + “缠”三个 Token。
二、为什么不能直接用字或词?
你可能会问:为什么 AI 不直接按字来处理?或者直接按词来处理?
如果按字处理,问题在于”太细”了。英文有 26 个字母,中文常用汉字有几千个。如果每个字母或汉字都是一个 Token,那一段很短的话就会变成很长的 Token 序列。AI 处理起来又慢又费劲,就好比你非要用一粒一粒米去搭建一座房子——虽然能搭,但效率太低了。
如果按词处理,问题在于”太粗”了。世界上的词汇量是天文数字,英文每年都在产生新词,中文的词语组合更是千变万化。如果每个词都要占一个位置,AI 的”词典”就会大到离谱,而且遇到一个从没见过的新词就彻底抓瞎了。
Token 就是效率和表达力之间的平衡点。 它把常见的字符组合打包成一个单位,把罕见的拆开处理。这样一来,AI 的”词典”大小可控(通常几万到十几万个 Token),处理速度快,而且几乎能覆盖所有文字,包括从没见过的新词——因为再生僻的词,也可以被拆成更小的、已知的 Token 来表示。
你可以把它想象成一个”智能快递打包系统”:经常一起发的货物就打成一个包,偶尔出现的就单独发。这样既节省了运输次数,又不会遗漏任何东西。
三、BPE 算法:高频合并的魔法
那 AI 是怎么学会这套拆分规则的呢?目前最主流的方法叫 BPE(Byte Pair Encoding,字节对编码)。名字很唬人,但原理其实很简单,我用一个例子来解释。
假设 AI 一开始只认识最小的单位——单个字符。它拿到一大堆文本后,开始统计:哪两个相邻的字符出现在一起的次数最多?
比如它发现 “t” 和 “h” 总是在一起出现(因为英文里 “the”、”that”、”this” 太常见了),于是它把 “t” + “h” 合并成一个新的 Token “th”。
然后它继续统计,发现 “th” 和 “e” 又经常在一起,于是再合并成 “the”。
就这样一轮一轮地合并,从最小的字符开始,把高频出现的组合不断”升级”成一个完整的 Token。最终形成一张 Token 表,这张表就是 AI 的”字典”。
整个过程可以用一句话概括:哪些组合出现得多,就合并成一个 Token。
这就像你整理衣柜——如果你发现帽子和围巾总是一起用的,你干脆把它们放在同一个格子里,下次直接拿一组就行,不用分两次找了。BPE 做的就是这件事,只不过它整理的是文字。
现在主流大模型(GPT 系列、Claude 等)基本都使用 BPE 或其变体来生成自己的 Token 表。不同的模型可能使用不同的 Token 表,所以同一段文字在不同模型里被拆分出来的 Token 数量可能不一样。
四、中文 vs 英文:同一句话,Token 数量大不同
这里有一个很多人不知道的”冷知识”:同样含义的一句话,中文消耗的 Token 通常比英文多。
我们来看一个例子。假设你想对 AI 说这句话:
今天天气真好,我想去公园散步。
这句中文大约会被拆成 15-18 个 Token。
而同样含义的英文:
The weather is really nice today, I want to go for a walk in the park.
这句英文大约只会被拆成 15-16 个 Token。
差距看起来不大?那换一段更长的内容试试。一篇 500 字的中文文章,可能会产生 700-900 个 Token;而对应的 500 词英文文章,可能只有 500-650 个 Token。
为什么会这样?原因在于:主流大模型的 Token 表是在大量英文语料上训练出来的,英文的字符组合被充分学习和合并了,效率很高。而中文字符的组合在训练数据中占比较小,很多汉字没有被合并成更大的 Token,只能一个字一个字地处理,自然就需要更多的 Token。
这也是为什么有人说”用中文和 AI 聊天更贵”——因为同样的内容,中文产生的 Token 更多,而 API 是按 Token 计费的。
五、Token 与价格:理解 Token 才能省钱
说到”贵”,我们就来聊聊 Token 和钱包的关系。
如果你通过 API 调用 AI(比如开发一个聊天机器人或者自动化工具),服务商是按 Token 数量来收费的。通常会分两部分:
- 输入 Token(Input Token):你发给 AI 的内容,包括你的问题、系统提示词、上下文等。
- 输出 Token(Output Token):AI 回复给你的内容。
输出 Token 的单价通常是输入 Token 的 2-4 倍,因为”生成”比”阅读”更消耗计算资源。
举个实际的例子:假设你每次对话的输入是 1000 个 Token,AI 的回复是 500 个 Token,一天调用 1000 次。按照目前主流模型的定价,一天的费用可能在几美元到几十美元之间,具体取决于你选择的模型。
所以,理解 Token 能帮你做出更省钱的决策:
- 精简你的 Prompt:把冗余的描述去掉,直奔主题。Token 少了,费用就少了。
- 控制输出长度:在 API 调用时设置
max_tokens参数,限制 AI 回复的长度。 - 选择合适的模型:不是所有任务都需要最贵的旗舰模型,小模型处理简单任务又快又便宜。
- 善用缓存:对于重复的提问,缓存之前的回答,避免重复消耗 Token。
六、Token 限制:上下文窗口的秘密
你可能听说过”上下文窗口”(Context Window)这个概念——它其实就是 AI 一次能处理的 Token 数量上限。
早期的 GPT-3.5 模型,上下文窗口只有 4096 个 Token,大概相当于 3000 字的中文。这意味着如果你的对话太长,AI 就会”忘掉”前面说过的话——不是真的忘了,而是前面的内容被挤出了窗口,AI 根本看不到了。
后来的模型不断扩大这个窗口。GPT-4 一度支持 128K Token,Claude 支持 200K Token,甚至有些模型声称支持百万级 Token。但窗口大了也不是万能的:窗口越大,处理速度越慢,费用也越高;而且研究表明,AI 对窗口”中间部分”的信息关注度会下降——就像你读一本很厚的书,中间章节的内容总是记得最模糊的。
理解了”上下文窗口 = Token 数量限制”这件事,你就能更好地使用 AI:
- 长对话要适时总结:当对话变长时,把前面的内容总结成精简版,腾出 Token 空间。
- 重要信息放在开头或结尾:AI 对开头和结尾的关注度更高。
- 拆分复杂任务:与其一次性塞入海量信息,不如分步骤处理。
七、动手试试:看看你的文字被拆成了什么
说了这么多,最好的学习方式还是自己动手看一看。
OpenAI 提供了一个免费的在线工具 Tokenizer,你可以在里面输入任何文字,它会用不同颜色标出每一个 Token 的边界,让你直观地看到文字是怎么被拆分的。
试试以下几个有趣的实验:
- 输入你的名字,看看它被拆成了几个 Token。中文名字通常每个字都是一个 Token,而常见的英文名可能整个就是一个 Token。
- 输入一段中文和对应的英文翻译,对比两者的 Token 数量差异。
- 输入一些生僻词或网络新词(比如”遥遥领先”、”YYDS”),看看 AI 是怎么拆分它们的。
- 输入代码,你会发现编程语言的 Token 拆分方式又不一样——常见的关键词(如
function、return)通常是一个 Token,而变量名可能被拆得很碎。
通过这些实验,你会对 Token 有一个非常直观的理解。
总结
让我们回顾一下今天学到的内容:
- Token 是 AI 处理文字的基本单位,它不等于”字”,也不等于”词”,而是一种介于两者之间的、由算法自动学习出来的拆分方式。
- BPE 算法通过”高频合并”来生成 Token 表,常见的组合被打包成一个 Token,罕见的则拆成更小的 Token。
- 中文通常比英文消耗更多 Token,因为主流模型的训练数据以英文为主。
- API 按 Token 计费,理解 Token 能帮你优化成本。
- 上下文窗口的本质就是 Token 数量限制,知道这一点能帮你更高效地使用 AI。
Token 虽然是一个”底层”概念,但它影响着你使用 AI 的方方面面——从费用到效果,从对话长度到回复质量。理解了 Token,你就比大多数人更懂 AI 了。
延伸阅读
- OpenAI Tokenizer 在线工具 —— 亲手试试你的文字会被拆成什么样的 Token,直观感受 Token 的拆分逻辑。
- What are tokens and how to count them? - OpenAI Help —— OpenAI 官方对 Token 的简明解释,包括计数方法和常见问题。
- Byte Pair Encoding - Hugging Face NLP Course —— 想深入了解 BPE 算法原理的同学可以看这篇教程,有代码示例,讲解清晰。