Enhancing Repository-Level Code Generation with Integrated Contextual Information

2024年06月05日
  • 简介
    大型语言模型(LLMs)在代码生成任务中展示了卓越的能力。然而,仓库级别的代码生成面临着独特的挑战,特别是由于需要利用存储库中多个文件中分散的信息。现有的基于检索的方法有时会受到限制,因为它们在获取更广泛和更深入的存储库上下文方面存在局限性。在本文中,我们提出了CatCoder,这是一个专为静态类型编程语言设计的新型代码生成框架。CatCoder通过集成相关的代码和类型上下文来增强仓库级别的代码生成。具体而言,它利用静态分析器来提取类型依赖性,并将这些信息与检索到的代码合并,以创建LLMs的全面提示。为了评估CatCoder的有效性,我们改编和构建了包括199个Java任务和90个Rust任务的基准测试。结果表明,CatCoder在pass@k分数方面比RepoCoder基线表现提高了高达17.35%。此外,使用各种LLMs评估了CatCoder的通用性,包括专门用于代码的模型和通用模型。我们的研究结果表明,在所有模型中都有持续的性能改进,这凸显了CatCoder的实用性。
  • 作者讲解
  • 图表
  • 解决问题
    CatCoder: 提高代码生成的效率
  • 关键思路
    通过整合代码和类型上下文,使用静态分析器提取类型依赖关系,生成更全面的提示信息,从而提高代码生成的效率
  • 其它亮点
    通过199个Java任务和90个Rust任务的测试,CatCoder相比RepoCoder基准测试提高了高达17.35%的pass@k得分;CatCoder在多个LLM模型中表现出一致的性能提升;研究提供了开源代码和数据集
  • 相关研究
    与本文相关的研究包括:CodeBERT、GPT-3等
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问