Iterative Refinement of Project-Level Code Context for Precise Code Generation with Compiler Feedback

2024年03月25日
  • 简介
    大型语言模型(LLMs)在自动化代码生成方面取得了显著进展。然而,LLM生成的代码可能包含API使用、类、数据结构或缺少项目特定信息等错误。由于大部分项目特定上下文无法适应LLMs的提示,我们必须找到方法让模型探索项目级别的代码上下文。我们提出了CoCoGen,一种利用编译器反馈来改进LLM生成代码的新方法。CoCoGen首先利用静态分析来识别生成的代码与项目上下文之间的不匹配。然后,它使用从代码库中提取的信息来迭代地对齐和修复已识别的错误。我们将CoCoGen与两个代表性的LLMs,即GPT-3.5-Turbo和Code Llama(13B)集成,并应用于Python代码生成。实验结果表明,CoCoGen在生成依赖于项目上下文的代码方面显著提高了原始LLMs超过80%,并始终优于现有的基于检索的代码生成基线。
  • 图表
  • 解决问题
    本论文的问题是如何通过使用编译器反馈来改进大型语言模型生成的代码,以更好地适应项目的上下文。这是一个相对新的问题。
  • 关键思路
    本论文提出了一种名为CoCoGen的新的代码生成方法,利用静态分析来识别生成的代码与项目上下文之间的不匹配,并使用从代码库中提取的信息来迭代地对齐和修复识别出的错误。
  • 其它亮点
    本论文将CoCoGen与两个代表性的大型语言模型GPT-3.5-Turbo和Code Llama(13B)集成,并应用于Python代码生成。实验结果表明,CoCoGen在生成依赖于项目上下文的代码方面显著优于常规的大型语言模型,提高了80%以上,并始终优于现有的基于检索的代码生成基线。
  • 相关研究
    最近在这个领域中,还有一些相关的研究,例如:1)CodeBERT:一种基于预训练的代码表示方法,2)GPT-Code:一种使用大型语言模型生成代码的方法,3)Deepfix:一种使用神经网络进行程序自动修复的方法。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论