"ThinkRepair: Self-Directed Automated Program Repair" 论文笔记 ...

打印 上一主题 下一主题

主题 2019|帖子 2019|积分 6057

介绍

(1) 发表
2024-07 ISSTA'24
(2) 背景
对于某些较为复杂的 bug,需要强大的代码明白和推理能力才能办理
方法


(1) 网络阶段

  • prompt 准备:角色形貌+任务形貌+思维链启示
  • 思维链网络:prompt 给 LLM 生成思维链,这里的输出是样本的集合,其中样本包罗 buggy 函数、修复函数和思维链
  • 功能验证:为了获得有效的样本,过滤低质量样本的思维过程。ThinkRepair 运行一个测试套件来测试上一步中 LLM 输出中提取的修复函数,仅保留乐成通过整个测试套件的修复函数(这里为每个 bug 执行最多 25 次实验)
(2) 修复阶段

  • Few-shot 选择:从网络阶段得到的知识库中选择最有益的示例。ThinkRepair根据语义相似性将这些示例聚集在知识库中,已挑选不同的示例
  • 自动化修复:根据选定的示例和目标 buggy 函数来构建一个 prompt,最后得到输出
  • 交互验证:通过运行测试套件验证全部候选修复函数,对于测试失败的用例,网络失败信息(① 编译失败 ② 超时 ③ 语法错误 ④ 测试失败)。然后 ThinkRepair 重建 prompt,并把失败信息附加到原始 prompt 的背面,最后生成新的修复函数。此迭代过程一直持续,直到获得固定函数(即乐成通过整个测试套件)或最大交互次数超过。
总结

这篇工作鉴戒了 slow thinking 的方法,通过反复自生成 COT 的方式增强 LLM 的推理能力,从而提升 APR 的性能

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

自由的羽毛

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表