RePaCA:利用推理大语言模型进行静态自动化补丁正确性评估

《Neurocomputing》:RePaCA: Leveraging Reasoning Large Language Models for Static Automated Patch Correctness Assessment

【字体: 大 中 小 】 时间:2026年07月26日 来源:Neurocomputing 6.7

编辑推荐:

  自动化程序修复(Automated Program Repair, APR)旨在无需人工干预自动修正软件缺陷。然而现有工具常生成能通过测试用例但未修复根本缺陷的补丁,即过拟合补丁(overfitting patches)。为解决此问题,自动化补丁正确性评估(A

  
自动化程序修复(Automated Program Repair, APR)旨在无需人工干预自动修正软件缺陷。然而现有工具常生成能通过测试用例但未修复根本缺陷的补丁,即过拟合补丁(overfitting patches)。为解决此问题,自动化补丁正确性评估(Automated Patch Correctness Assessment, APCA)尝试识别APR工具生成的过拟合补丁。该问题可采用静态方法解决,即仅需原始与修复代码片段而无须额外信息。当前静态技术在可靠性、灵活性与透明性上存在不足。为此研究人员提出RePaCA,一种基于推理的静态APCA技术,利用专用于思考任务的大语言模型(Large Language Models, LLMs)。模型输入有缺陷与修复代码片段,被引导生成思维链(Chain of Thought, CoT)以分析代码差异、推理补丁如何解决根本原因,最终给出二分类:正确或过拟合。为增强APCA任务的推理能力,研究人员采用组相对策略优化(Group Relative Policy Optimization, GRPO)算法的强化学习微调LLM。在标准Defects4J衍生的测试集上评估,该方法达到先进性能,准确率83.1%,F1值84.8%。此外模型在不同数据集训练时表现出对领域偏移的鲁棒性,优于领先技术。这种推理能力还提供显式原理以支持补丁评估的检查。结果表明微调推理LLM通过提升准确性与透明性,在推进静态APCA方面具有显著潜力。
论文解读:《Neurocomputing》发表的RePaCA研究
研究背景方面,自动化程序修复(APR)旨在自动识别修复程序缺陷以降低软件开发维护的人工调试成本。现代APR工具多采用深度学习从代码库学习缺陷修复模式,将修复视为有缺陷代码到修复版本的转换任务。工具先定位可疑代码片段,修改后生成补丁,通常用测试用例验证,通过所有测试的候选称为合理补丁(plausible patches)。但通过测试不代表修复了缺陷,因测试用例无法保证程序正确运行,例如工具可能删除导致缺陷的功能使测试通过却影响整体运行,故通过测试且修复缺陷的为正确补丁(correct patches),否则为过拟合补丁(overfitting patches)。识别过拟合补丁是APR关键挑战,自动化补丁正确性评估(APCA)作为APR子领域应运而生,作为补丁生成后的过滤步骤减少需人工检查的无效合理补丁,降低接受仅通过测试未真正修复缺陷补丁的风险。APCA分为动态与静态两类:动态分析依赖补丁执行的运行时信息,复杂耗时;静态仅比较有缺陷代码(buggy code)与修复代码(fixed code),分析特征差异识别过拟合模式,虽简单但因信息有限准确性较低。现有静态APCA技术存在可靠性、灵活性与透明性不足的问题,因此研究提出基于推理大语言模型(LLM)的静态APCA方法,假设LLM深度推理能力可理解复杂过拟合补丁根本原因,通过分析代码差异、边缘情况与补丁适用性提升效果,且生成可读原理支持人工检查。
关键技术方法上,研究人员选用约3B参数的轻量指令微调模型Qwen2.5-Coder-3B作为基座,因其代码预训练语料对语法理解更优且在基线F1值(38.4%)与AUC(53.6%)表现最佳。采用组相对策略优化(GRPO)算法进行纯强化学习微调,无监督预微调,通过组内平均奖励替代价值模型以稳定训练并生成思维链(CoT)。提示设计采用One-shot示例与结构化输出格式,含
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号