“When Large Language Models Confront Repository-Level Automatic Program Repair How Well They Done“ 论

介绍

(1) 发表:ICSE'24

(2) 背景

APR 任务的这些模型的当前评估仅关注错误所在的单个功能或文件的有限上下文,从而忽略了存储库级上下文中的有价值信息。现有的数据集要么不是在存储库中构建的,例如 Quixbugs,要么无法准确恢复存储库级错误的方案,例如 Defects4J。本文研究了流行 LLM 在处理存储库级维修任务中的性能

(3) 贡献

  • 介绍了 Repobugs,这是一种新的基准测试,包括来自开源存储库中的 124 个典型的存储库级错误
  • 提出了一个简单而通用的存储库级上下文提取方法 RLCE,旨在为存储库级的代码修复任务提供更精确的上下文

数据集构建

数据来自 Github 开源项目的 11 个 Python 库,在数据集构建过程中,Repobugs 的错误是具有丰富编程经验的专家人工制定的

  • NRV:上下文函数与主函数之间的返回值数量的不一致
  • NP:主函数和上下文功能之间的输入参数数量不一致
  • ORV:主函数和上下文功能之间的返回参数顺序不一致
  • OP:主函数和上下文功能之间的输入参数顺序不一致
  • CRV:从上下文功能返回的值与主函数的要求不一致
  • CP:主函数和上下文功能要求之间的输入参数不一致

方法

image-20250805185535256

(1) 构建项目结构树

项目结构树源自根节点,其子节点包含子目录和文件,并在存储库的根目录下。文件实体的子节点包括全球定义的变量,类和功能。项目结构树的叶节点仅限于函数节点或变量节点,包括定义函数或变量的代码

(2) 检索代码段

在检索之前,上下文检索工具需要分析和提取错误位置中调用的函数和全局变量,我们将其称为错误的错误函数(EIF)。然后定义了四种类型的上下文源,以确定 Retriver 应在何处从项目结构树中提取代码段:

  • EIF:检索包含在存储库范围内提取的错误访问函数的定义的代码段
  • Caller of EIF:搜索存储库中遇到错误函数的其他出现(不包括错误位置)以获取包含其调用位置的代码段
  • EF:包含错误位置的函数
  • Caller of EF:检查错误函数是否在存储库中的其他位置调用,如果是,则检索包含调用位置的代码段

(3) Prompt 构建

验证实验

为了确保评估结果的准确性,我们最终采用了手动评估方法,并由两位在 Python 编程方面拥有超过 5 年经验的专家提供了评估结果,使用了四个不同的指标:Related reply,Correct format,Correct repair,Correct explanation

image-20250805190358608

主要还是说明这些 LLM 在 Repobugs 上的修复率与在现有数据集上是不一样的

总结

第一个构建 Reposity-level 的 APR benchmark 的工作

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。


因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

四、AI大模型商业化落地方案

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值