CodeT5+: Open Code Large Language Models for Code Understanding and Generation

解决问题:这篇论文旨在解决现有的编程语言模型在架构和预训练任务方面的限制,提出了一种灵活的编码器-解码器模型,可以适应各种下游编程任务,并使用多种预训练目标来缓解预训练和微调之间的差异。

关键思路:CodeT5+是一种编码器-解码器模型,可以根据不同的下游编程任务灵活地组合组件模块。为了缓解预训练和微调之间的差异,论文提出了多种预训练目标,包括跨度去噪、对比学习、文本-代码匹配和因果LM预训练任务,涵盖了单模态和双模态多语言代码语料库。此外,论文还提出了使用预训练的模型初始化CodeT5+,以及使用指令调整来对齐自然语言指令。

其他亮点:论文在20多个与代码相关的基准测试中对CodeT5+进行了广泛评估,并在不同设置下观察到了最先进的模型性能,如代码生成和完成、数学编程和文本到代码检索任务。特别是,在HumanEval代码生成任务上,使用指令调整的CodeT5+ 16B取得了超过其他开放代码LLM的新的SoTA结果。该论文的代码已经在GitHub上开源。

关于作者:Yue Wang和Steven C. H. Hoi分别是新加坡国立大学计算机科学系的教授和副教授,都是机器学习领域的专家。Hung Le、Akhilesh Deepak Gotmare、Nghi D. Q. Bui和Junnan Li都是新加坡国立大学计算机科学系的博士生或研究助理。他们在机器学习和自然语言处理领域都有过多篇论文发表,如"Unifying Vision-and-Language Tasks via Text Generation"和"Multi-Task Learning for Text-to-SQL Generation"等。

相关研究:近期其他相关的研究包括:"Unified Pre-training for Program Understanding and Generation" (作者:Junjie Huang, et al.,机构:华中科技大学)、"CodeBERT: A Pre-Trained Model for Programming and Natural Language Processing" (作者:Kai Sun, et al.,机构:华为诺亚方舟实验室)等。

论文摘要:CodeT5+:为代码理解和生成开放的编码大语言模型 作者:Yue Wang,Hung Le,Akhilesh Deepak Gotmare,Nghi D. Q. Bui,Junnan Li,Steven C.H. Hoi 大规模预训练的语言模型(LLM)在广泛的源代码上预训练,已经在代码智能方面取得了显著的进展。然而,现有的代码LLM在架构和预训练任务方面存在两个主要限制。首先,它们通常采用特定的架构(仅编码器或仅解码器)或依赖于统一的编码器-解码器网络进行不同的下游任务。前一种范式在应用中受到限制,而在后一种范式中,模型被视为所有任务的单一系统,导致在某些任务的子集上表现不佳。其次,它们通常采用有限的预训练目标,这些目标可能与某些下游任务不相关,因此会导致性能大幅下降。为了解决这些限制,我们提出了“CodeT5+”,这是一系列编码器-解码器LLM,用于代码,其中组件模块可以灵活组合以适应各种下游代码任务。这种灵活性是通过我们提出的混合预训练目标实现的,以减轻预训练-微调差异。这些目标涵盖跨度去噪、对比学习、文本-代码匹配和因果LM预训练任务,涵盖单模和双模多语言代码语料库。此外,我们建议使用冻结的现成LLM初始化CodeT5+,而无需从头开始训练以有效地扩展我们的模型,并探索指令调整以与自然语言指令对齐。我们在不同设置下对CodeT5+进行了广泛的评估,包括零-shot、微调和指令调整。我们观察到各种与代码相关的任务上的最新模型表现,例如代码生成和完成、数学编程和文本到代码检索任务。特别是,我们的指令调整CodeT5+ 16B在HumanEval代码生成任务上实现了其他开放代码LLM的新的SoTA结果。

内容中包含的图片若涉及版权问题,请及时与我们联系删除