R2C2-Coder: Enhancing and Benchmarking Real-world Repository-level Code Completion Abilities of Code Large Language Models

2024年06月03日
  • 简介
    近年来,代码自动补全模型取得了显著进展。近期,仓库级别的代码自动补全在现代软件开发中引起了更多关注,并提出了几种基准方法和基准测试。但是,现有的仓库级别的代码自动补全方法经常无法充分利用项目仓库的广泛上下文,如相关文件和类层次结构的复杂性。此外,现有的基准测试通常只关注有限的代码自动补全场景,无法很好地反映现有方法的仓库级别的代码自动补全能力。为了解决这些限制,我们提出了R2C2-Coder来增强和基准测试代码大型语言模型的真实世界的仓库级别代码自动补全能力,其中R2C2-Coder包括一个代码提示构建方法R2C2-Enhance和一个精心设计的基准测试R2C2-Bench。具体而言,首先,在R2C2-Enhance中,我们首先构建候选检索池,然后通过从检索池中检索每个补全光标位置来组装完成提示。其次,基于R2C2-Enhance,我们可以构建一个更具挑战性和多样性的R2C2-Bench,其中提出了上下文扰动策略,以很好地模拟真实世界的仓库级别代码自动补全。在多个基准测试中的广泛结果证明了我们的R2C2-Coder的有效性。
  • 图表
  • 解决问题
    本论文旨在解决现有代码自动完成方法在利用项目仓库上下文方面的不足,并提出了一种R2C2-Coder,旨在增强和评估代码大型语言模型的真实世界仓库级代码自动完成能力。
  • 关键思路
    R2C2-Coder包括R2C2-Enhance和R2C2-Bench两个部分。R2C2-Enhance首先构建候选检索池,然后通过从检索池中检索来为每个完成光标位置组装完成提示。基于R2C2-Enhance,我们可以构建一个更具挑战性和多样性的R2C2-Bench,其中提出了一种上下文扰动策略,以很好地模拟现实世界的仓库级代码自动完成。
  • 其它亮点
    论文提出的R2C2-Coder在多个基准测试中得到了验证,证明了其有效性。实验设计了一个具有挑战性和多样性的R2C2-Bench,使用了多个数据集,并提出了一种上下文扰动策略来模拟现实世界的情况。此外,论文还提出了一个候选检索池的构建方法,以更好地利用项目仓库上下文。
  • 相关研究
    最近的相关研究包括CodeBERT和GPT-3等大型语言模型在代码自动完成方面的应用。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论