中文

注释作为自然逻辑枢纽:从注释视角改进代码生成

计算与语言 2024-04-12 v1

摘要

代码生成旨在理解问题描述并生成相应的代码片段,现有工作通常通过提示策略(如思维链及其变体)将此类复杂任务分解为中间步骤。虽然这些研究取得了一定成功,但其有效性高度依赖于GPT-4等先进大语言模型的能力,尤其是在API调用方面,这极大地限制了其实用性。因此,如何在不显著增加训练成本的情况下,增强中小规模代码大语言模型的代码生成能力,是一个具有吸引力的挑战。在本文中,我们提出代码注释是自然语言与代码语言之间的自然逻辑枢纽,并建议利用注释来提升代码大语言模型的代码生成能力。具体地,我们提出了MANGO(注释作为自然逻辑枢纽),包括一种注释对比训练策略和相应的逻辑注释解码策略。实验在HumanEval和MBPP数据集上进行,使用StarCoder和WizardCoder作为骨干模型,模型参数量介于3B到7B之间。结果表明,基于强基线,MANGO显著提高了代码通过率。同时,逻辑注释解码策略的鲁棒性明显高于思维链提示。代码已公开在\url{https://github.com/pppa2019/Mango}。

关键词

引用

@article{arxiv.2404.07549,
  title  = {Comments as Natural Logic Pivots: Improve Code Generation via Comment Perspective},
  author = {Yijie Chen and Yijin Liu and Fandong Meng and Yufeng Chen and Jinan Xu and Jie Zhou},
  journal= {arXiv preprint arXiv:2404.07549},
  year   = {2024}
}

备注

The code is publicly available at https://github.com/pppa2019/Mango