arrow
返回

Inducing Code Change in LLM Self-Debugging: Effects on Program Repair

delete2026-10-01
delete0
delete
OA
AI
J
Jindae Kim
DOI:10.3390/ai7100392delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
执行引导的自调试在请求修订时可能返回未更改的代码,甚至修改后的程序仍可能无法修复观察到的错误。仅凭最终通过/失败结果无法区分这些不同结果。我们研究了使用六个开源权重模型在三个基准测试上生成的9790个Python程序。模型通常根据基准测试评估记录将程序分类为通过(PASS)或失败(FAIL),并在单独的判断任务中选择保留(PRESERVE)或修订(REVISE),但单独的修订请求仅改变了4168个初始失败程序中的57.39%,并在相同的基准测试套件中修复了16.34%。由于许多修订请求返回了未更改的代码,我们测试了一种最小干预方法,即仅添加一条指令说明返回的代码必须更改。该指令将初始程序和修订程序标记的AST之间的结构代码更改率提高了7.92至31.86个百分点,并在测试的故障信息设置中产生了0.82至1.87个百分点的适度修复增益。然而,大多数代码更改仍不成功,而具体的执行反馈提供了显著的额外好处:在四个修订提示中,提供第一个报告的故障而非仅提供故障状态使修复率提高了12.93至13.43个百分点,而在报告多个故障时,提供所有报告的故障在BigCodeBench-Instruct上带来了进一步的收益。在重新评估后重复修订可以恢复额外的修复,但逐轮的增量收益急剧下降。明确要求代码更改的提示在重复轮次中通常保留了较小的修复优势,即使每轮的额外收益在减少。总体而言,结果表明存在互补的方法来改进大型语言模型(LLM)的自调试:简单的代码更改指令可以减少未更改的修订并提供适度的修复增益,而具体的执行反馈有助于引导更改后的代码实现修复,重复的重新评估则提供了进一步但递减的修复机会。
Keyword:
code-change induction
self-debugging
execution feedback
program repair
large language models

期刊

A
AI
IF:
5
论文数:
1.0K
被引数:
941

机构

暂无机构信息
引用论文

引用论文

err
IF0
err
err0
errOAAI
err
err分享
err收藏
SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
err2024-01-01
err0
PREAI
errJimenez,Carlos; Lieret,Kilian; Narasimhan,Karthik; Press,Ofir; Wettig,Alexander; Yang,John; Yao,Shunyu
err分享
err收藏
学者 查看更多内容