在体验 ChatGPT、DeepSeek 等人工智能大模型时,你一定经常看到 Token 这个词。无论是充值 API、查看额度,还是遇到“超出上下文限制”的报错,它都无处不在。
中国发展高层论坛已经将它的中文名正式定为“词元”。Token(词元)是大语言模型(LLM)理解和处理文本的最小基本单位。你可以把它直观地理解为 AI 世界里的“信息积木”或“基础货币”。
🧱 为什么大模型需要 Token?—— 机器不认字
人类看文章是直接阅读文字,但计算机作为电子设备,本质上只能理解数字。大模型在处理我们输入的指令时,必须经历一个“翻译”的过程。
人类视角:一句话 ➡️
今天天气真好AI 视角:
今天/天气/真/好➡️ 变成一串数字(ID)
如果让 AI 按照单个字母或单个汉字来理解,计算量会极其庞大,且丢失了词语的整体语义。如果按照完整的词表(如新华字典或牛津词典)来硬背,遇到新词、火星文或罕见词,AI 就会彻底“懵圈”。
因此,科学家设计了 Tokenizer(分词器)。它利用一种“文字压缩术”,将文本切分成大小适中的语义片段。这就是 Token。
🛠️ Tokenizer 是如何训练出来的?—— 核心 BPE 算法
分词器不是拍脑袋写出来的,它是大模型在正式训练前,通过 BPE(Byte-Pair Encoding,字节对编码)算法在海量文本中“找规律”训练出来的。
BPE 算法核心四步走:
初始化:把所有文本拆到最小,英文拆成字母,中文拆成单个汉字。
数频次:统计文本中哪两个相邻的“字符”一起出现的次数最多。
合并:把频率最高的这一对字符合并成一个全新 Token 塞进词表。
循环:重复上面的步骤,直到词表大小达到预设值(比如 10 万个)。
💡 通俗例子:
初始只有t、h、e。算法发现t和h总是黏在一起,就合并出新词元th。接着发现th和e又经常在一起,就再次合并出了the。这就是一种高效的文字压缩机制。
🔄 核心工作流程:从文字到数字
当你向大模型发送一条消息并获得回复时,它在幕后经历以下全流程:
+-------------------+ (分词器 Tokenizer) +---------------------+
| 人类输入的文本 | -------------------------> | 被切分后的 Token 串 |
+-------------------+ +---------------------+
|
| (查表转为 ID)
v
+-------------------+ (数字高维向量运算) +---------------------+
| 最终输出的文本 | <------------------------- | 数字编号 (Token ID) |
+-------------------+ +---------------------+
分词(Tokenization):分词器把你输入的文本裁切成一块块 Token。
转为 ID(Embedding 准备):每个 Token 在大模型的字典里都有一个固定的数字编号(例如:
我对应1,喜欢对应2)。大模型通过这些数字进行复杂的高维数学运算。预测并还原:AI 算出了下一个最可能出现的 Token ID 串,再把它们反向翻译成人类能看懂的文字展示出来。
📊 Token 到底怎么计算?(中英文大不同)
Token 并不等于“字数”或“单词数”,不同语言的切分规则存在很大差异。
⚠️ 标点符号、空格和换行符也会被定义并计算为 Token,因为它们同样承载着文本的语义和结构信息!
🎯 为什么你必须关心 Token?
💰 它决定了你的钱包:目前所有的 AI 官方 API 都是按照 Token 数量来计费的。你输入的提示词(Input Tokens)和 AI 回答的内容(Output Tokens)都在合并计费。
🛑 它限制了 AI 的记忆力:大模型的上下文窗口(Context Window)是它单次推理能处理的最大 Token 数量,一旦你和 AI 的历史对话总 Token 数超过它的上下文上限,AI 就会产生“断片”现象,开始遗忘之前聊过的内容。
🚀 影响回答速度与质量:英文大模型在处理中文时,由于汉字切分出来的 Token 数量普遍多于英文,会导致运算显存开销更大、推理速度更慢。
如果你想亲自动手看看自己的提示词会被拆成多少个 Token,可以使用 OpenAI Tokenizer 互动工具。