RepoBench: Benchmarking Repository-Level Code Auto-Completion Systems

解决问题:这篇论文旨在填补当前代码自动补全系统评估的空白,尤其是在多文件编程场景下的评估。它提出了一个新的基准测试RepoBench,旨在评估代码自动补全系统的能力。

关键思路:RepoBench由三个相互关联的评估任务组成,分别是RepoBench-R(检索)、RepoBench-C(代码完成)和RepoBench-P(流水线)。每个任务分别衡量系统从其他文件中检索最相关的代码片段作为跨文件上下文、使用跨文件和文件内上下文预测下一行代码以及处理需要检索和下一行预测相结合的复杂任务的能力。与当前领域的研究相比,RepoBench的创新之处在于提供了一种全面比较性能和鼓励自动完成系统持续改进的方法。

其他亮点:RepoBench公开了其代码,可以在https://github.com/Leolty/repobench上获得。该论文的实验是如何设计的,以及使用了哪些数据集,目前还没有提及。值得深入研究的工作包括如何进一步提高自动完成系统的性能和如何将RepoBench扩展到其他编程语言。

关于作者:主要作者是Tianyang Liu、Canwen Xu和Julian McAuley。他们分别来自美国加州大学圣地亚哥分校和加州大学圣地亚哥分校计算机科学与工程系。他们之前的代表作还没有提及。

相关研究:近期的相关研究包括“CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing”(Zhangyin Feng, Daya Guo, Duyu Tang, Nan Duan, Xiaodong Liu和Daxin Jiang,微软亚洲研究院)和“Deep Code Comment Generation”(Ziyu Yao,Siyuan Huang,Yingfei Xiong和Lu Zhang,新加坡国立大学)。

论文摘要:RepoBench:评估代码存储库级别自动完成系统的基准测试 Tianyang Liu,Canwen Xu,Julian McAuley 大型语言模型(LLM)极大地推进了代码自动完成系统,为开发人员带来了潜在的大幅提升生产力的好处。然而,目前的基准测试主要集中在单个文件任务上,对于更复杂的、真实的、多文件编程场景存在评估空白。为了填补这一空白,我们引入了 RepoBench,这是一个专门设计用于评估代码存储库级别自动完成系统的新基准测试。RepoBench 包括三个相互关联的评估任务:RepoBench-R(检索)、RepoBench-C(代码完成)和 RepoBench-P(流水线)。每个任务分别测量系统从其他文件中检索最相关的代码片段作为跨文件上下文的能力,使用跨文件和文件内上下文预测下一行代码的能力,以及处理需要检索和下一行预测相结合的复杂任务的能力。RepoBench旨在促进更完整的性能比较,并鼓励自动完成系统的持续改进。RepoBench可在 https://github.com/Leolty/repobench 上公开获取。

内容中包含的图片若涉及版权问题,请及时与我们联系删除