你有没有想过,当你向AI提问时,它看到的和你看到的,是同一个东西吗?
其实不然。我们看到的是一句完整的话,而对AI来说,它看到的是一串被切碎的“小碎片”。这些小碎片,就是今天的主角——Token。
Token,中文常被翻译为“词元”,你可以把它理解成大模型处理文本的最小信息单元。
就像我们把一整块蛋糕切成小块,方便一口口吃掉一样,AI在理解文字前,也会先通过一个叫“分词器”的工具,把句子切分成一个个Token。
一个Token可以是一个完整的词,也可以是半个词,甚至只是一个标点符号,具体怎么切,取决于不同模型的“切分习惯”。
举例来说:
粗略估算,1个汉字≈1-2个Token,1个英文单词≈1个Token。
这背后有个很聪明的考量。想象一下,如果让AI一个字一个字地认,效率太低。但如果像人脑一样,把常见词语(如“今天”、“天气”)作为一个整体来识别,处理效率就高多了。
分词器就是利用这种思路,通过统计大量文本,把经常一起出现的字词“打包”成一个Token,并赋予一个数字编号。这样一来,AI处理的就是一串数字,而不是复杂的文字了。
比如,“我爱中国!”这句话,可能被切分为“我”、“爱”、“中国”、“!”4个Token,并对应到4个数字ID。AI的整个思考过程,就是计算这一串数字ID之间的复杂关系。
把文本切成 token 的过程,叫做 分词。使用的工具叫做 分词器。
分词器并不是靠人工写规则(比如“遇到空格就切一刀”),而是用一种叫 BPE 的算法,在海量文本上自动学习出来的。
BPE 的基本思路是:
这样学习出来的 token 表,往往会出现一些“神奇”的切分。比如英文里,一个单词的不同形态可能被切得支离破碎:playing 可能变成 play + ing;中文里一些常见搭配可能被合成一个 token,比如“人工智能”可能是一个 token,而不是四个字四个 token。
Token 不仅仅是个技术细节,它直接影响你使用大模型的体验和花费。
大模型有一个“上下文窗口”的概念,也就是它一次最多能处理的 token 数量。比如 8K 上下文,就是一次最多看 8000 个 token。如果你的输入太长,超出了窗口,模型就会“忘记”前面的内容。所以 token 的长度直接决定了模型能记住多少对话。比如,一个模型的上下文窗口是128K Token,大约相当于一本300页的书。如果你的对话总长度超过这个数,AI就会“忘记”最早的内容,从而答非所问。
很多大模型 API 是按 token 收费的。你输入的提示和模型输出的回答,都会折算成 token 数来计费。所以同样一句话,用中文说和用英文说,token 数可能不同,成本也不同。
绝大多数商业大模型都是按Token计费的。你提问(输入Token)和AI回答(输出Token)都要花钱,总Token数 = 输入Token + 输出Token。就像打电话按分钟计费一样,聊得越多,费用越高。
模型生成文字是一个 token 一个 token“蹦”出来的。你看它打字像流水一样,其实背后是逐个 token 在计算。token 越多,生成时间越长。
我们来看几个例子(以 GPT 系列常用的分词方式为参考):
| 输入 | 大致 token 数 |
|---|---|
| “你好” | 1~2 |
| “Hello” | 1 |
| “I love you” | 3 |
| “我爱北京天安门” | 约 4~6 |
| 一段 1000 字的中文文章 | 约 1500~2500 token |
注意,中文通常 1 个字大约对应 1~2 个 token,英文 1 个单词大约对应 1~2 个 token。但这个比例不固定,取决于具体文本和分词器。
我们人类用字、词、句来思考语言,大模型则用 token 来“思考”。Token 是它理解世界的原子单位,是它生成一切的起点。
下次当你和 ChatGPT 聊天、让 Claude 写代码、用 Midjourney 生成提示词时,不妨想一想:在你的屏幕背后,一句句话正被拆解成无数个 token,化身为数字,在神经网络的层层计算中流动,最后再变回你熟悉的文字。
这,就是 token 的故事。
评论专区
评论加载中...登录后即可发表评论