论文

重新审视反馈驱动的 LLM 代码修复:复制和探索性 Java 扩展

Revisiting Feedback-Driven LLM Code Repair: A Replication and Exploratory Java Extension

模型评测模型能力评测

摘要

自从 大语言模型 (LLM) 出现以来,从业者越来越多地利用它们来支持他们的软件工程任务,包括自动代码修复,显示出有希望的结果。然而,对可重复性和普遍性的担忧在很大程度上仍未得到探索。为了进一步评估这些问题和相关影响,我们部分重现并进行了 FeedbackEval 基准测试 [1] 的探索性 Java 扩展,该扩展评估了 LLM 如何利用不同的反馈类型进行 Python 代码修复。首先,我们使用 GPT-4o 和 Claude 3.5 Sonnet 部分复制了对 394 个修复任务的原始研究,复制并观察了原始工作中报告的主要定性趋势。其次,我们通过从 50 个 Java 任务构建 100 个错误修复实例并评估反馈有效性来进行探索性 Java 扩展。我们的结果表明,Python 之前的结论可能对基准构建、反馈表示和工具生态系统敏感,从而激发了更多受控的多语言基准。具体来说,虽然测试反馈仍然是我们的 Python 复制中最强的反馈类型,但在我们的 Java 扩展中却没有观察到相同的排名,因为简单的测试反馈和基于 JUnit 的测试反馈没有显着差异。我们假设反馈信息和工具生态系统的差异(例如测试框架的冗长程度)可能部分解释了这种差异。最后,较轻的提示可降低成本,而修复效果不会产生显着差异。总的来说,我们的研究结果证实了部分受控复制下的主要趋势,并强调了基于大语言模型的修复系统需要更严格的多语言评估和仔细的反馈设计。