只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

作为最领先的大模型,GPT-4 有自我纠正天生代码的威力,结合人类反应,自我纠正威力还能进一步的提高。

大型语言模型(LLM)已被证明能够从自然语言中天生代码片段,但在应对复杂的编码挑战,如专业竞赛和软件工程专业面试时,仍面临巨大的挑战。最近的钻研试图通过利用自建设来提高模型编码机能。自建设是指让模型反思并纠正自己代码中的毛病。

下图 1 显示了基于自建设办法的典型工作流程。首先,给定一个标准,从代码天生模型中对法式举行采样;然后在作为一部分标准供给的一套单元测试上执行法式;如果法式在任一单元测试中失败,则将毛病消息和毛病法式供给给一个反应天生模型,该模型输出代码失败原因的简短解释;最后,反应被传递给建设模型,该模型天生法式的最终固化版本。

从表面上看,这是一个非常有吸引力的想法。这种设计能让系统克服在解码过程中由离群样本引起的毛病;在建设阶段,可以轻松地整合来自编译器、静态分析工具和执行引擎等符号系统的反应,并模仿人类软件工程师编写代码的试错方式。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

然而,自建设需要更多的模型调用,计算成本较高。特别要注意的是,自建设能否奏效,最终归结为在同等计算机能预算下,是否能从模型中抽取更多代码样本,并将其与作为一部分任务供给的单元测试套件举行比较。

至关重要的是,自建设的有效性不仅取决于模型天生代码的威力(文献中对此举行了广泛钻研),还取决于它识别代码(由模型本身天生)在任务标准方面是如何出错的威力。此前没有任何工作试图详细钻研这些威力的影响。

本文中,来自 MIT、微软钻研院的钻研者在解决竞赛级别的代码天生任务时,运用 GPT-3.5 和 GPT-4 钻研自建设的有效性。钻研者首先提出一种新的评估策略,称为 pass@t,其中获得正确法式的可能性(相对于给定的单元测试)相对于从模型中采样的 token 总数举行加权。

运用新的评估策略代替传统的 pass@k 度量(根据试验次数衡量通过率),钻研者能够准确地将通过自建设获得的机能与模型在天生反应和举行建设时所做的任何额外工作举行比较。钻研者仔细探究了在一系列超参数下的动态自建设过程。

最后,鉴于钻研的主要目标是深入了解最先进的代码天生模型反思和调试自己代码的威力,本文举行了一组试验,单独钻研了改良反应阶段的影响。通过分析运用比代码天生模型更强的反应天生模型(运用 GPT-4 为 GPT-3.5 代码模型天生反应)的影响,钻研者举行了一项钻研:让人类对不正确的法式供给反应,以便将模型天生的自反应与人类供给的自反应举行比较。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

论文地址:https://arxiv.org/pdf/2306.09896.pdf

从本文的试验中,钻研者有了以下发现:

1. 当考虑举行检查和建设的成本时,自建设的机能收益只能用 GPT-4 来衡量;对于 GPT-3.5,在所有配置下,建设的通过率低于或等于基线模型 / 无建设办法的通过率。

2. 即使对于 GPT-4,机能提升也是适度的(66%→ 71% 的通过率,预算为 7000 个 token,约 45 个独立同分布(i.i.d.)的 GPT-4 样本),并同时取决于初始法式是否具有足够的多样性。

3. 用 GPT-4 产生的反应代替 GPT-3.5 对毛病的解释,可以获得更好的自建设机能,甚至超过了基线的无建设 GPT-3.5 办法(50%→ 7000token 时为 54%)。

4. 用人类的解释取代 GPT-4 自己的解释可以显著改善建设结果,从而使通过测试的建设法式数量增加 57%。

爱丁堡大学博士生符尧表示:「只有 GPT-4 可以自我改良,而较弱的模型不能,这一发现非常有趣,表明(大模型存在)一种新型的涌现威力(即改良自然语言反应),可能只有在模型足够成熟(大而整齐)时才存在。大模型的这种威力在论文《Improving Language Model Negotiation with Self-Play and In-Context Learning from AI Feedback》中也存在过。

只有足够成熟的模型才能清楚(listen to)并改良自然语言反应,较弱的模型要么无法理解反应,要么无法对其举行改良。

我倾向于相信这种涌现威力(通过语言反应举行自我改良)会对 LLM 钻研产生非常重要的影响,因为这意味着 AI 可以在很少的人类监督下不断自主改良。」

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

办法

自建设概述

如上图 1 所示,自建设办法包括 4 个阶段:代码天生、代码执行、反应天生和代码建设。接下来正式定义这四个阶段。

代码天生

给定一个标准 ψ,法式模型 M_P 首先天生 n_p 个独立同分布样本,钻研者将其表示为

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

代码执行

然后在测试台上执行这 n_p 个代码样本。钻研者假设可以访问可执行形式的全套测试,因此如果任何样本通过了所有测试,系统就会停止,因为这时已经找到了一个令人满意的法式。否则,系统将收集执行环境返回的毛病消息只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现。这些毛病消息要么包含编译 / 运行时毛病信息,要么包含法式输出与预期输出不同的示例输入。示例如图 1(组件 3)所示。

反应天生

由于来自执行环境的毛病消息通常非常高级,因此它们供给的建设信号很少。作为中间步骤,钻研者运用反应模型来更详细地解释出了什么问题;示例如图 1(组件 4)所示。形式上,在这个阶段,他们为每个毛病的法式 p_i 天生 n_f 个反应字符串只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现,具体如下所示:

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

有了明确的反应天生步骤,就可以消融这个组件,独立地钻研它的意义。

代码建设

在最后一步中,对于每个初始法式 p_i 和反应 f_ij,可以从只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现采样 n_r 个候选建设法式:

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

建设树。钻研者将该过程天生的包含文本和法式的树称为植根于标准中的 ψ,然后分支到初始法式 p_i,每个初始法式分支到反应 f_ij,然后对建设树 r_ijk 举行建设,如下图所示。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

注意:联合采样反应和建设。上述通用框架不要求编程模型和反应模型相同,因此两个模型可以运用各自的专有模型。然而,当 M_P=M_F 时,钻研者在单个 API 调用中联合天生反应和建设的法式,因为 GPT-3.5 和 GPT-4 都有在响应中交织文本和代码的自然倾向。形式上,钻研者将其表示为

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

pass@t:通过率与 token 数量的关系

由于自建设需要几个非均匀成本的依赖模型调用,因此 pass@k 这种在 k 个独立同分布样本中获得正确法式的可能性指标,不是用于比较和评估自建设的各种超参数选择的合适度量。相反,钻研者将通过率作为从模型中采样的 token 总数的函数,称之为 pass@t。

形式上,假设一个数据集 D={ψ_d}_d 和超参数(M_P,M_F,n_p,n_f,n_r)的一组选定值。令只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现表示上文所述对任务 ψ_d 举行采样的建设树;令 size(T^i_d)表示建设树中的法式和反应 token 的总数;并在当且仅当 T^i_d 至少有一个叶子节点法式满足标准中的单元测试 ψ_d 时,令 T^i_d |=ψ_d 为真。然后 pass@t 这种超参数选择的度量被定义为希望通过这种超参数选择天生的 token 数量时预期通过率:

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

试验绘制了这两个量的 bootstrapped estimates(一种统计估计办法,通常用于评估参数估计的不确定性)。为了获得这些数值,本文首先为每个任务标准天生一个非常大的建设树,其中:有 N_p≥n_p 个初始法式样本;每个毛病法式有 N_f≥n_f 个反应字符串;并且每个反应串有 N_r≥n_r 个建设候选。给定(n_p,n_f,n_r)的设置,然后从这个冻结的数据集中对 N_t 个不同的建设树举行子采样(带替换)。最后,本文计算了这 N_t 棵树上通过率和树大小的样本均值和标准差。如此估计 pass@t 大大降低了试验的计算成本,因为可以重用相同的初始数据集来计算 n_p、n_f 和 n_r 的所有不同选择的估计。

本文所有试验中,N_p=50,自建设办法中 n_p≤25,基线无建设办法中 n_p≤50。类似地,对于反应,本文令 N_f=25 和 N_f≤10。对于候选建设,由于本文在大多数试验中对反应和建设举行联合采样,因此本文设置 N_r=n_r=1。最后,本文对所有设置运用 N_t=1000。

试验

钻研者针对以下问题举行了相关试验:

(a)在具有挑战性的编程难题的背景下,对于本文提出的模型,自建设是否比不建设的独立同分布采样更好?如果是,在什么超参数下自建设最有效?

(b) 更强的反应模型会提高模型的建设机能吗?

(c) 即使是最强的模型,让人参与供给反应会带来更好的建设机能吗?

本文运用 APPS 数据集评估了这些关于 Python 编程挑战的疑惑。

自建设需要强大的模型和多样化的初始样本

令 M_P=M_F∈{GPT-3.5,GPT-4},用于代码 / 建设天生和反应天生的是同一个模型。GPT-3.5 的结果见图 3,GPT-4 的结果见图 4。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

从图中可以看出,对于 GPT-3.5 模型,pass@t 在所有的 n_p、n_fr 选值中,都低于或等于相应基线(黑线),这清楚地表明自建设不是 GPT-3.5 的有效策略。另一方面,对于 GPT-4,有几个 n_p、n_fr 值,其自建设的通过率明显优于基线的通过率。例如,当 n_p=10,n_fr=3 时,通过率从 65% 增加到 70%,当 n_p=25,n_fr=1 时,通过率从 65% 增加至 71%。

GPT-4 的反应改良了 GPT-3.5 自建设威力

接下来,本文举行了一个试验,在这个试验中,钻研者评估了运用一个单独的、更强的模型来天生反应的影响。这是为了检验一种假设:即模型无法内省和调试自己本身的代码,从而阻碍了自建设(尤其是 GPT-3.5)。

该试验的结果如图 5 所示(亮蓝线)。钻研者观察到,就绝对机能而言,M_P=GPT-3.5,M_F=GPT-4 确实突破了机能障碍,变得比 GPT-3.5 的独立同分布采样效率略高。这表明反应阶段至关重要,改良它可以缓解 GPT-3.5 自建设的瓶颈。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

人类反应显著提高了 GPT-4 自建设的成功率

在本文的最后一个试验中,钻研者考虑了在运用 GPT-4 等更强的模型举行建设时运用专业人类法式员的反应的效果。这项钻研的目的不是直接比较人在循环中的办法与自建设办法,因为人在循环办法会带来更多的认知负担,而本文没有对此举行钻研。相反,本文的目标是了解模型识别代码中毛病的威力与人类相比如何,以及这如何影响自建设的下游机能。因此,该钻研对人类反应对自建设的影响举行了定性和定量分析。

结果总结在表 1 中。我们首先注意到,当我们用人类参与者的调试取代 GPT-4 自己的调试时,总体成功率提高了 1.57 倍以上。也许不足为奇的是,随着问题变得越来越困难,相对差异也会增加,这表明当任务(和代码)变得更加复杂时,GPT-4 产生准确和有用反应的威力远远落后于我们的人类参与者。

只有GPT-4可以自我改良,GPT-3.5都不行,MIT&微软代码天生试验新发现

此外,该钻研还定性地分析了人类参与者供给的反应与 GPT-4 供给的反应之间的差异。

只有 2/80 个人贡献的反应字符串包括伪代码或显式 Python;也就是说,获得的几乎所有人类反应都是自然语言,偶尔穿插着单语句数学 / 代码表达式。

GPT-4 的反应更可能明显不准确(32/80 与人类反应的 7/80)。

GPT-4 更可能明确地建议小的变化(54/80 对 42/80;28/48 对 38/73,当看起来正确时),而我们的人类参与者显示出更大的趋势来建议高水平的变化(23/80 对 18/80,GPT-4;21/73 对 13/48,当看起来正确时)。

人类参与者有时会表达不确定性(7/80);GPT-4 没有(0/80)。

进一步的分析表明,表 1 中的结果不是由于人为因素造成的,例如参与者供给了模型简单复制的显式代码块。相反,机能的差异似乎是由更准确的反应、在需要时建议对代码举行高级别、大规模更改的更大威力,以及参与者表达其不确定性的威力(而不是自信地给出潜在的不准确反应)共同造成的。

原创文章,作者:机器之心,如若转载,请注明出处:https://www.iaiol.com/news/28813

(0)
上一篇 2023年7月4日 上午11:30
下一篇 2023年7月4日 下午3:19

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注