GPT-4能否自我进化MIT与微软代码实验揭秘科技节口号提醒我们GPT-3就那么回事了吗

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

GPT-4能否自我进化MIT与微软代码实验揭秘科技节口号提醒我们GPT-3就那么回事了吗

机器之心报道

编辑:赵阳

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

大型语言模型(LLM)已被证明能够从自然语言中生成代码片段,但在面对复杂编码挑战时,如专业竞赛和软件工程专业面试,仍然存在巨大的挑战。近期研究尝试通过利用自修复来提高模型的编码性能。自修复指的是让模型反思并修正自己代码中的错误。

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

这种设计看似非常吸引人,因为它可以让系统克服解码过程中的离群样本引起的问题,并且可以轻松地整合来自编译器、静态分析工具和执行引擎等符号系统的反馈,就像人类软件工程师编写代码时所做的一样的试错方式。

实验绘制了这两个量的 bootstrapped estimates(一种统计估计方法,通常用于评估参数估计的不确定性)。为了获得这些数值,本文首先为每个任务规范生成一个非常大的修复树,其中有 N_p≥n_p 个初始程序样本,每个错误程序有 N_f≥n_f 个反馈字符串,以及每个反馈串有 N_r≥n_r 个候选修改。然后,从这个冻结数据集中对 N_t 个不同的子集进行采样,这些子集带替换,以计算通过率和树大小的样本均值和标准差。

研究者针对以下问题进行了相关实验:

(a)对于具有挑战性的编程难题,在提出该类新提出的算法下,对于基于 GPT-4 的算法来说,与不使用此算法相比是否能更好地解决问题?

(b)更强大的反馈机制会提升哪怕是最强大的人工智能也无法实现自动调试能力?

(c)即使是目前最为优秀的人工智能,让人类参与调试是否能显著提高效率?

结果表明,对于 GPT-3.5 来说,无论 n_p 和 n_fr 的取值如何,其通过率都低于或等同于相应基线。这说明对于 GPT-3.5 而言,没有证据表明使用 self-repair 方法能够提升性能。而对于 GPT-4 来说,有几个 n_p 和 n_fr 的组合,它们显示出比基线高得多甚至显著高得多的地通过率,比如当 n_p=10, n_fr=3 时,由 65% 提升到 70%,当 n_p=25, n_fr=1 时,由 65% 提升至 71%。

接下来,本文还探讨了一种假设,即当前人工智能技术可能缺乏内省与调试自己的能力,从而限制了它们利用 self-repair 方法改善性能。这一假设得到了支持,因为 M_P=GPT-3.5, M_F=GPT-4 组合表现出了比独立同分布采样的稍微优越一些的地绩效,这意味着改进后的 feedback 阶段已经缓解了 GPT-3.5 自身需要 repair 时出现的问题。

最后,本文还考察了一项涉及采用更强大的人类开发者的信息以增强 AI 自动调试功能的情况。在这一点上发现,当用人类参与者代替 AI 自己完成调试步骤时,使整个成功概率增加到原来的 1.57 倍以上,而随着问题变得更加棘手,此比例差距也逐渐扩大。这表明尽管 AI 在简单情况下的确能有效地识别出某些类型的问题,但在遇到更加深层次、困难的情况时,其准确性远远落后于人类参与者提供的情报。此外,还观察到几乎所有人的输入都是自然语言形式,有时候包含数学或小语句式表示,而不是伪代号或其他特定的 Python 表达式。

猜你喜欢