
当我们和ChatGPT、豆包聊天,让它们写文案、解数学题、编故事时,你有没有想过一个最基础的问题:这些人工智能,真的"认识"汉字吗?
答案可能会让你大吃一惊:它们一个汉字都不认识。
它们既不懂"山"是高耸入云的山峰,也不懂"水"是流动的液体,甚至连"我"和"你"的区别都没有先天概念。所有你看到的流畅中文,本质上都是它们用一种叫做"token"(词元)的积木,按照概率规律拼接出来的结果。
今天,我们就来彻底搞懂这个AI世界里最基础、也最容易被误解的概念——token,以及中文词元那些鲜为人知的特殊性。
token|AI的"通用货币"和"思维积木"
如果把大语言模型比作一个超级图书馆,那么token就是图书馆里的"书";如果把AI生成内容比作盖房子,那么token就是盖房子用的"砖块"。
更准确地说,token是大语言模型处理和生成文本的最小基本单位。
你输入的每一句话,都会先被AI的"分词器"(Tokenizer)切割成一个个token,然后转换成数字向量,输入到神经网络中进行计算。AI输出的每一个字,也都是先预测出下一个最可能的token,再把它转换成人类能看懂的文字。
对于英文来说,token的规则相对简单:
• 大多数常见单词本身就是一个token
(如"cat"、"happy"、"computer")
• 较长的单词会被拆分成几个有意义的子词
(如"unhappiness"会被拆成"un"、"happiness")
• 标点符号、空格通常单独作为一个token
举个例子:"I love artificial intelligence."这句话,会被分词器切成5个token:I、love、artificial、intelligence、.。
这就是为什么英文大模型的"上下文窗口"通常用token来计算,而不是用单词数。一个128k上下文窗口的模型,大约能处理9万多个英文单词。
中文token|最特殊也最"昂贵"的积木
但到了中文这里,情况就完全不同了。
中文是世界上唯一仍在广泛使用的表意文字,没有空格来天然分隔词语。这给分词带来了巨大的挑战,也造就了中文token独一无二的特点。
绝大多数情况下,一个汉字就是一个token。
是的,你没看错。不管这个汉字有多简单(如"一"、"人"),还是有多复杂(如"饕"、"餮"),在大多数主流分词器中,它们都各自占据一个token的位置。
只有极少数非常常用的双字词或三字词,才会被合并成一个token。比如"人工智能"、"中国"、"北京"、"今天"这些高频词汇,通常是一个token。
我们来做个对比:
• 英文:"I love China." → 4个token
• 中文:"我爱中国。" → 4个token("我"、"爱"、"中国"、"。")
看起来差不多?那我们再看一个长一点的句子:
• 英文:"Artificial intelligence is changing the world." → 7个token
• 中文:"人工智能正在改变世界。" → 7个token("人工智能"、"正"、"在"、"改"、"变"、"世"、"界"、"。")——等等,这里是8个token!
发现了吗?同样表达一个意思,中文需要的token数量通常比英文多。
平均来说,1个英文token大约相当于1.3个中文token。 也就是说,同样是128k上下文窗口的模型,它只能处理大约7万多个汉字,而不是9万多个。
这还不是最关键的。更重要的是,中文token的"性价比"极低。
几乎所有大模型的API定价都是按token计算的。同样花1块钱,你能买到的英文token数量,比中文token多30%左右。而且,中文token的处理速度也通常比英文慢,因为中文分词本身就是一个更复杂的过程。
这就是为什么很多人会觉得,用中文和AI聊天"更贵"、"更容易超出字数限制"。不是AI歧视中文,而是中文token的特性决定的。
为什么AI非要用token|而不是直接用汉字?
既然中文token这么麻烦,那为什么AI不直接一个字一个字地处理呢?
这背后有三个非常深刻的原因,涉及到计算机处理语言的底层逻辑。
1. 计算机只能理解数字,不能理解文字
计算机的世界里只有0和1。任何文字、图像、声音,最终都要转换成数字才能被处理。
如果直接用汉字编码(如UTF-8),每个汉字会被表示成一串二进制数。但这种表示方式没有任何语义信息,计算机无法知道"猫"和"狗"都是动物,而"猫"和"桌子"不是。
而token化的过程,本质上是把人类语言映射到一个有限的、有意义的词汇表中。然后,每个token会被转换成一个高维向量(也就是"词嵌入"),向量之间的距离就代表了词语之间的语义相似度。
比如,"猫"和"狗"的向量距离很近,而"猫"和"火箭"的向量距离很远。这样,计算机就能"理解"词语之间的关系了。
2. 用token能大幅提高效率
如果直接用单个字符作为处理单位,那么词汇表的大小会非常大。中文有超过10万个汉字,常用的也有几千个。而如果用token,我们可以把常用的词语合并成一个token,这样词汇表的大小就能控制在几万到几十万之间。
词汇表越小,模型的计算量就越小,训练和推理的速度就越快。这对于动辄数十亿、上百亿参数的大语言模型来说,是至关重要的。
3. token能更好地捕捉语义信息
语言的基本单位是词,而不是字。一个词的意思,往往不是它的组成部分的简单相加。
比如"火车"不是"火"加"车","电脑"不是"电"加"脑"。如果AI一个字一个字地处理,它就很难理解这些复合词的整体含义。
而token化的过程,就是把这些有意义的词语作为一个整体来处理。这样,AI就能更好地捕捉语言的语义信息,生成更准确、更流畅的文本。
token|如何悄悄影响你的AI使用体验?
你可能没有意识到,你和AI的每一次互动,都在被token深刻地影响着。
1. 所谓的"字数限制",其实是"token限制"
几乎所有AI都有"上下文窗口"的限制,比如GPT-4o是128k,Claude 3 Opus是200k。很多人以为这是字数限制,但实际上是token限制。
这就是为什么有时候你复制粘贴了一篇看起来不长的文章,AI却提示你"超出字数限制"。因为中文的token密度比英文高,同样的字数,中文需要的token更多。
2. AI的"失忆",本质上是token溢出
当你和AI进行长对话时,它会把之前的所有对话内容都保存在上下文窗口中。随着对话的进行,token数量会越来越多。
当token数量达到上下文窗口的上限时,AI就会开始"忘记"最早的对话内容。这不是AI真的失忆了,而是它不得不把最早的token从上下文窗口中清除,为新的token腾出空间。
3. 生成质量的好坏,有时取决于分词的对错
中文分词是一个非常复杂的问题,即使是最好的分词器,也会有出错的时候。
最经典的例子就是"南京市长江大桥"。这句话可以被分成"南京市/长江大桥",也可以被分成"南京/市长/江大桥"。如果分词器分错了,AI就会完全误解这句话的意思。
还有一些更隐蔽的分词错误,会导致AI生成的文本出现逻辑错误、语义不通或者答非所问。
4. 不同模型的"中文能力",很大程度上取决于它的分词器
为什么有些国产大模型的中文能力比GPT-4还好?一个很重要的原因就是,它们针对中文做了专门优化的分词器。
GPT的分词器是基于英文设计的,对中文的支持相对较差。而国产大模型的分词器,通常会包含更多的中文常用词,分词准确率更高,token效率也更高。
比如,同样是"人工智能"这个词,在GPT的分词器中是一个token,在很多国产大模型的分词器中也是一个token。但对于一些更具中国特色的词汇,比如"中国梦"、"一带一路"、"新冠疫情",国产大模型的分词器往往能更好地处理。
中文词元|困境与未来
尽管中文大模型已经取得了巨大的进步,但中文token仍然面临着一些根本性的困境。
首先是效率问题。如前所述,中文token的密度比英文高,这意味着同样的计算资源,中文模型能处理的文本量更少,生成速度更慢,成本也更高。
其次是分词歧义问题。中文没有空格分隔,分词本身就是一个难题。很多句子在不同的语境下有不同的分词方式,这给AI的理解带来了很大的挑战。
最后是词汇表覆盖问题。中文的词汇量非常大,而且不断有新的词汇产生(如网络热词)。分词器的词汇表不可能覆盖所有的词汇,对于一些生僻词或者新词,分词器只能把它们拆分成单个汉字,这会影响AI的理解和生成效果。
那么,未来有没有可能出现更适合中文的token化方式呢?
答案是肯定的。目前,很多研究人员和公司都在探索新的中文token化技术。比如:
• 基于字的token化:虽然效率低,但可以避免分词歧义问题
• 动态分词:根据上下文动态调整分词方式
• 更大的词汇表:包含更多的中文常用词和新词
• 专门针对中文的预训练:让模型更好地理解中文的语法和语义
国内的大模型厂商在这方面走在了世界前列。比如字节跳动的豆包、百度的文心一言、阿里的通义千问,都在中文token化技术上投入了大量的研发力量,取得了显著的成果。
写在最后|token背后的语言与文明
token不仅仅是一个技术概念,它背后还蕴含着更深层次的思考:不同的语言,是否需要不同的人工智能?
英文是表音文字,结构简单,容易分词,天然适合计算机处理。而中文是表意文字,结构复杂,内涵丰富,有着独特的语法和语义体系。
如果我们只是简单地把基于英文设计的AI技术移植到中文上,那么中文永远只能是"二等公民"。我们需要的,是真正理解中文、尊重中文、适合中文的人工智能。
这需要我们在token化、预训练、微调等各个环节,都针对中文进行深入的研究和优化。这不仅是技术上的挑战,更是文化上的责任。
毕竟,语言是文明的载体。当我们在谈论中文token的时候,我们其实是在谈论,如何让中华文明在人工智能时代,能够更好地传承和发展。
下一次,当你和AI聊天的时候,不妨想一想:你输入的每一个字,都变成了一个小小的token,在神经网络的海洋里穿梭、碰撞、组合,最终变成了你看到的文字。这是人类历史上最神奇的魔法之一,而我们,都是这场魔法的见证者和参与者。
夜雨聆风