On the Role of Fault Localization Context for LLM-Based Program Repair
作者: Melika Sepidband, Hung Viet Pham, Hadi Hemmati
分类: cs.SE, cs.AI
发布日期: 2026-04-07
备注: 30 pages, 8 figures
💡 一句话要点
研究故障定位上下文对基于LLM的程序修复的影响,揭示最佳上下文策略。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 程序修复 故障定位 大型语言模型 上下文策略 实证研究
📋 核心要点
- 现有基于LLM的自动程序修复方法对故障定位上下文的作用研究不足,缺乏对上下文数量和类型的有效指导。
- 该研究通过大规模实验,探索了文件级、元素级和行级上下文对程序修复性能的影响,并提出了有效的上下文策略。
- 实验结果表明,文件级定位是关键,适当扩展文件上下文有益,而行级上下文可能引入噪声,LLM检索优于启发式方法。
📝 摘要(中文)
故障定位(FL)是基于大型语言模型(LLM)的自动程序修复(APR)的关键组成部分,但其影响尚未得到充分探索。特别是,需要多少定位信息,预测的错误位置之外的额外上下文是否有益,以及应该如何检索这些上下文尚不清楚。我们使用GPT-5-mini对500个SWE-bench Verified实例进行了大规模实证研究,评估了61种配置,这些配置在文件级别、元素级别和行级别上下文上有所不同。我们的结果表明,更多的上下文并不总能提高修复性能。文件级别的定位是主要因素,比没有文件的基线提高了15-17倍。扩展文件上下文通常与性能的提高相关,成功的修复最常见于具有大约6-10个相关文件的配置中。元素级别的上下文扩展提供了有条件的收益,这在很大程度上取决于文件上下文的质量,而行级别的上下文扩展由于噪声放大而经常降低性能。基于LLM的检索通常优于结构启发式方法,同时使用的文件和token更少。总的来说,最有效的FL上下文策略通常将较高抽象级别的广泛语义理解与精确的行级别定位相结合。这些发现挑战了我们关于增加定位上下文会一致地提高APR的假设,并为设计基于LLM的FL策略提供了实践指导。
🔬 方法详解
问题定义:论文旨在解决基于LLM的自动程序修复中,如何有效利用故障定位(FL)上下文的问题。现有方法对FL上下文的作用理解不足,不清楚需要多少上下文,哪些类型的上下文有益,以及如何有效地获取上下文。这导致程序修复的效率和准确性受到限制。
核心思路:论文的核心思路是通过大规模的实证研究,系统地评估不同类型的FL上下文(文件级、元素级、行级)对程序修复性能的影响。通过分析实验结果,找到最佳的上下文策略,即在保证修复效果的前提下,尽可能减少上下文信息,降低计算成本。
技术框架:该研究采用实证研究的方法,主要流程包括:1) 选择SWE-bench Verified数据集;2) 使用GPT-5-mini作为LLM模型;3) 设计61种不同的FL上下文配置,涵盖文件级、元素级和行级上下文;4) 对每个配置进行程序修复实验;5) 分析实验结果,评估不同上下文配置的性能。
关键创新:该研究的关键创新在于:1) 系统地研究了不同类型的FL上下文对基于LLM的程序修复的影响,揭示了文件级定位的重要性;2) 提出了有效的上下文策略,即结合高层语义理解和精确的行级定位;3) 证明了基于LLM的检索方法优于结构启发式方法,能够更有效地获取上下文信息。
关键设计:实验中,使用了GPT-5-mini模型,并设计了61种不同的FL上下文配置。这些配置在文件数量、元素数量和行数量上有所不同,旨在评估不同粒度的上下文信息对程序修复性能的影响。此外,还比较了基于LLM的检索方法和结构启发式方法在获取上下文信息方面的性能。
🖼️ 关键图片
📊 实验亮点
实验结果表明,文件级定位是程序修复的关键,相比于无文件基线,修复性能提升了15-17倍。扩展文件上下文通常能提高性能,最佳文件数量约为6-10个。元素级上下文的增益依赖于文件上下文质量,而行级上下文常因噪声放大而降低性能。基于LLM的检索优于结构启发式方法,且使用更少的文件和token。
🎯 应用场景
该研究成果可应用于自动程序修复工具的开发,提高程序修复的效率和准确性。通过选择合适的故障定位上下文,可以减少LLM处理的信息量,降低计算成本,并提高修复成功率。此外,该研究还可以为LLM在软件工程领域的应用提供指导,例如代码生成、代码审查等。
📄 摘要(原文)
Fault Localization (FL) is a key component of Large Language Model (LLM)-based Automated Program Repair (APR), yet its impact remains underexplored. In particular, it is unclear how much localization is needed, whether additional context beyond the predicted buggy location is beneficial, and how such context should be retrieved. We conduct a large-scale empirical study on 500 SWE-bench Verified instances using GPT-5-mini, evaluating 61 configurations that vary file-level, element-level, and line-level context. Our results show that more context does not consistently improve repair performance. File-level localization is the dominant factor, yielding a 15-17x improvement over a no-file baseline. Expanding file context is often associated with improved performance, with successful repairs most commonly observed in configurations with approximately 6-10 relevant files. Element-level context expansion provides conditional gains that depend strongly on the file context quality, while line-level context expansion frequently degrades performance due to noise amplification. LLM-based retrieval generally outperforms structural heuristics while using fewer files and tokens. Overall, the most effective FL context strategy typically combines a broad semantic understanding at higher abstraction levels with precise line-level localization. These findings challenge our assumption that increasing the localization context uniformly improves APR, and provide practical guidance for designing LLM-based FL strategies.