打开手机,在输入框里敲下"今天天气很",别急着按下一个键——看一眼键盘上方那三个灰色的候选词。它们大概是"好""热""冷"。你还没想好要说什么,手机已经替你把可能的下一个词摆了出来。
这个每天被你用几百次、从没多看一眼的小功能,就是一整个大语言模型的核心。不是"很像",不是"简化版"——是同一件事。ChatGPT 干的事,和你手机输入法联想下一个词,本质上是一模一样的动作。区别只在于:它猜得准得离谱,而且能一个接一个地猜下去,猜出整篇文章。
这话听着像在贬低它。恰恰相反。这一章我想让你先牢牢抓住这个"笨"目标,因为整本书要拆的谜题就藏在这里:一个只会猜下一个词的机器,凭什么会写代码、会翻译、会讲笑话、看起来还挺懂事?
它到底在猜什么
先把话说准。我们平时说的 大语言模型(LLM,Large Language Model),拆开就是"大的、关于语言的、模型"。"模型"你就理解成一个函数——一头进去、另一头出来的那种加工机器;"语言"是说它加工的是文字;"大"是说这台机器内部有海量可以调的旋钮(后面几章你会看到具体是几千亿个)。
那它这个函数,输入是什么,输出是什么?
输入:到目前为止的一串文字(比如"今天天气很")。
输出:下一个词最可能是什么。
就这么一进一出。整个大语言模型,你可以先粗暴地理解成这一个动作。
但这里有个关键细节,很多人第一次听会愣一下:它给的不是一个词,而是一张"概率清单"。面对"今天天气很",它内部算出来的东西长这样:
好 → 35%
热 → 22%
冷 → 15%
不错 → 9%
……(剩下几万个词分掉剩下的概率)
注意最后一行。它不是在"好/热/冷"三个里挑,而是给它认识的每一个词都打了个分——包括"香蕉""薛定谔""的""。"。只不过"香蕉"这种在这儿分到的概率低到近乎为零。所以更准确的说法是:语言模型就是这样一台机器,你喂它一段文字,它吐出一整张"下一个词该是谁"的概率表,覆盖它词表里的所有词。
你可能会问:那它怎么就决定说"好"了?——它掷了个骰子。一个被这张概率表加了权的骰子:"好"占了 35% 的面,所以最容易被掷中,但偶尔也会掷出"冷"。这就是为什么同一个问题问它两次,答案会不一样。这个"加权掷骰子"的机制,是它既能干活又会胡说八道的根源,我们留到第十章专门拆。这里你只要记住:模型算的是概率,选词是另一步。
一个词一个词,怎么就成了一篇文章
光猜一个词,顶多是个高级输入法。它怎么写出一整段的?
答案简单到有点狡猾:把猜出来的词接回去,再猜下一个。循环。
我们在脑子里跑一遍。假设它开了个头,要续写一句话:
- 输入"今天天气很" → 猜出"好" → 现在句子变成"今天天气很好"
- 把"今天天气很好"整个再喂回去 → 猜出"," → "今天天气很好,"
- 再喂回去 → 猜出"适合" → "今天天气很好,适合"
- 再喂 → "出门" → "今天天气很好,适合出门"
- ……一直到它猜出一个特殊的"该停了"的信号为止
看清楚这个循环了吗?它每一步都只做同一件事——看着已有的全部文字,猜一个词。它没有"打腹稿",没有先想好整句话再往外蹦。它就像一个只能看着已经写下的字、往后接一个字的接龙玩家,接完再看,再接。这种"拿自己的输出当下一次的输入"的干法,有个专门的名字叫 自回归(autoregressive)——"自"是用自己刚生成的,"回归"是再塞回去接着算。你不用记这个词,记住"写一句,接一个,再回头读一遍全文"这个画面就够了。
所以当 ChatGPT 一个字一个字往外蹦的时候,你看到的不是它在"打字",而是它真的在一次一个词地做几百上千次预测。屏幕上的流畅,是几百次"猜下一个词"接起来的。
凭什么是"猜下一个词"?
你可能觉得这个目标土得掉渣。这么简单的活,凭什么值得造几千亿个旋钮的庞然大物?
反过来想:要想每一次都猜准下一个词,机器被逼着必须搞懂什么?
看这几个填空,你替机器猜猜看:
- "水在 100 度会___" —— 要填"沸腾",它得懂点物理常识。
- "他把钥匙插进锁孔,轻轻一转,门___" —— 要填"开了",它得懂事情的因果顺序。
- "这道菜我等了一个小时才上,还是凉的,服务真是___" —— 要填"差",它得听出这是讽刺,不是夸奖。
- "法国的首都是___" —— 要填"巴黎",它得记住世界的事实。
看出门道了吗?"猜下一个词"这个目标,像一张巨大的网,顺手把常识、因果、语气、事实全都网了进来。因为一个词填得准不准,常常取决于你懂不懂前面那句话到底在说什么。你想让机器在千千万万种句子里都猜得准,就等于逼着它把这些东西全学会——不是我们教它常识,是"猜准词"这个死目标把常识从它身上逼出来的。
这是全书第一个、也是最重要的一个反直觉:智能不是被直接设计进去的,是被一个笨目标"逼"出来的副产品。没人给模型写过"讽刺=表面夸实际贬"这条规则。是它为了在海量含讽刺的句子里把下一个词猜对,自己在那几千亿旋钮里"拧"出了识别讽刺的能力。至于这个逼出来的过程具体怎么发生——它读了多少文字、又是怎么根据猜错来调旋钮的——是第七、第八章的活,这里先按下不表。
这不是魔法,是被规模放大的模式
本书有一条暗线,从这一章就要埋下:它没有魔法,也没有意识。它不"想"表达什么,不"知道"自己在说什么,甚至不知道"巴黎"是个能让人去旅游的地方。它只是发现,在人类写下的天文数字般的文字里,"法国的首都是"后面,跟着"巴黎"这个模式出现得压倒性地多——于是它把这个模式,连同亿万个别的模式,压进了自己的旋钮里。
它是一台被人类文字喂大的、猜下一个词的模式机器。仅此而已——但正是这个"仅此而已",能长出让你惊掉下巴的东西。这中间的落差,就是这本书要一层层拆开的黑箱。
所以本质上,它就是一个填空高手:看着前面的字,猜后面的字,一个接一个,循环到底。你觉得它在思考,其实它在猜。
那么下一个问题自然就来了:机器不认字,"今天天气很"这几个汉字,是怎么变成它能计算的东西的?毕竟函数吃的是数字,不是文字。这就是下一章要拆的第一颗螺丝——怎么把文字剪成小块、再给每块编上号。