CodeS: Natural Language to Code Repository via Multi-Layer Sketch

2024年03月25日
  • 简介
    大型语言模型(LLMs)在与代码相关的任务上表现出的惊人性能显示了完全自动化软件开发的潜力。鉴于此,我们介绍了一个新的软件工程任务,即自然语言到代码仓库(NL2Repo)。该任务旨在从自然语言要求中生成整个代码仓库。为了解决这个任务,我们提出了一个简单而有效的框架CodeS,通过多层草图将NL2Repo分解成多个子任务。具体而言,CodeS包括三个模块:RepoSketcher、FileSketcher和SketchFiller。RepoSketcher首先为给定的要求生成仓库的目录结构;FileSketcher然后为生成的结构中的每个文件生成文件草图;SketchFiller最后为生成的文件草图中的每个函数填充细节。为了严格评估CodeS在NL2Repo任务上的表现,我们通过自动化基准测试和手动反馈分析进行评估。对于基于基准测试的评估,我们设计了一个以仓库为导向的基准测试SketchEval,并设计了一个评估指标SketchBLEU。对于基于反馈的评估,我们为CodeS开发了一个VSCode插件,并邀请30个参与者进行实证研究。广泛的实验证明了CodeS在NL2Repo任务上的有效性和实用性。
  • 作者讲解
  • 图表
  • 解决问题
    将自然语言需求转化为代码仓库是一项新的软件工程任务,本论文旨在提出一种简单而有效的框架来解决这个问题。
  • 关键思路
    CodeS框架将NL2Repo任务分解为多个子任务,通过多层草图来完成。包括RepoSketcher、FileSketcher和SketchFiller三个模块,分别生成代码仓库的目录结构、文件草图和函数细节。
  • 其它亮点
    论文设计了一个基于草图的评估指标SketchBLEU,并开发了一个VSCode插件进行人工实验。实验结果证明了CodeS框架在NL2Repo任务上的有效性和实用性。
  • 相关研究
    近年来,自然语言处理和代码生成领域已经有很多相关的研究,例如《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》、《Deep Code Comment Generation》等。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

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

向作者提问