Rethinking Automated Program Repair: The Impact of Bug Complexity, Fault Localization, and LLM Cost-efficiency
本文通过一项全面的实证研究表明,尽管缺陷复杂度与不精确的故障定位给自动化程序修复带来了挑战,但低成本的大语言模型能够有效修复超过 50% 的中等复杂度缺陷,从而揭示了一个关键的权衡关系,即更高成本的模型和更先进的推理设置并不总能保证更优的成本效益。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你是一名正在试图破解谜题的侦探,但你面对的不是犯罪现场,而是一个运行不正常的计算机程序。这个领域被称为自动化程序修复(Automated Program Repair, APR)。多年来,计算机一直试图修复自身的错误,但它们通常需要人类先指明出错的具体位置。最近,一种新型的超级聪明计算机大脑——**大语言模型(LLM)**进入了赛场。把这些 LLM 想象成极其博学的学徒,他们读过图书馆里的几乎每一本书;他们可以推测程序“应该”是什么样子,并尝试亲自编写修复方案。但一个大问题出现了:这些数字学徒是真的擅长解决难题,还是仅仅在处理简单问题时运气好?如果他们足够聪明,雇佣他们的代价是否会高得惊人?这正是研究团队试图解开的谜题。
由科罗拉多州立大学的刘俊驰(Junchi Liu)及其团队领导的研究人员决定停止猜测,开始进行测试。他们构建了一个巨大的计算机代码问题游乐场,专门从一个名为 AtCoder 的竞赛编程网站中提取了 640 个棘手的谜题。这些不仅仅是简单的拼写错误;它们就像是在大海捞针,有些问题规模很小且简单,而另一些则是庞大且错综复杂的逻辑乱麻。他们测试了两种不同的“修复机器人”(分别命名为 ChatRepair 和 CodeCorrector),并使用了三种不同类型的 AI 大脑(DeepSeek、GPT 和 Llama)。他们想看看当机器人知道确切的出错位置、只有一个模糊的想法、或者完全没有头绪时,它们的表现如何。同时,他们也密切关注着价格标签,精确计算了修复每个漏洞所花费了多少美元。
以下是他们的发现,而且这其中有一个情节转折。首先,他们发现最“聪明”且最昂贵的 AI 模型并不总是能在比赛中胜出。虽然功能极其强大的 GPT-5 模型整体上修复了最多的漏洞,但这就像是雇佣一位名厨来做三明治:它确实有效,但比起使用像 DeepSeek-V3.2 这样非常能干且更便宜的模型,它的成本要高得多。事实上,那个较便宜的模型是非常具有成本效益的,在某些场景下,每投入一美元,它修复的漏洞数量几乎是昂贵模型的四倍。
其次,他们了解到漏洞的“难度”至关重要。最简单的漏洞(单行修复)几乎瞬间就能解决。但即使是那些复杂且混乱的漏洞,AI 也并没有放弃;它仍然成功修复了超过 50% 的中等难度漏洞。然而,研究人员发现,如果你不告诉 AI 问题的确切位置,不同修复机器人之间的性能差距就会变得巨大。有些机器人就像是能根据模糊照片开展工作的侦探,而另一些则需要一张清晰无比的照片才能开展工作。这项研究表明,为了获得最佳效果,你可能希望先使用一个便宜、快速的机器人来处理简单的部分,然后再只在第一个机器人无法攻克的真正顽固问题出现时,才请出那个昂贵且重型的 AI。
最后,他们观察了“推理”。一些 AI 模型有一种特殊的模式,让它们在开口说话前先进行“思考”,就像学生在写出最终答案之前先在草稿纸上演算数学题一样。团队发现,这种“思考”模式帮助某些模型(如 DeepSeek 系列)修复了更多的漏洞,但对 GPT-5 模型却没有太大帮助。事实证明,为“思考”支付额外费用并不总是意味着能获得更好的结果;有时,这仅仅意味着在获得相同结果的同时等待更长时间并花费更多的钱。
最后,论文指出我们并不需要挥金如土才能获得出色的结果。通过混合搭配不同的 AI 模型,并理解并非每个漏洞都需要超级计算机来修复,我们可以构建出既聪明又实惠的修复系统。研究人员得出结论,虽然这项技术很强大,但成功的关键不在于拥有最昂贵的工具,而在于准确知道针对手头的任务该使用哪种工具。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。