GPT-4能否自我进化MIT与微软代码实验揭示新发现科技论文范文中GPT-3的局限被突显

  • 天文科普
  • 2025年03月08日
  • 机器之心报道 编辑:赵阳 GPT-4的自我纠正能力如何?MIT与微软代码实验揭示新发现,科技论文范文中GPT-3.5的局限被突显。 大型语言模型(LLM)已证明能够生成代码,但在复杂编码挑战中仍面临巨大障碍。最近研究尝试利用自我修复提高模型性能。自我修复指的是让模型反思并纠正自己的错误。 下图1展示了基于自我修复方法的典型工作流程。首先,给定一个规范,从代码生成模型对程序进行采样

GPT-4能否自我进化MIT与微软代码实验揭示新发现科技论文范文中GPT-3的局限被突显

机器之心报道

编辑:赵阳

GPT-4的自我纠正能力如何?MIT与微软代码实验揭示新发现,科技论文范文中GPT-3.5的局限被突显。

大型语言模型(LLM)已证明能够生成代码,但在复杂编码挑战中仍面临巨大障碍。最近研究尝试利用自我修复提高模型性能。自我修复指的是让模型反思并纠正自己的错误。

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

这种设计能克服解码过程中的离群样本引起的错误,并模仿人类软件工程师编写代码的试错方式。在测试台上执行n_p个代码样本。如果任何样本通过所有测试,系统停止,因为已经找到了满意程序。否则,系统收集执行环境返回的错误消息。

由于来自执行环境的错误消息通常高级,因此它们提供少量修复信号。因此使用反馈模型更详细地解释出了什么问题。在这个阶段,他们为每个错误程序pi生成n_f个反馈字符串。

为了评估pass@t,本文计算了N_t棵树上的通过率和树大小样本均值和标准差。本文所有实验中,N_p=50,对于自我修复方法中n_p≤25,对于基线无需修改方法中n_p≤50。此外,对于反馈,本文令N_f=25和N_f≤10对于候选解决方案,由于多数实验对反馈和解决方案联合采样,因此设置N_r=n_r=1。

(a)针对具有挑战性编程难题背景下,本文提出的self-fix是否比不使用self-fix独立同分布采样的效果好?如果是,在哪些超参数下self-fix效果最佳?

(b)更强大的反馈会提高model fix性能吗?

(c)即使是最强model,让人参与提供feedback会带来更好的fix性能吗?

本文使用APPS数据集评估了这些关于Python编程挑战的问题。

从图3、4可以看出,对于GPT-3.5 model,其pass@t在所有n_p、n_fr选值都低于或等同相应基线,这表明self-fix不是GPT-3.5有效策略。而对于GPT-4,有几个n_p、n_fr值其pass@t明显优于基线,如当np=10,nfr=3时由65%增加到70%,当np=25,nfr=1时由65%增加至71%。

接下来,本文进行了一个实验,以检验一种假设,即model无法内省自己而阻碍self-fix。这项研究结果如图5所示,观察到M_P=GPT-3.5, M_F=GPT-4确实突破了性能障碍,比GPT-3.5独立同分布采样的效率略高。这表明反馈阶段至关重要,可以缓解GTP_35 self-fix瓶颈。

最后,一项研究考察了专业人类开发者在使用更强model(GTP_40)进行fix时对其影响。这项研究目的不是直接比较人参与循环与self-fix,因为人参与循环带来更多认知负担,而是了解model识别code error能力与人类相比如何,以及这如何影响downstream performance。该研究总结见表1,我们注意到,当用人类调试取代gtp_40调试时,全体成功率提高超过157%。

此外,该研究还分析了human feedback与gpt_40 feedback之间差异。一共只有2/80个人贡献伪code或显式python;获得的大多数human feedback都是自然语言偶尔穿插着数学/Code表示形式。此外,gpt_40 的feedback可能不准确32/80,与human feedback7/80有较大差距。此外,gpt_40 更倾向建议小变动32/80 与 human 提供7/80 变得更加频繁。这意味着 gpt 不能很好地理解需要何种变化才能改进 code 的情况,从而导致它提出过度具体或根本不适用的建议。

综上所述,只有 GTP - 4 可以实现 self-improvement,而 GTP - 35 不行,这一发现为 MIT 和微软的人工智能技术奠定基础,为未来的技术发展开辟新的道路。

猜你喜欢