GPT-4能否自我进化而GPT-3则不行MIT与微软的代码实验揭示了科技发展的100条好处
机器之心报道
编辑:赵阳
作为最先进的大型语言模型,GPT-4 能够自我纠正生成代码,并结合人类反馈进一步提高其自我纠正能力。
大型语言模型(LLM)已被证明能够从自然语言中生成代码片段,但在面对复杂编码挑战时,如专业竞赛和软件工程专业面试,仍然存在巨大的挑战。近期研究尝试通过利用自修复来提高模型的编码性能。自修复指的是让模型反思并修正自己代码中的错误。
下图1展示了基于自修复方法的典型工作流程。首先,从给定的规范中对程序进行采样;然后,在单元测试上执行程序;如果程序在任何单元测试中失败,则将错误消息和错误程序提供给反馈生成模型,该模型输出代码失败原因的简短解释;最后,将反馈传递给修复模型,该模型生成程序的最终固化版本。
这种设计看似非常吸引人,因为它可以让系统克服在解码过程中由离群样本引起的错误,并且可以轻松地整合来自编译器、静态分析工具和执行引擎等符号系统的反馈,模仿人类软件工程师编写代码时的试错方式。
实验绘制了pass@t与树大小之间bootstrapped estimates,以减少计算成本。这使得实验变得更加高效,因为同样的初始数据集可以用于计算n_p、n_f和n_r所有不同设置下的估计。
研究者针对以下问题进行了相关实验:
(a)对于具有挑战性编程难题,本文提出的模式是否比不使用此模式更有效?
(b)更强大的反馈会提升模型性能吗?
(c)即使是最强大的模式,让人参与提供反馈能否带来更好的性能?
结果显示,对于GPT-3.5,无论是哪个超参数选择,其self-repair都低于或等于相应基线,而对于GPT-4,有几个超参数选择,其self-repair明显优于基线。此外,当使用一个更强大的独立预测model为feedback时,performance也会有所提升。此外,由专业人类参与者的调试而不是GPT-4自己的调试,可以显著提高成功率,这表明当任务越困难时,GPT-4识别出错的地方能力落后于人类参与者。