GPT-4能自我进化GPT-3却无力MIT与微软的代码实验揭秘网络科技有限公司新发现
机器之心报道
编辑:赵阳
GPT-4的自我纠正能力如何?它能否超越GPT-3.5?MIT与微软的代码实验揭秘网络科技有限公司新发现!
作为最前沿的大型语言模型(LLM),GPT-4能够结合人类反馈进行自我纠正,进一步提高生成代码的质量。尽管LLM已经被证明可以从自然语言中生成代码片段,但在面对复杂编码挑战时,如专业竞赛和软件工程专业面试,它们仍然遇到巨大的障碍。最近的一项研究尝试通过利用自修复来提升模型编码性能。
自修复是指让模型反思并修正自己代码中的错误。这一过程通常包括以下几个步骤:首先,给定一个规范,从代码生成模型中对程序进行采样;然后在作为一部分规范提供的一套单元测试上执行程序;如果程序在任一单元测试中失败,则将错误消息和错误程序提供给一个反馈生成模型,该模型输出代码失败原因的简短解释;最后,反馈被传递给修复模型,该模型生成程序的最终固化版本。
这一设计看似非常吸引人,因为它允许系统克服解码过程中的离群样本问题,并且在修复阶段,可以轻松整合来自编译器、静态分析工具和执行引擎等符号系统的反馈,模仿人类软件工程师编写代码时试错方式。
实验绘制了使用这种方法所需 token 数量与预期通过率之间关系。为了获得这些数值,本文首先为每个任务规范生成一个非常大的修复树,其中包含初始 n_p 个程序样本,每个错误程序有 n_f 个反馈字符串,并且每个反馈串有 n_r 个候选修复。在确定 (n_p, n_f, n_r) 的设置后,从这个冻结数据集中对 N_t 个不同的子采样(带替换)进行计算,然后计算这 N_t 棵树上通过率和树大小的样本均值和标准差。这大大降低了实验成本,因为可以重用相同初始数据集来计算不同选择参数估计。
对于 GPT-3.5 和 GPT-4 本文分别评估了其使用同一个强大语言模型作为两个步骤中的代入材料是否能够提高自我改进效率。此外,本文还探讨了更强的人类参与者提供的问题解决能力如何影响结果,以及它们相比于自动调试方法带来的差异性。
结果表明,对于 GPT-3.5 模型,无论是哪种参数设置,其self-improvement策略都没有超过基线独立同分布采样的表现。而对于 GPT-4,这些策略在某些参数组合下显示出显著优势,比如当n_p=10, n_fr=3 时,它们实现了65%到70%之间的小幅度提升,而当n_p=25, n_fr=1 时,更高达65%到71%甚至更高的地位推升。
此外,当使用更强的人类参与者的调试而不是依赖于GPT-4自己的调试时,还能进一步提升成功率至2倍以上。研究还发现,即使任务变得更加困难,与人类参与者相比,GPT-4产生准确及有效性的差距也会加剧,这表明当任务变得更加多变或难以理解时,GPT需要时间去学习如何提出正确及有用的建议,以便帮助用户完成他们想要做的事情。