什么是Token(词元)
你有没有想过,为什么 AI 能够理解文字?其实,大语言模型(LLM)并不像我们一样直接"阅读"汉字。这里的 Token 就是它处理文本的最小颗粒度,它就像是一座桥梁,一头连着人类的语言,另一头连着机器的数学计算。
例如下图:我们人类看到的可能是一个完整的句子,但在 AI 的眼中,这些文字被切分成了不同的 Token 序列。这种切分方式直接决定了 AI 学习和记忆的效果。
Token:文字的"乐高积木"
Token 是 AI 处理文本的基本单元。就像积木一样,复杂的句子被拆解开来,再通过不同的组合构建出意义。它通常包含三个层次:完整的单词、单个字符,以及介于两者之间的”子词”。
那么你可能会想,既然有单词,为什么不直接按单词切分呢?其实,直接用单词会导致词表过于臃肿,而且遇到生僻字就没辙了。
| 分词方法 | 颗粒度 | 核心特点 |
|---|---|---|
| Word-level | 粗 | 语义最强,词表过大 |
| Char-level | 细 | 无生僻字,缺乏语义 |
| BPE(主流) | 适中 | 兼顾效率与语义表达 |
我们可以看上面这张对比表,Word-level 也就是词级切分,虽然语义完整但词表太庞大;Character-level 字符级切分虽然灵活,但会让 AI 很难把握整体意义。所以,像 BPE(Byte Pair Encoding,字节对编码) 这样的子词切分技术才成为了现在的大主流。
最后,中英文在切分上也有很大差异。英文通常是子词的组合,而中文则是在“字”与“词”的边界上寻找切分的最优解。
Token ≠ 字符 ≠ 字节
不少人会误以为,Token 等于对话输入框里的字符总数,这个认知其实并不准确。
以「订单创建成功」六个汉字举例:文本共计 6 个字符,UTF-8 编码占用 18 字节,但经过模型分词器拆分后,对应的 Token 数量通常在 4~8 个区间(取决于模型分词器)。由此可见,字符数、字节数、Token 数量三者不存在固定的换算比例。各大模型厂商标注的上下文窗口(128K、1M 等规格),计量单位统一为 Token。
举个直观例子:1M 上下文窗口,代表模型单次最多可承载 1000000 个 Token。结合中文分词规律,单个汉字约折合 1~2 个 Token,换算后全文上限大致在 50 万~100 万汉字,体量足以完整收录约 73 万字的《红楼梦》全文。
在日常使用 Claude Code 时,占用上下文 Token 配额的内容并非仅单次提问,历史对话记录、系统提示词、内置技能、执行指令、引入代码文件、读取文档以及模型输出内容,全部会计入总 Token 消耗。
为什么Token很重要(成本与记忆)
首先是计费基准。我们在使用各种 AI 模型的 API 接口时,提供商并不是按字数收费,而是按 Token 数量计费。就像交电费一样,Token 就是那个计费度量衡,用得越多,账单就越长。
其次是记忆上限,也就是我们常说的上下文窗口(Context Window)。AI 并不是能记住无限的内容,它的内存空间是由 Token 数量限制的。如果对话太长超过了上限,AI 就会开始遗忘前面的信息,也就是所谓的“断片儿”。
这里还涉及到一个性能平衡的问题。Token 处理得越多,模型推理的时间就越久,你会发现 AI 回复变慢了,而且成本也随之飙升。所以,在提问时精简文字,其实是在帮 AI 提速省钱。
所以它不仅关乎 AI 的“智力”,还直接关乎我们的钱袋子。
目前的AI主要处理离散符号,就像把文章拆成一个个Token,每个Token都有固定的编号(Token ID),现如今AI技术正以迅猛态势持续迭代演进,我相信未来的AI终将突破符号层面的限制,直接原生处理像素画面、音视频数据流,迈入真正意义上的原生多模态时代!
