Comments as Natural Logic Pivots: Improve Code Generation via Comment Perspective

2024年04月11日
  • 简介
    代码生成旨在理解问题描述并生成相应的代码片段,现有的研究通常通过提示策略(如“思维链”及其变体)将这些复杂任务分解为中间步骤。尽管这些研究取得了一定的成功,但它们的有效性高度依赖于先进的大型语言模型(LLM),如GPT-4,特别是在API调用方面,这显著限制了它们的实际应用。因此,如何在不显著增加训练成本的情况下增强小型和中型代码LLM的代码生成能力是一个有吸引力的挑战。在本文中,我们建议代码注释是自然语言和代码语言之间的自然逻辑枢纽,并提出使用注释来增强代码LLM的代码生成能力。具体而言,我们提出了MANGO(comMents As Natural loGic pivOts),包括注释对比训练策略和相应的逻辑注释解码策略。在HumanEval和MBPP上进行了实验,使用StarCoder和WizardCoder作为骨干模型,涵盖了3B到7B之间的模型参数大小。结果表明,MANGO显着提高了代码通过率,基于强基线。同时,逻辑注释解码策略的鲁棒性明显高于“思维链”提示。代码公开可用于\url{https://github.com/pppa2019/Mango}。
  • 图表
  • 解决问题
    如何提高小型和中型代码语言模型的代码生成能力,而不显著增加训练成本?
  • 关键思路
    使用代码注释作为自然语言和代码语言之间的逻辑桥梁,提出了MANGO(comMents As Natural loGic pivOts)方法,包括注释对比训练策略和相应的逻辑注释解码策略。
  • 其它亮点
    使用StarCoder和WizardCoder作为骨干模型,在HumanEval和MBPP数据集上进行实验,模型参数大小在3B和7B之间。结果表明,MANGO显著提高了代码通过率,并且逻辑注释解码策略的鲁棒性明显高于Chain-of-thoughts提示。
  • 相关研究
    当前领域的研究通常使用Chain-of-Thought等提示策略,但这些方法高度依赖于先进的大型语言模型(LLMs),如GPT-4。近期相关研究包括《CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing》和《CODE-NN: A Deep Learning Model for Code Generation and Neural Machine Translation》。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论