主题:让AI自我进化?斯坦福华人博士答辩视频火了,庞若鸣参与评审
际上有两个属性:其一,是传递给语言模型的上下文,用于描述任务是什么;其二,是一个价值函数,你向它输入一个想法(表现为一段字符串),它会输出一个数字,来指示这个想法的优劣程度。而对于 AI 研究环境而言,实现方式非常直接了当。至于上下文,它应该包含代码库属性。也就是说,要告诉你一个研究问题是什么,只需要告诉你相关的 GitHub 仓库是什么,或者你的实验所操作的核心代码是什么。另一件事是,为了评估价值函数,你还需要一个沙盒来分配运行实验所需的资源。因此,你将资源(例如一块 H100 GPU)分配给沙盒。随后,沙盒首先执行这段代码差异,在 AI 研究的背景下,正是这段代码将你的想法具体化了。接着,沙盒会执行 run 命令,然后运行评估脚本。你可以通过精心设计你的环境,使得评估脚本的标准输出正是你所关心的最终奖励信号。所以,在这个抽象概念之下,让我们首先具体谈谈我们实现了哪些 AI 研究环境。这就消除了大量繁杂的工程障碍。最终的评估指标是使用人工验证的 MATH 测试准确率。一旦有了这样一个研究环境,我很喜欢自动化的 AI 研究员的运作方式,它首先会经历这四个步骤的过程。就像从可操作化提议的阶段开始,研究员内部拥有一个被称为构思器的组件。所以,首先你要获取研究环境的上下文,将其输入给构思器,生成你关心的想法。然后,你调用研究员类内部的执行器。你把上下文(在这个场景下是指研究环境的代码库)以及构思器生成的想法提供给它。这会输出代码差异,然后你就可以运行实验了。于是,你用生成的代码差异来调用研究环境的价值函数,它会返回这个想法的性能表现。同时,在另一侧,你也保留了这个想法的记录。这样你就会积累一张实验经验清单,接着时不时地,你可以从这些实验结果中进行学习。想象一下,这个「学习 API」有点像是在更新研究员的一些内在特质。对于这个「学习 API」或构思器的更新,可以采用强化学习的方法,这意味着将修改研究员内部神经网络的参数权重;它也可以像是一个演化搜索过程,维护一个类似实验结果清单的库。在本次演讲的范畴内,我将只聚焦于演化搜索的部分。我们把「学习结果」的过程实现为一个迭代的测试时搜索过程。这个测试时搜索所做的是,它一轮一轮地运行实验;在运行了一些实验之后,它会把过去的想法保存在一个库中。有了研究员内部的这个想法库,当它想要生成一个新想法时,可以执行以下两项操作之一。因此,这变成了一个搜索问题。以下是搜索的最终核心结果:我们可以看到,后训练任务的初始准确率是 48%,而我们的搜索方法将其提升到了 69%。而 CS336 课程排行榜上的最好成绩是 68%。所以,这像是在一种非常弱的意义上,击败了最好的人类成绩。在预训练方面,我们确实取得了一些进展,将时间从 36 分钟优化到了 90 分钟,但排行榜上的成绩实在太惊人了。排行榜的成绩大约是 2.1 分钟。所以在那个案例中,它并没有达到超人类的水平。作为这一部分的总结,我想将其与 s1 项目中的预算强制技术联系起来。让我们稍微转换一下话题,谈谈用于数学推理的测试时缩放。在数学推理中,这里的关键点在于如何强迫模型思考比常规 token 数量更长的时间。假设你想强制模型思考超过 10,000 个 token,如果不采用预算强制技术,模型会先生成一个开始思考的 token,接着生成最初的 500 个 token,然后就会生成一个结束思考的 token。但是有了这项预算强制技术,你可以去掉那个结束思考的 token,并强行追加一个逗号,然后模型就会继续思考下去。因此,无论是算法搜索还是预算强制,从原则上讲,我们都在类似编写一个非常简单的循环,强迫模型一直运行下去。我们观察到了一个非常一致的规律:不管是算法搜索还是写循环让模型强行思考,单纯地扩展测试时计算量都能带来性能提升,但它们都会非常迅速地达到性能瓶颈。另一个观察结果是,无论是在测试时搜索,还是在测试时推理中,都存在一种模式:串行搜索比并行搜索更加强大。在左图中,这是在 nanoGPT 任务上的表现,最佳选择和多数投票并没有带来有意义的提升,但搜索方法却能带来持续一致的改进。这与推理任务中的情况十分相似:多数投票虽然有正的斜率,但提升不大,而串行搜索则大幅提高了这个斜率。所以我认为,这里反映出复用具有一定的价值,这就好比一条法则:串行计算比并行计算更有价值。我认为这正是其价值的体现。在结束实验结果部分的讨论之前,我还没有展示任何定性结果,即模型到底能生成什么类型的想法。在这里,我想向你们展示一个我非常喜欢的想法,尽管它的准确率并不是非常高。这个想法产生于使用 GRPO 进行数学推理的任务中。它提议通过维护一个包含数学事实、定义和中间结果的上下文缓冲区,来创建一个「数学工作记忆模拟」。随着模型逐步解决问题,这个缓冲区也会随之更新,并为后续的推理步骤提供额外的上下文。这就模拟了人类在进行复杂计算时,如何维持和利用工作记忆的过程。令我惊讶的第一件事是,模型能够非常准确地将这个想法编写成可执行的代码。它的具体做法是,引入了一个名为「上下文缓冲区」的类。这个类本质上有两个方法:添加上下文和基于查询获取上下文。在 RL 训练循环中,它会初始化该缓冲区。对于每一个提示词,它都会尝试从缓冲区中获取上下文,并将检索到的上下文附加到提示词中。这样一来,在解决数学问题时,这就好比在考试情境中直接给你提示。该方法的性能比基准提升了 10%,虽然不是最好的结果,但我真的非常喜欢它,因为我个人也有一个类似的缓冲区。我实际上有一本手写的笔记本,里面记录了各种数学技巧,比如裂项相消、 epsilon 球空间、琴生不等式以及何时使用它们。所以我非常高兴能看到它提出了与我在做的事情非常类似的方法,而且像 GPT-4 这样的模型竟然能够将其实现出来。结语:超越人类的必然性关于持续自我改进式 AI 的三个方面的主要结果就讲到这里。接下来,我想进入结语部分,内容可能稍微有点形而上。在演讲的开头,我们明确了这个定义:持续自我改进式 AI 所能实现的改进,要比人类创造者所能达到的改进更好。我之所以这么说,是为了保持严谨,这样这个主张就能被我们现有的实验结果所证实。但就目前而言,我们看到 AI 胜过人类的方式,主要是通过用数量堆叠来克服质量上的限制。这种机制非常无趣。如果我们看一下这张图,基准模型是在有限的人类数据上训练的。你问 AI 能否扩展得更好,但事实是,首个检查点的初始损失表明,人类生成的数据质量依然更好。只是因为 AI 的数据是无限的,它可以通过数量来弥补质量上的不足。另外,这是我们团队的 Weights & Biases 实验面板,你可以看到,对于研究人员来说,可能只跑了 13 个或 9 个实验,但对于 AI 执行的实验来说,我们看到的是 5,000 个甚至 30,000 个实验记录。如果一个人类博士生下周来找导师,他不可能说「好的,我上周测试了 30,000 个想法」。虽然我无法预见未来,但根据我们目前的结果,人类研究员依然具有更强的构思能力,只不过 AI 研究员工作得太努力、太不知疲倦了,所以它能霸榜 CS336 的排行榜。是的。因此我认为,AI 社区里的人们真正关心的问题是:AI 是否能够自我改进,并变得比它的创造者更强大?因为我目前没有这方面的实验结果,所以我想从物理学中一个完全正交的视角,来解释为什么我认为这是可能的,甚至几乎是必然的。我想向你们展示爱因斯坦是如何以一种安静而精确的方式,创造了一个超越他自身认知的理论的。首先,我们可以将一个理论视作一种生命,因为它能够进化、能够变异,它有自己的生
回帖(0):全部回帖(0)»