自我进化:当语言模型学会向自己学习

一项关于演化程序合成的交互式探索

Julien Pourcel, Cédric Colas, Pierre-Yves Oudeyer (Inria)

摘要 (仿 *Nature* 风格)

大型语言模型(LLMs)在代码生成方面展现了巨大潜力,但对于需要深度抽象推理的复杂程序合成任务,它们往往在单次尝试中便会失败。基于搜索的演化算法通过迭代探索解空间提供了一条有前景的路径,然而其效率受限于底层生成模型固定不变的能力。在此,我与我的同事们提出了一种名为SOAR(Self-improving Operators for Automated program Refinements)的方法,该方法将语言模型集成到一个自我改进的演化循环中,从而学习程序合成。SOAR在两个阶段之间交替进行:(1)一个演化搜索阶段,利用LLM采样和改进候选解;以及(2)一个“事后学习”(hindsight learning)阶段,将成功的和失败的搜索尝试转化为有效的“问题-解”对,用于微调LLM的采样和改进能力。这种机制使得模型在后续迭代中能进行更高效的搜索。我们在极具挑战性的ARC-AGI(抽象与推理语料库)基准上验证了SOAR。实验结果表明,无论模型规模大小,SOAR都取得了显著的性能提升,并揭示了采样与改进微调任务之间的正向迁移效应。更重要的是,这种改进能力可以迁移到测试时自适应训练中,使我们的系统最终解决了高达52%的公开测试集任务,超越了依赖更大规模闭源模型或人工标注数据的方法。这项工作展示了一条让AI系统通过从自身经验中学习来引导自身能力增长的路径,为解决复杂推理任务开辟了新的可能性。

一、问题的起源:AI的“高原反应”

大家好,我是Julien Pourcel。今天,我想和大家聊聊一个在AI领域,尤其是程序合成中,我们经常遇到的一个瓶颈——我称之为“高原反应”。想象一下,我们拥有了像GPT-4这样强大的大型语言模型,它们就像是装备精良的登山者,能够轻松攀登许多代码山峰。但面对那些真正陡峭、需要抽象推理的绝壁,比如ARC-AGI基准测试,它们往往爬到一半就停滞不前,仿佛遇到了稀薄的空气,再多的尝试也只是在原地打转,收效甚微。

ARC-AGI的每个任务都是一个谜题。它给你几个“输入-输出”的网格示例,要求你找出其中隐藏的转换规则,并应用到新的测试输入上。这些规则可能涉及对称、计数、甚至简单的物理直觉。对人类来说,这通常不难,但对AI来说,这要求它超越模式匹配,进行真正的逻辑推理和程序构建。

传统的演化算法,就像是派遣一大群经验不足的登山者,让他们随机尝试各种路径。虽然人多力量大,但没有好的向导(智能的变异算子),这种搜索效率极低,如同大海捞针。而直接使用LLM,就像是只派一个超级登山者,他很强,但如果他的第一直觉是错的,他就卡住了。这就是我们面临的“高原”:单纯增加搜索次数或模型参数,性能提升会迅速达到一个平台期。

下面的动画直观地展示了这个问题。想象一下,无数的程序“粒子”被发射出去,试图解决一个难题(穿过屏障)。即使有强大的模型,绝大多数尝试都失败了,只有极少数幸运儿能碰巧成功。这就是固定能力模型的局限性。

动画1:固定能力的“高原”

生活化类比:这就像用一把固定的钥匙去开一把复杂的锁。你可以尝试无数次,但如果钥匙的形状从根本上就不对,你永远也打不开。你需要的是一把能够根据失败经验自我调整、改变形状的“智能钥匙”。

状态: 待开始 | 成功穿透: 0

二、SOAR的诞生:会学习的登山队

面对这个“高原”,我们不禁自问:能不能让我们的AI登山者在攀登过程中变得更聪明?能不能让他们从每次的成功和失败中总结经验,下一次爬得更高、更稳?这就是我们开发SOAR(Self-improving Operators for Automated program Refinements)框架的初衷。

SOAR的核心思想很简单:创建一个自我强化的闭环。它不再把LLM看作一个固定的工具,而是将其视为一个可以成长的“学徒”。这个学徒(LLM)在一个演化循环中不断地解决问题和反思学习。

这个过程分为两步,像一个登山队的“出征”与“复盘”:

  1. 演化搜索(出征): 我们让LLM生成一批初始的程序方案(第一批登山队员出发)。然后,我们评估这些方案,看看哪些离目标更近。对于有潜力的方案,我们让LLM对它们进行“改进”,生成新一代更好的方案(让有经验的队员带领新人,探索更有希望的路径)。
  2. 事后学习(复盘): 在一轮搜索结束后,我们收集了大量的“行动记录”——哪些程序成功了,哪些失败了,以及是如何失败的。我们利用这些宝贵的记录,去微调(Fine-tune)我们的LLM。这就像登山队晚上围着篝火开会,分析白天的路线图,总结经验教训,让整个队伍的技能都得到提升。

这个循环不断重复,形成了一个“飞轮效应”:更聪明的模型能进行更有效的搜索,而更有效的搜索又提供了更高质量的训练数据,从而塑造出更聪明的模型。

动画2:演化搜索的过程

生活化类比:想象一个园丁培育新品种玫瑰。他从一片玫瑰园(初始种群)中,挑选出颜色最鲜艳、花瓣最丰满的几株(有潜力的解),让它们相互授粉(改进与交叉),期待下一代能开出更美的花朵。这个过程不断重复,最终培育出完美的品种。

“事后诸葛亮”的智慧:Hindsight Relabeling

在“复盘”阶段,一个关键的挑战是:大多数搜索尝试都是失败的,我们能从失败中学到什么?直接的答案似乎是“不要这样做”。但这太浪费了!

这里,我们引入了一个非常巧妙的技巧,叫做“事后学习”或“事后重标记”(Hindsight Relabeling)。它的理念是:没有失败的路径,只有走错的目的地。

想象一个程序本来的任务是“把所有蓝色方块变成红色”,但它错误地“把所有蓝色方块都删除了”。从原任务看,这是个彻底的失败。但我们可以换个角度:这个程序完美地解决了另一个新任务——“删除所有蓝色方块”。

于是,我们创造一个虚拟的新任务,并将这个“失败”的程序作为该任务的“成功”范例来训练模型。通过这种方式,每一次失败的尝试都转化成了宝贵的、正向的训练数据。这极大地丰富了模型的知识库,让它学会了各种各样的代码操作和逻辑,而不仅仅是那些恰好能解决当前特定任务的技巧。

动画3:事后学习的魔力

生活化类比:你本来想按照菜谱做一道“红烧肉”,结果不小心把糖放成了盐,做出了一盘“盐焗肉”。对于“红烧肉”来说,你失败了。但你现在拥有了一份完美的“盐焗肉”的制作方法!你把这个新菜谱记下来,你的厨艺知识库就扩大了。

原始任务成功: 0 | 新任务学会: 0

三、惊人的成果:打破AI的“缩放定律”

理论很美好,但SOAR在实践中效果如何?结果超出了我们的预期。我们在一系列不同规模的开源语言模型上进行了实验,并见证了“飞轮”转动起来的力量。

最核心的发现是:SOAR打破了传统的“缩放定律”(Scaling Laws)。通常认为,要提升AI性能,要么用更大的模型,要么用更多的计算资源进行搜索。但这两条路都会很快遇到瓶颈。SOAR展示了第三条路:通过自我改进,让模型本身变得更高效。

下图的动画生动地再现了我们论文中的关键图表。你可以看到,没有学习能力的基线模型(灰色曲线)在增加计算预算时,性能很快就饱和了。而SOAR的每一次迭代(彩色曲线),都将性能天花板整体抬高到一个新的水平。

动画4:SOAR的自我进化飞轮

这个动画展示了SOAR的核心——迭代学习。初始时,模型的“知识流”比较混乱。每一次“学习迭代”后,模型的能力得到提升,粒子流会变得更加平滑、有序,能更快、更准地命中目标。粒子的颜色从暗到亮,也象征着模型能力的增强。

迭代次数: 0 | 知识流效率: 混乱

更令人振奋的是,小模型通过SOAR的加持,甚至能超越那些比它大得多的、未经训练的巨型模型。例如,我们的7B(70亿参数)模型,经过几轮自我改进后,在ARC-AGI上的表现超过了强大的GPT-4.1。这证明了“智慧”比“体型”更重要。

最终,通过整合多个不同规模的SOAR模型,并进行测试时自适应训练(即在解决未知测试题时也在学习),我们的系统解决了ARC公开测试集中52%的任务。这是一个新的里程碑,尤其是在没有使用任何人工编写的解决方案或领域特定语言(DSL)的情况下实现的。

动画5:打破性能天花板

这是一个交互式图表,模拟了模型性能与投入(如模型大小或计算量)的关系。你可以看到,“蛮力搜索”很快就遇到了瓶颈。而SOAR通过一次次的迭代学习,不断地“掀开”这个天花板,达到新的高度。

四、核心机制图解

为了更清晰地理解,我用几个简单的示意图来拆解SOAR的关键组件。

输入网格 f ( ? ) 输出网格 ARC任务基本结构

图1:ARC任务的核心——根据示例推断未知的转换函数 \(f\)。

来自6000个程序的输出预测 票数: 3500 票数: 500 票数: 2000 最终选择 多数投票机制

图2:多数投票机制。将成千上万个程序生成的不同结果进行分组计票,选择票数最高的作为最终答案。

五、结论与展望:迈向自主学习的AI

SOAR的成功,为我们揭示了一条通往更强大、更自主的人工智能的道路。它证明了,AI系统不必永远依赖于人类提供的、静态的知识库或模型。它们可以像人类一样,通过实践、试错和反思,不断地学习和成长。

我们相信,这种自我改进的框架并不仅限于程序合成。它可以被应用到更广泛的领域,如科学发现、数学定理证明,甚至是艺术创作。任何需要通过搜索和迭代来寻找解决方案的复杂问题,都有可能从SOAR的理念中受益。

当然,前方的路还很长。如何进一步提高学习效率?如何防止模型陷入局部最优的“思维定势”?如何让模型学会创造性地提出新问题,而不仅仅是解决我们给它的问题?这些都是我们接下来需要探索的激动人心的方向。

我们的工作只是一个开始。它像是在AI的“高原”上建立了一个可以不断向上建设的营地,而不是一座封顶的塔。我们希望它能启发更多的研究者,共同探索如何构建能够真正思考、学习和创造的通用人工智能。