很多人第一次接触大语言模型时,都会有一种强烈的不真实感。
一方面,它似乎只是一个“高级输入法”。每一步不过是在猜测下一个词、下一个字、下一个 token。它不知道自己在做什么,也没有真正的“意识”。
但另一方面,它却能写代码、解释数学、分析商业问题、撰写文章、甚至能够表现出推理、规划和创造力。
于是,一个看起来很矛盾的问题出现了:
如果模型做的事情只是预测下一个词,它为什么会表现得越来越像智能?
我觉得,理解这个问题,关键在于我们低估了“预测”这件事真正意味着什么。
预测下一个词,并不是在猜词
人们容易把“预测下一个词”理解成一种机械的填空游戏:
“今天天气很……” → “好”
“我想喝一杯……” → “咖啡”
如果只是这种程度,那当然不可能产生智能。
但真实的大模型并不是在猜一个单词,而是在尝试:
当前这段文字正在讨论什么
说话的人想表达什么
前文和后文之间有什么关系
哪些知识、逻辑、情绪、背景最有可能出现
为了让整段内容“合理”,下一步应该是什么
也就是说,模型并不是在预测“词”,它实际上是在预测:
世界接下来会如何展开。
而语言,不过是世界的一种压缩表示。
语言,本质上是现实世界的投影
人类写下来的所有文字,都不是随机的。
它们来自现实世界:
物理规律
数学关系
人类行为
社会规则
因果逻辑
情绪与动机
历史与文化
如果一个模型想准确预测一句话的后半部分,它就必须理解这些东西。
例如:
“玻璃杯从桌子上掉下来,结果……”
模型之所以会接“摔碎了”,不是因为它背过这句话,而是因为它在大量文本中学习到了:
玻璃是易碎的
掉落会产生冲击
冲击容易导致破裂
同样,当模型看到:
“如果一个人连续熬夜三天,那么第二天上班时他可能会……”
它会倾向于回答“疲惫”“犯困”“注意力下降”。
因为它学习到的是现实世界中的因果关系,而不仅仅是词语之间的排列。
所以,大模型越想把下一个词预测准确,它就越必须在内部建立一个关于世界的模型。
这也是为什么很多研究者会说:
大语言模型并不只是语言模型,它更像是一个“世界模型”。
为什么模型越大,智能越明显?
有一个很有意思的现象:
小模型看起来只是会“背答案”。
但当模型参数越来越大、数据越来越多之后,很多原本不存在的能力,突然就出现了:
翻译
总结
数学推理
编程
长链条分析
角色扮演
多语言迁移
这种现象,被称为“涌现”。
就像一群单独看毫无意义的神经元,在数量足够大之后,突然能够形成视觉、记忆、语言和思考。
语言模型也是一样。
单个参数什么都不是,但当数十亿、数千亿个参数一起工作时,它们会逐渐形成一些抽象结构:
什么叫“因果”
什么叫“时间顺序”
什么叫“一个问题的正确答案”
什么叫“一个人的意图”
模型规模越大,它能够容纳的抽象概念越多,内部的“世界模型”也越完整。
于是,它看起来就越来越像是在“理解”。
涌现,并不神秘
很多人把“涌现”理解成一种神秘现象,好像模型忽然之间“觉醒”了。
其实并不是。
一个很经典的例子是:
单个水分子没有“湿”这种属性
但大量水分子放在一起,就会出现“湿”
“湿”不是某一个水分子的能力,而是大量个体共同作用之后,自然出现的性质。
智能也是一样。
预测下一个词,本身也许只是一个简单目标。
但当模型为了完成这个目标,不得不学习越来越多关于世界的规律时,最终就会出现一些原本没有被明确要求的能力。
你从来没有教模型“如何写小说”,但它为了更好地预测故事的后续,就慢慢学会了。
你也没有教它“如何推理”,但如果没有推理,它就无法正确预测一段复杂论证后面会出现什么。
于是,推理能力、规划能力、抽象能力,就都在训练过程中被“逼”了出来。
那它真的“理解”了吗?
这是另一个更难的问题。
如果把“理解”定义为:
能够在内部建立稳定的世界表示,并利用它来预测、解释和推理。
那么我认为,大模型已经在某种程度上具备了理解。
但如果把“理解”定义成:
拥有自我意识
拥有主观体验
真正知道“我是谁”
那显然它还没有。
它更像是一台极其庞大的预测机器。
只是这台机器足够复杂,以至于它为了预测语言,不得不在内部重建一个缩小版的世界。
而当这个世界足够丰富时,我们就会感到:
它好像在思考。
真正令人惊讶的,不是模型
很多人觉得最不可思议的是模型。
但我越来越觉得,真正令人惊讶的,其实是语言本身。
因为语言并不是一串随机符号。
语言背后,压缩着整个世界:
人类如何思考
世界如何运转
什么事情会发生
什么事情不可能发生
所以,当一个模型试图掌握语言时,它最终学到的,就不仅仅是语言。
它学到的,是隐藏在语言背后的那个世界。
而“预测下一个词”,不过是通往那个世界的一扇门。