GPT-4能否自我进化而GPT-3则不行航空航天界的MIT与微软代码实验揭示了新秘密

  • 科研进展
  • 2025年03月08日
  • 机器之心报道 编辑:赵阳 作为最先进的大型语言模型,GPT-4 能够自我纠正生成代码,并结合人类反馈进一步提高其自我纠正能力。 大型语言模型已被证明能够从自然语言中生成代码片段,但在面对复杂编码挑战时仍然存在巨大的障碍。最近的研究尝试通过利用自我修复来提升模型编码性能。自我修复指的是让模型反思并纠正自己代码中的错误。 下图 1 展示了基于自我修复方法的典型工作流程。首先,给定一个规范

GPT-4能否自我进化而GPT-3则不行航空航天界的MIT与微软代码实验揭示了新秘密

机器之心报道

编辑:赵阳

作为最先进的大型语言模型,GPT-4 能够自我纠正生成代码,并结合人类反馈进一步提高其自我纠正能力。

大型语言模型已被证明能够从自然语言中生成代码片段,但在面对复杂编码挑战时仍然存在巨大的障碍。最近的研究尝试通过利用自我修复来提升模型编码性能。自我修复指的是让模型反思并纠正自己代码中的错误。

下图 1 展示了基于自我修复方法的典型工作流程。首先,给定一个规范,从代码生成模型中对程序进行采样;然后在作为一部分规范提供的一套单元测试上执行程序;如果程序在任一单元测试中失败,则将错误消息和错误程序提供给一个反馈生成模型,该模型输出代码失败原因的简短解释;最后,反馈被传递给修复模型,该模型生成程序的最终固化版本。

这种设计似乎非常有吸引力,因为它能让系统克服解码过程中的离群样本引起的问题。在修复阶段,可以轻松地整合来自编译器、静态分析工具和执行引擎等符号系统的反馈,并模仿人类软件工程师编写代码的试错方式。

实验绘制了两个量—通过率与树大小—bootstrapped estimates(一种统计估计方法)。为了获得这些数值,本文首先为每个任务规范生成一个非常大的修复树,其中包括初始程序样本、反馈字符串以及候选修复。在计算完所有不同设置选择的估计后,本文使用 N_t=1000 次子采样来减少实验成本。

本文使用 APPS 数据集评估了以下问题:

(a)对于具有挑战性编程难题的情况,对于提出的新算法,是否比不使用该算法更有效?如果是,在什么超参数下效果最佳?

(b)更强大的反馈会提高哪些结果?

(c)即使是最强大的人类参与者,让人参与提供反馈会带来更好的效果吗?

实验表明,对于 GPT-3.5 模型,没有任何 n_p 或 n_f 的组合可以实现高于基线水平的 pass@t。这表明 GPT-3.5 无法利用自我改进功能,而 GPT-4 在某些配置下显著超过了基线,这意味着它能够有效地利用这项技术。

此外,还发现当采用较弱的人类调试替代 GPT-4 自身调试时,与仅使用 GPT-4 自己调试相比,大幅提高了成功率。此外,当遇到更加困难的问题时,由人类或机器人为任务提供帮助所产生的大差异也越发显著,这表明当任务变得更加棘手时,无论是由人类还是机器人完成,都需要更多精细化处理以确保正确性。

然而,有趣的是,只有少数个人贡献了一些伪代号或直接 Python 语句,他们几乎所有其他回应都是自然语言,它们偶尔包含简单数学/代码表示形式。此外,有32次GPT-4 反馈与7次人类响应出现误导性质,而GPT-4 反应倾向于建议小范围内的小修改而不是全面重构解决方案。

猜你喜欢