“用了ChatGPT几个月,我才意识到,它在我输入的文字上动了哪些手脚——在它自己都还没开始‘思考’之前。”这是一位用户在使用过一段时间后的发现。我们每次在对话框里敲下提示词,看似简单的交互,其实背后已经有四道工序在瞬间完成:把文字切成碎片、将词语转成数字、让数字在近百层网络中互相打量、最后像赌徒一样掷出下一个字。这个过程里没有推理,没有理解,只有经过数十亿次矩阵乘法训练出的概率直觉。

这或许让人不安。因为最终呈现的答案那般流畅,带着逻辑,透着“thinking”的质感。但这四步的底层仅仅是“最可能的下一个词是什么”这个简单游戏,被重复直到看不见底。

打开网易新闻 查看精彩图片

第一步:标记化——把句子剁成模型能消化的碎片

ChatGPT看不懂句子。它只认得一种东西,叫做token。你输入的一整段话,会在第一时间被切分成一个个token,有点像在做音节或者短词的切割。这个过程也叫分块。一个值得玩味的细节是:空格也会被当作词汇表的一部分区别对待。比如“ ChatGPT”(前面带一个空格)和“ChatGPT”居然是两种不同的token。模型看到它们,就像看到两个完全不同的符号,连基本的识别都重新出发。这种设计可以说非常反人类直觉,但对于模型而言,空白字符就是信息的一部分,它不负责替我们“归一化”。

第二步:向量化——让语言变成数学的语言

切好的token还不能直接喂给模型,因为大语言模型的底层只认数字。于是每个token会跟着一个步骤,被转换成一个向量。这个向量大概就是一个约等于12000个数字的列表,它编码着这个词的语义特征。有趣的地方在于,语义相近的词,在这个超高维空间里会彼此靠近。“king”和“queen”是邻居,“king”和“Apple”则远隔重洋。也就是在这一刻,语言被彻底数学化了,一切语法、修辞、隐喻,都被压成一个长度固定的数字数组。

第三步:Transformer层——96层“互相关照”的矩阵乘法

这串数字向量接下来会依次穿过大约96层注意力机制。每一层里,每一个token都会去“看看”其他所有token,然后给自己算出一个权重,决定自己应该多在意别的词。这就能解释为什么模型能搞清楚“the animal didn’t cross the street because it was tired”里的“it”指的到底是animal还是street——它不是通过查语法书,而是通过大规模训练里学到的权重关系,依靠一次又一次的矩阵乘法,从数据里熬出了这种分辨力。整个过程中没有规则引擎,没有词法句法,只有纯粹的数值计算。

第四步:采样——像掷骰子一样一个词一个词地猜

模型最后并不会一口气吐出一整句话。它每次只生成一个token,从这个token再预测下一个,重复这个过程直到触发停止条件。在每一步,模型都会给整个词汇表里的每一个候选词打一个概率分,然后根据概率来采样。举个例子,当它看到“法国的首都是----”这个上下文,内部可能会出现这样的概率分布:巴黎95%,意大利80%,柏林81%,德克萨斯5%。巴黎以95%的概率成为下一个最可能出现的词。这不是理解,不是地理知识,仅仅是基于已有数据的统计倾向。

整个过程就这么简单,没有推理,没有理解,只有“基于前文,接下来哪个token更可能登场”的笨办法。然而就是这套机制,被塞进数千亿参数、喂进海量数据后,生长出了让人感觉会思考的回答。我们被欺骗的不是智能,而是规模带来的错觉——当足够多的概率叠加在一起,当这种接龙足够长,一个不带任何理解能力的系统,也能模拟出智慧的假象。