人工智能智能体中的递归自我提升:实验究竟揭示了什么
仔细研究哥德尔机器、STOP、哥德尔智能体、SICA、达尔文哥德尔机器、SEAL与超智能体,以及如何判断一个自我修改的智能体是否真的有所改进。
来源: Can Artificial Intelligence Design a Better Artificial Intelligence?
如今,让编程智能体修复应用程序中的错误已属常规操作:它打开文件,修改几行代码,然后运行测试套件。若将指令改为“改进用于完成这项工作的软件”,那么目标就变成了智能体本身:它如何定位文件、使用哪些工具、如何在尝试失败后恢复,以及最终版本是否能够实现进一步改进。最后一个问题正是递归自我改进(RSI)所探讨的内容。本文区分了自我修改与真正的自我改进,介绍了主要实验及其数据,并给出了一组问题及简单的实验设计,帮助你自行判断这类说法的真实性。
自我修改、自我改进与递归
提示模型重新检查其答案可以获得更好的回复,但这并不会提升模型处理下一项任务的能力,只有输出结果发生了变化。要清晰地理解RSI,需要区分三个层次:
- 自我修改:系统的某个部分发生了变化。
- 自我提升:这种变化带来了可衡量的好处。
- 递归自我提升:新获得的技能会强化推动后续改进的机制本身。
举个具体例子有助于理解。如果某个智能体在搜索文件方面变得更高效,它就能更轻松地完成任务,这就是自我提升。如果同样的高效搜索能力还能帮助它理解自身的代码库,进而提升其自行编辑代码的能力,那么这种收益又会反馈到改进过程中,这就是递归部分。
“它自身”所指的对象也很重要。一个已部署的AI系统很少仅仅是语言模型而已。该模型存在于各种工具、内存、操作指令以及协调代码之中,而即便权重保持不变,这些外部系统也可能发生很大变化。这种外层的变化依然属于进化,但任何关于自我改进的宣称都应明确指出是哪一层发生了变化:权重、智能体代码、提示词、工具,还是改进流程本身。
哥德尔机器:在更改之前证明其益处
由于尔根·施密德胡伯提出的哥德尔机器是一种经典的数学框架。该系统可以重写自身软件的任何部分,包括用于搜索证明的组件,但前提是它必须先证明这种重写能在其既定的目标和假设下提升预期效用。
这一保证的实际范围比听起来要窄。它并不承诺在所有条件下每次修改都能对现实世界产生积极影响;其有效性仅取决于所选的公理、环境模型以及效用定义。要找到能够证明某项修改具有益处的正式证明,在计算上也可能极为困难。
因此,目前大多数实验都采用经验主义方法:不预先证明某项修改有益,而是运行经过修改的系统并测量其性能表现。这种方法更为实用,但将评估的负担转嫁给了实验者。随之而来的一个明显问题是:所测量的结果是否真的属于你关心的那种进步。
停止:让优化工具用于自身
自我学习优化器(STOP)始于一个“改进器”,即一种调用语言模型来提出并对其他程序的改进方案进行评分的程序。随后,该改进器会被用于自身的源代码,经过更新的改进器会在下一轮中继续产生进一步的改进。
值得注意的发现是,这种循环在不同模型上的表现并不一致。在GPT-4上,平均性能会随着迭代次数的增加而提升;而在GPT-3.5和Mixtral上则会出现下降。由于底层的语言模型从未改变,作者明确指出他们的研究并非完整的RSI。
这对实践者来说的启示很简单:重复执行某个过程并不能保证取得进展。一种效果不佳的改进方法在每次应用时都可能只会加剧自身的错误。
Gödel Agent:重写智能体的自身逻辑
Gödel Agent允许语言模型在运行时修改该智能体的推理逻辑和行为代码。其性能通过阅读理解、数学题以及基于知识的问题解答能力来评估,首先在验证集上进行优化,然后再在独立的测试集上检测优化后的智能体表现,这是避免过度适配测试数据的有效方法。
这些核心数据需要仔细解读,因为不同版本是在不同条件下运行的。在MGSM平台上,Meta Agent Search的准确率为53.4%,而受限版的Gödel-base版本准确率为64.2%,二者属于同类对比。无限制且不使用Gödel技术的版本准确率可达90.6%,但由于其运行条件不同,不应将其视为同一对比维度下的下一阶段成果。
从技术层面来看,更值得关注的是设计选择而非得分:该智能体用于解决问题的方法本身已变成可被检索和修改的软件。
SICA:能够编辑自身代码库的编程智能体
自我改进型编程智能体(SICA)让这个问题更加具体化。该智能体会修改自己的代码,每个新版本都会根据其完成任务的效果、所需时间以及成本来评分。
在从SWE-bench Verified中随机选取的50个任务中,性能在第一轮迭代时为17%,到第14轮迭代时达到53%的峰值,最终轮次则为51%。也就是说,改进并非呈单调上升趋势。研究人员估计,进行15轮迭代所需的API使用费用约为7,000美元。
有两个因素影响了这一标题所传达的结论。首先,作者指出每项任务5分钟的时限可能压低了初始得分,而早期的提升主要得益于更快的文件编辑工具,这些工具使智能体能在同样的时限内完成更多工作。其次,该智能体所实现的改进看起来只是普通的工具性操作:通过精确的编辑而非重写整个文件,以及通过遍历代码的解析语法树而非进行纯文本搜索来查找函数和类。
尽管如此,这一结果也绝非微不足道,但从17%提升到53%并不意味着该系统的整体智能提升了近两倍。实际测量的是在特定任务集、特定时间限制下的表现,而大部分提升其实正是人类工程师会为编程智能体添加的功能。
Darwin Gödel机器:一个档案库而非单行代码
达尔文哥德尔机器(DGM)摒弃了单一版本链的概念。它会保存各种智能体变体的档案,并允许从这些变体中衍生出新的分支。即便某个变体目前的性能评分较低,它仍有可能成为后续更有用改进的起点,这正是该名称中所体现的开放式进化特性。
根据v3版本的论文,所报告的改进包括:在SWE-bench子集评估中的准确率从20%提升至50%,在完整的Polyglot基准测试中的准确率则从14.2%上升至30.7%。该研究还使用了开发过程中未涉及的其他模型和基准测试进行了迁移实验,这些实验表明部分改进效果可推广到开发任务之外的场景,但尚未达到在所有领域都能实现全面提升的程度。与其他基于智能体的研究一样,基础模型保持不变,只有围绕它们的智能体软件会不断进化。
成本也是需要考虑的因素。作者估计在SWE-bench上运行一次DGM的成本约为22,000美元,而每个基线方法的运行成本则在10,000美元左右。因此,仅通过分析各组件的贡献并不能完全确定在预算相同的情况下DGM是否仍能保持优势。
最具有借鉴意义的观点是关于搜索策略:如果直接丢弃所有看似出现退步的版本,就可能会错过通往更优系统的路径,因为优秀的设计有时需要经过一些较弱的中间阶段。
当权重或改进器发生变化时
智能体代码实验并非该领域的全部。SEAL(自适应语言模型)研究的是一种能够自行生成微调数据及更新指令的模型,这些指令还包括关于如何进行适配的说明。通过依据这些自动生成的指令进行训练,可以实现对模型权重的持久性修改,因此自我改进研究显然并不局限于智能体框架的构建。不过,权重发生变化这一事实本身并不能说明收益会无限增长或加速提升。
Hyperagents解决了另一类限制问题。它将任务代理与负责编辑它的元代理合并为一个可编辑的程序,这样用于实现未来改进的机制本身也可以被修改。作者指出,其中一些元层面的改进可以在不同的任务领域之间传递,并在多次运行中不断积累。这些研究共同将讨论焦点从“人工智能能否编辑自己的代码?”转向了“它能在多大程度上改进自身发展的过程?”
对于任何“性能提升”说法的四个问题
当自我改进曲线上升时,值得探究究竟是哪些方面提升了。
在哪个方面有所提升?
准确率可能会上升,但成本和延迟也可能随之增加。对于研究目标而言这种权衡或许可以接受,但在产品应用中则可能不可行,因此应全面考察各项指标,而不仅仅是最显眼的那个。
在哪些任务上表现更好?
那些用于选择下一个版本的重复性任务的改进效果,其证据力度不如开发过程中从未被使用的最终测试的改进效果。每当测试分数影响另一个选择决策时,整个流程就会逐渐偏向于迎合该测试的标准。
哪个版本更好?
即使大多数新候选版本的性能更差,但只要能保留最佳结果的版本,其“迄今最佳”数值仍会持续上升。应关注候选版本的分布情况,而不仅仅是最高值。
它的自我改进能力是否在提升?
解决的任务数量越多,可能暗示其自我改进能力越强,但这两者是不同的衡量标准。更严谨的实验会验证在相同的资源限制下,新版本能否产生比其前代更好的后续版本。
这些问题并非旨在否定进步,而是帮助你更精准地定义什么是进步,从而能够识别它。
你可以进行的自我提升实验
对于个人开发者或小型团队而言,现实的切入点并非完全开放整个系统供自行修改,而是选择一种特定的开发工具并对其加以严格限制。以Java代码库的测试生成工具为例:
- 固定不可更改的部分:该工具不得修改应用程序代码或评估测试。
- 明确可更改的部分:仅限于其自身的文件扫描策略、指令以及测试生成工作流程。
请将此视为一种实验设计,而非结果保证。使用开放模型或免费配额可以降低运行成本,但更低的成本并不能证明这些改动确实有用。首先应寻找一个可明确量化的收益,只有在实现之后再扩大研究范围。这一评估原则同样适用于您发布的任何智能体;我们的TypeScript中有限智能体循环的可靠设计模式指南介绍了如何控制此类循环的运行表现。
更优秀的智能体并不意味着智力爆炸
那么,人工智能能否设计出更优秀的人工智能呢?在上述实验中,从某种特定意义上来说答案是肯定的:人工智能系统帮助创造了能力更强的智能体,而且有一些团队将这一流程应用到了自己的软件中。但他们并未展示出那种随着每次迭代而加速、能在不同领域通用且无需依赖人类设计决策的持续改进机制。将这类工作简单视为“提示工程”会忽视其实际成果,而称其为智能爆炸的起点则又夸大了其意义。
关键要点
- 始终要弄清楚是哪一层发生了变化:权重、智能体代码、提示词、工具,还是改进机制本身。
- 像哥德尔机器这样的形式化保证仅在其假设范围内成立;而经验主义方法则用评估结果替代严格证明,因此评估质量决定了最终效果。
真正的难题并非让人工智能修改自身的代码,而是要可靠地证明这种修改确实代表了进步,并将这一进步延续到下一轮优化中。