"Aligning the Objective of LLM-based Program Repair" 论文笔记 ...

打印 上一主题 下一主题

主题 979|帖子 979|积分 2937

介绍

(1) 发表
2025-02 ICSE'24
(2) 挑战

  • 当火线法的推理目标与 LLM 的练习目标没有对齐。现有 LLM-based 方法通常采用 MLM 的方式预测修复代码(然而只管模型参数被增大百倍但修复结果甚至没有翻一番,这与其他任务的明确可伸缩性形成对比)。因此本文假设在练习中  代码语料就很稀缺,这些 LLM 在这种方式性能不佳
  • 现有的 workflow 限定了 LLM 完全使用其预练习的能力。考虑到 LLM 出色的代码理解能力,LLM 可能不需要 fault localization 来要求 LLM 在提供的几个 hunk 中生成补丁,限定了 LLM 探索更多的潜伏补丁空间
(3) 贡献

  • 将 MLM 任务转换为全生成任务,与 decoder-only 的 LLMs 的预练习目标保持一致
  • 与依靠声明级别的 FL 工具,LLM 可以使用各类型的工件来定位和维修 buggy code
  • 广泛的试验评估证实了其有效性
方法


(1) 模型选择
由于采用了 CLM 的任务目标,这里应该选择 decoder-only 的 LLM,所以选择了 GPT-4 作为骨干模型,又由于 GPT-4 是一个黑河模型,其推理损失不可见,所以又选择了另一个最先进的白盒模型 Mixtral-Moe 作为替代骨干模型
(2) Artifact Extraction
一但确定了错误的 function (固然无需语句级别的定位,但还是需要方法级别的定位),D4C将主动提取文档或解释,以形貌该函数的通用目的及其输入输出数据类型;失败测试用例的输入和预期输出;以及执行这些失败测试案例的错误消息
(3) Prompt Construction
比较经典的 prompt 样式
(4) Patch Generation
不引入其他补丁排名方法,因为 D4C 仅需生成 10 个候选补丁(为什么呢),这明显少于现有方法的采样数量
(5) Patch Validation
遵循现有的 APR 论文方法为每个合理的补丁添加手动验证
总结

关键在于将 MLM 替换成了 CLM 任务来对齐目标,分析并验证了结果很好

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表