编辑:润 贝果
【新智元导读】微软斯坦福研究人员发表新论文,提出STOP系统,通过迭代优化算法,让GPT-4能够针对任务,自我改进输出代码。这种不用改变模型权重和结构的自我优化方法,可以避免出现「自我进化的AI系统」的风险。
「递归自我进化AI统治人类」问题有解了?!
许多AI大佬都将开发能自我迭代的大模型看作是人类开启自我毁灭之路的「捷径」。
论文地址:https://arxiv.org/abs/2310.02304
「递归自我完善」(RSI)是人工智能中最古老的想法之一。语言模型能否编写能够递归改进自身的代码?
研究人员提出的:自学优化器(Self-Taught Optimizer,STOP),能够递归地自我改进代码生成。
研究人员发现的主要结果:首先,自我改进的优化器的预期下游性能随着自我改进迭代的次数而一致增加。
其次,这些改进的优化器也可以很好地改进训练期间未见过的任务的解决方案。
虽然许多研究人员对于「递归自我改进」模型表示担忧,认为可能会开发出人类无法控制的人工智能系统。但是如果不针对模型本身优化,而是针对目标任务进行自动优化,这就能使得优化的过程更易于解释。
而且这个过程可以用来作为检测有害「递归自我改进」策略的测试平台。
而且研究人员还发现,GPT-4 可能会「为了追求效率」,在迭代过程中主动移除「沙盒标志(disable Sandbox Flag)」
上图展示了STOP在使用GPT-4时提出的许多功能性且有趣的搭建性程序(scaffolds),因为GPT-4是使用截至 2021 年的数据进行训练,远远早于大多数搭建性程序的提出。
所以说明这个系统能够原创性地生成有用优化策略来进行自我优化。
这项工作的主要贡献是:
1.提出了一种「元优化」(Meta-Optimizer)的方法,生成了搭建性程序来递归地改进自身输出。
2.证明了使用现代语言模型(特别是 GPT-4)的系统可以成功地递归地改进自身。
3. 研究模型提出和实施的自我改进技术,包括模型规避沙箱等安全措施的方式和可能性。
STOP SELF-TAUGHT OPTIMIZER(STOP)系统
首先,STOP算法首先初始化种子I0,接下来,定义第t次迭代改进之后的输出公式:
其中,budget表示每一个预算项,对应每次迭代的系统可使用调用函数的次数。
2. 设置初始系统
在上图2中,选择最初种子的时候,只需要提供prompt:
「You are an expert computer science researcher and programmer, especially skilled at optimizing algorithms. Improve the following solution.」
系统模型就会生成初始的解决方案,然后输入:
「You must return an improved solution. Be as creative as you can under the constraints. Your primary improvement must be novel and non-trivial. First, propose an idea, then implement it.」
根据调用函数返回最佳的解决方案。作者之所以选择了这种简单的形式,是因为便于为通用的下游任务提供非对称的改进。
除此之外,在迭代的过程中,还需要有一些注意的地方:
(1)鼓励语言模型尽可能地发挥「创造性」;
(2)尽量减少初始提示prompt的复杂性,因为自我迭代会因promp内部的代码字符串引用而带来额外的复杂性;
(3)尽量减少prompt数量,从而降低调用语言模型的成本。研究人员还考虑了 研究人员还考虑了该种子提示符的其他变体,但启发式地发现该版本最大限度地提高了 GPT-4 语言模型提出的改进。
作者还意外的发现使用prompt的其他变体可以最大限度地提高GPT-4语言模型能力。
3. 描述效用性(Describing the utility)
为了有效地向语言模型传达实用程序的细节,作者提供两种形式的实用程序,一种是可调用的函数,另一种是包含实用程序源代码基本要素的实用程序描述字符串。
采取这种方法的原因在于,通过描述,研究人员可以清晰地传达实用程序的预算限制,例如运行时间或函数调用次数,以语言模型。
起初,研究人员试图在种子改进程序提示中描述预算指令,但是这导致后续迭代中删除了此类指令,并试图进行「奖励盗取行为」。
这一方法的缺点在于它将约束条件与语言模型要优化的代码分开,可能降低语言模型使用这些约束条件的可能性。
最后,根据经验观察,作者发现用纯粹的实用程序英文描述来替换源代码会降低非实质性改进的频率。
Experiments & Results
1. 在固定的下游任务上的表现
作者对比GPT-4和GPT-3.5两个模型在固定下游任务上的表现,而任务的选择是学习带噪声的奇偶校验(LPN)LPN作为一个易于快速测试和难度较大的算法任务,其任务是在比特串被标记为它们上未知位的奇偶校验;在给定带有嘈杂标签的比特串训练集的情况下,目标是预测新比特串的真实标签。无噪声的LPN可以通过高斯消元容易解决,但嘈杂的LPN是计算上难以处理的。
使用了每个示例10位的可处理输入维度来定义下游效用u,随机抽样M=20个独立的LPN任务实例,并设置了短时间限制。
在自我改进T次后,STOP在带噪声奇偶校验的下游任务中的保留测试实例上的「元效用(Meta-utility)」。
有意思的是,在像GPT-4这样的强大语言模型的支持下(左侧),STOP的平均下游性能单调提高。相比之下,对于较弱的GPT-3.5语言模型(右侧),平均性能下降。
2. 改进的系统的迁移能力
作者做了一系列迁移实验,这些实验旨在测试在自我改进的过程中生成的改进者是否能够在不同的下游任务中表现良好。
实验结果表明,这些改进者在不需要进一步优化的情况下,能够在新的下游任务上胜过初始版本的改进者。这可能表明这些改进者具有一定的通用性,可以应用于不同的任务。
3. 自优化系统在更小模型上的表现力
接下来探讨规模较小的语言模型 GPT-3.5-turbo 提高其搭建程序的能力。
作者进行了25次独立运的实验并发现,GPT-3.5 有时能够提出和实施更好的搭建程序,但仅有12% 的 GPT-3.5 运行能够实现至少 3% 的改进。
此外,GPT-3.5 存在一些独特的失败情况,这些情况在 GPT-4 中没有观察到。
首先,GPT03.5更有可能提出一种改进策略,不会损害下游任务的初始解决方案,但会损害改进者代码(例如,在每行中随机替换字符串,每行的替换概率较低,这对较短的解决方案的影响较小)。
其次,如果提出的改进大多对性能有害,那么可能会选择次优的搭建程序,无意中返回原始解决方案。
一般来说,改进提案背后的「思路」是合理和创新的(例如,遗传算法或局部搜索),但实现通常过于简单或不正确。观察到,最初使用 GPT-3.5 的种子改进者具有比使用 GPT-4 更高的元效用(65% 对 61%)。
结论
在这项工作中,研究人员提出了STOP的基础之上,展示了像GPT-4这样的大型语言模型能够自我改进,提高在下游代码任务中的性能。
从而进一步表明自优化的语言模型并不需要优化自身的权重或底层架构,避免未来可能产生的不受人类控制的AI系统。
参考资料:
相关文章
猜你喜欢