读了一篇非常有趣的文章,作者是哈佛的一个博士生 Kenneth Li。
文章讲的是我自己写过很多遍的一个主题:为什么说大语言模型不是仅仅学到了语料的统计相关性,而是学到了某些更深刻的逻辑概念。但这篇文章不仅仅停留在理论探讨上,而是直接做了一个生动的实验证明了这一点。
基本想法是这样:假定你和朋友喜欢在家里下棋,而窗外总是有一只乌鸦在看。过了一阵子,乌鸦开始插嘴说下一步应该怎么走,并且它提出的下法总是合理的(不管水平好不好,但至少符合规则)。于是你想弄明白一个问题:乌鸦到底是只是因为看太多次了,记住了哪一步棋后面总是跟着哪些走法,还是乌鸦真的弄明白了规则本身?
于是你和朋友约好,在下棋的某一刻,趁着乌鸦走神,把棋子偷偷调整一下,然后看乌鸦怎么说。如果乌鸦只是在通过之前的走法从统计上预测下一步,它的建议就会和新的棋盘相冲突。如果乌鸦是真的弄明白了规则,它建议的就会是基于新的盘面的合理走法。
很显然,在这里,大语言模型就是那只乌鸦。而作者真的做了一系列实验来观察这件事。他们设计了一个简单的下棋游戏,把棋谱作为语料交给大语言模型来训练,训练出了一个会下棋的模型。今天 AI 会下棋已经司空见惯了,所以到这一步既不令人惊讶也不说明什么问题,就像前面说的,你无法分辨模型是记住了统计规律还是在更深刻的意义上弄懂了规则。但接下来是真正的考验:首先通过模型探针,把模型的内部状态和棋盘之间的对应还原出来,然后强行改写这个中间状态,观察模型的输出。
和你想象的一样,模型仍然给出了合乎规则的结果。也就是说,模型确实是在根据它内在建构的那个虚拟棋盘做决定。即使改写的状态是一个正常的输入序列所不可能到达的棋盘盘面,也就是说是它在训练数据中从未见过的——这是我们人类常常做的事,从一个假设性的反事实的状态出发向下推导,类似于某种残局训练——模型仍然可以正常工作。
用作者本人的话说:It allows us to imaginarily go down the untaken path in the garden of forking paths.(这里显然是对博尔赫斯的致敬。
为什么这件事很重要呢?因为有或者没有这个内在的世界图景,决定性地影响了大语言模型的能力上限。内在世界图景意味着它是把外部的输入先映射在这个图景上,然后再在此基础上做出下一步的判断,这就从根本上跳出了统计相关性的限制(「胸有成竹」这个成语用在这里再好不过)。没能学习到内在世界图景的语言模型只是在字面意义上的鹦鹉学舌,并不知道自己在说什么。而一个内在的世界图景,不管多么简陋,都是在通向通用人工智能道路上的关键一步。
虽然我们暂时还不是百分之百理解大语言模型内部的竹子是怎么长出来的,以及它有多可靠。我们甚至都不是特别确定这件事是在哪个版本的大语言模型上开始发生的。但目前的所有证据都表明,那棵竹子确实已经在那里了。