继续交谈:使用 ChatGPT 每个 0.42 美元修复了 337 个错误中的 162 个
使用 Codex 这样的大型编程语言模型,在多模式提示、迭代式查询、基于测试用例的少样本选择和程序块组合的帮助下,构建了一个自动编程修复 (MMAPR) 系统来解决学生在 Python 编程课程中常见的语法和语义错误问题,并与已有基线方案相比较得出了较好的结果。
Sep, 2022
机器学习在自动程序修复领域中广泛应用,使用神经机器翻译和大型语言模型生成软件补丁等任务,但与以往的研究存在重要差异,因此评估和比较结果必须谨慎确保其有效性和普遍性,挑战在于现有的评估基准并非针对机器学习技术设计,尤其是大型语言模型,其训练数据集通常庞大且披露不足,可能包含了其所评估的问题。
May, 2024
本文研究了一种新的适用于程序修复的方法,发现目标对齐对于充分利用 LLM 的预训练能力是关键的,并通过直接调试替代传统的定位 - 修复工作流程,提出了一种新的思路来利用 LLMs 进行 APR。
Apr, 2024
该论文介绍了 RepairAgent,其是第一个基于大型语言模型(LLM)的自主代理解决程序修复挑战的工作。RepairAgent 通过调用合适的工具来自主规划和执行修复操作,包括收集有关错误的信息、收集修复材料以及验证修复结果,并在先前修复尝试的反馈和信息基础上决定调用哪些工具。该研究表明,RepairAgent 在修复 164 个错误中表现出了良好的效果,并修复了先前技术无法修复的 39 个错误。与 LLM 的交互对每个错误平均造成了 270,000 个 token 的开销,根据 OpenAI GPT-3.5 模型的当前定价,平均每个错误的成本为 14 美分。这项工作是首次提出基于 LLM 的自主代理程序修复技术,为未来软件工程的代理技术铺平了道路。
Mar, 2024
自动程序修复是减少开发人员手动调试努力并提高软件可靠性的关键。本文提出了一种新颖的检索增强型修补生成框架(RAP-Gen),通过明确利用从以前的错误修复对的代码库中检索出的相关修复模式来简化参数模型的负担,进而自动化程序修复过程。实验结果表明,RAP-Gen 在所有基准测试中显著优于先前的最先进方法,例如在 818 个 Defects4J 错误上修复了 15 个更多的错误。
Sep, 2023
RepairLLaMA 是一种新颖的程序修复方法,结合了 APR 的代码表示和名为 LoRA 的最先进的参数高效 LLM 微调技术,从而产生了一个高度有效的 “程序修复适配器” 来修复语言模型中的错误。
Dec, 2023
提出了一种名为 CURE 的新型自动程序修复技术,通过预先训练编程语言模型和设计新的基于代码的搜索策略来解决现有神经机器翻译方法存在的限制,CURE 技术在两个广泛使用的基准测试中表现出了优异的修复效果。
Feb, 2021
ChatGPT 的能力在解决现实世界的崩溃错误方面得到了首次调查,重点关注其在定位和修复与代码相关和环境相关的崩溃错误方面的效果。ChatGPT 在解决代码相关崩溃错误方面表现更好,其主要挑战在于不准确的定位。此外,我们还探索了 ChatGPT 在使用各种高级提示时的潜力。通过刺激 ChatGPT 的自我计划,它通过主动询问方法系统地研究了每个潜在的导致崩溃的环境因素,最终确定了崩溃的根本原因。根据我们的研究结果,我们提出了一种交互方法,名为 IntDiagSolver,旨在通过与 LLMs 的持续互动促进精确的崩溃错误解决。在多个 LLMs 上评估 IntDiagSolver 结果显示在崩溃错误解决的准确性方面持续提升,包括 ChatGPT、Claude 和 CodeLlama。
Dec, 2023
该研究评估了利用 OpenAI 的 ChatGPT 修复 Alloy 声明性语言规范的有效性,结果显示虽然 ChatGPT 与现有技术相比存在不足,但它成功修复了其他技术无法解决的错误,并发现了 ChatGPT 生成的修复中的错误以及部分结果的不一致性。
Oct, 2023