知名播客博主 Dwarkesh Patel 最近对 AK 有过一次访谈,这是他的描述:
对我来说,最有意思的部分,是 Andrej Karpathy(常被粉丝称为“卡神”的AI大牛)解释为什么大语言模型(LLM)没法像人一样学习。
果不其然,卡神又造出了一个特别生动的词儿来形容强化学习(Reinforcement Learning, 简称RL):“用吸管吸取监督数据”。
这话啥意思呢?就是说,在一次成功的尝试里,(比如AI下棋赢了),这个“赢了”的最终奖励,会平摊到它走过的每一步、生成的每个词上。哪怕中间有些步骤是错的、或是无关紧要的,只要最后结果是对的,这些步骤也统统会被算法“加分”。
> “我以前就说过,人类不使用强化学习。我认为人类的学习方式完全不同。强化学习比普通人想的要糟糕得多。强化学习很烂。只不过,我们以前有的其他算法比它还要烂得多罢了。”
那么,人类到底是怎么学习的呢?
> “我读一本书,这本书对我来说就是一套‘提示词’(prompts),好让我在脑子里‘合成数据’(synthetic data generation)。你必须通过主动地处理这些信息,才能真正获得知识。但大语言模型(LLM)没有对应的机制;它们真的不会这么干。”
> “我很希望在模型的预训练(pretraining)阶段看到这么一个环节:模型能‘琢磨’一下它读到的材料,并试着把它和自己已经知道的知识‘对上号’(也就是融会贯通)。现在根本没有这种机制。这都还停留在研究阶段。”
那我们为什么不能现在就把这种“思考”训练加到大语言模型里呢?
> “这里面有非常微妙、难以理解的原因,导致这事儿没那么简单。如果我让模型对一本书进行‘思考’,并生成一些合成数据,你乍一看会觉得:‘这看起来很棒啊!为什么不能用它来训练呢?’ 你是可以试试,但如果你坚持这么做,模型的性能实际上会变得更糟。”
> “比方说,我们拿一本书的某一章,我让一个大语言模型来‘思考’一下。它会给你一段看起来非常合理的回答。但如果我让它回答 10 次,你会发现,这 10 次的回答几乎一模一样。”
> “你从这些模型里,得不到人类思考时那种丰富性、多样性和‘熵’(在这里指思考的混乱度和创造性)。你无法像人一样得到各种天马行空的想法。所以,如何在模型趋向于‘坍塌’(collapse)(指回答变得单一、缺乏多样性)的情况下,还能让合成数据起作用,并且保持住这份‘熵’?这还是个研究难题。”
那么,人类是如何避免这种“思维坍塌”的呢?
> “(把人和模型类比)这个点子好得出奇。人类在自己的一生中,其实也会‘坍塌’。小孩子还没有‘过拟合’(overfitting)(指思维僵化,只适应特定模式)。他们会说出一些让你震惊的话。那是因为他们还没‘坍塌’。但我们成年人已经‘坍塌’了。我们最终会反复琢磨同样的想法,我们说的话也越来越趋同,我们的学习率下降,‘坍塌’的情况越来越糟,最后一切都退化了。”
事实上,有篇很有意思的论文(Erik Hoel 的《过拟合的大脑》(The Overfitted Brain))就提出,人类做梦这个功能的进化,就是为了帮助我们提升‘泛化能力’(generalization)(指举一反三的能力),抵抗日常学习带来的‘过拟合’。
于是我问卡神:这事儿是不是特有意思?—— 人类在学习能力最强的时期(童年),却会把学到的具体细节忘得一干二净;成年人虽然也能学得不错,但对读过或看过的东西,记忆力也烂得不行;而大语言模型呢,它们能记住人类根本记不住的海量文本细节,但在‘泛化能力’上却表现得很差。
> “(人类健忘的记忆力)这恰恰是一个‘特性’(feature),而不是一个‘缺陷’(bug)。因为它逼着你只能去学习那些真正具有‘泛化能力’的东西。而大语言模型呢,它们被自己记在(预训练)文档里的海量细节给‘分心’了。这就是为什么我谈到‘认知核心’时,我其实是想把(模型的)记忆力拿掉。我倒希望它们记性差一点,这样它们就必须去(主动)查资料,而只保留那些‘思考的算法’、‘做实验的想法’,以及所有这些用于行动的‘认知粘合剂’。”