CodeT5+: Modelos de Linguagem de Grande Escala Abertos para Compreensão e Geração de Código
CodeT5+: Open Code Large Language Models for Code Understanding and Generation
May 13, 2023
Autores: Yue Wang, Hung Le, Akhilesh Deepak Gotmare, Nghi D. Q. Bui, Junnan Li, Steven C. H. Hoi
cs.AI
Resumo
Modelos de linguagem de grande escala (LLMs) pré-treinados em vastos códigos-fonte têm alcançado progressos notáveis em inteligência de código. No entanto, os LLMs de código existentes apresentam duas limitações principais em termos de arquitetura e tarefas de pré-treinamento. Primeiro, eles frequentemente adotam uma arquitetura específica (apenas codificador ou apenas decodificador) ou dependem de uma rede unificada codificador-decodificador para diferentes tarefas subsequentes. O primeiro paradigma é limitado pela inflexibilidade em aplicações, enquanto no segundo, o modelo é tratado como um sistema único para todas as tarefas, resultando em desempenho subótimo em um subconjunto de tarefas. Em segundo lugar, eles frequentemente empregam um conjunto limitado de objetivos de pré-treinamento que podem não ser relevantes para algumas tarefas subsequentes e, portanto, resultam em uma degradação substancial de desempenho. Para abordar essas limitações, propomos o ``CodeT5+'', uma família de LLMs codificador-decodificador para código em que os módulos componentes podem ser combinados de forma flexível para se adequar a uma ampla gama de tarefas de código subsequentes. Essa flexibilidade é possibilitada pela nossa proposta de mistura de objetivos de pré-treinamento para mitigar a discrepância entre pré-treinamento e ajuste fino. Esses objetivos abrangem tarefas de desnudação de trechos, aprendizado contrastivo, correspondência texto-código e pré-treinamento de modelo de linguagem causal, tanto em corpora de código unimodal quanto bimodal multilíngue. Além disso, propomos inicializar o CodeT5+ com LLMs prontos para uso e congelados, sem treinamento a partir do zero, para escalar nossos modelos de forma eficiente, e exploramos o ajuste por instrução para alinhar com instruções em linguagem natural. Avaliamos extensivamente o CodeT5+ em mais de 20 benchmarks relacionados a código em diferentes configurações, incluindo zero-shot, ajuste fino e ajuste por instrução. Observamos desempenho de modelo state-of-the-art (SoTA) em várias tarefas relacionadas a código, como geração e conclusão de código, programação matemática e tarefas de recuperação texto-código. Particularmente, nosso CodeT5+ 16B ajustado por instrução alcança novos resultados SoTA na tarefa de geração de código HumanEval em comparação com outros LLMs de código abertos.
English
Large language models (LLMs) pretrained on vast source code have achieved
prominent progress in code intelligence. However, existing code LLMs have two
main limitations in terms of architecture and pretraining tasks. First, they
often adopt a specific architecture (encoder-only or decoder-only) or rely on a
unified encoder-decoder network for different downstream tasks. The former
paradigm is limited by inflexibility in applications while in the latter, the
model is treated as a single system for all tasks, leading to suboptimal
performance on a subset of tasks. Secondly, they often employ a limited set of
pretraining objectives which might not be relevant to some downstream tasks and
hence result in substantial performance degrade. To address these limitations,
we propose ``CodeT5+'', a family of encoder-decoder LLMs for code in which
component modules can be flexibly combined to suit a wide range of downstream
code tasks. Such flexibility is enabled by our proposed mixture of pretraining
objectives to mitigate the pretrain-finetune discrepancy. These objectives
cover span denoising, contrastive learning, text-code matching, and causal LM
pretraining tasks, on both unimodal and bimodal multilingual code corpora.
Furthermore, we propose to initialize CodeT5+ with frozen off-the-shelf LLMs
without training from scratch to efficiently scale up our models, and explore
instruction-tuning to align with natural language instructions. We extensively
evaluate CodeT5+ on over 20 code-related benchmarks in different settings,
including zero-shot, finetuning, and instruction-tuning. We observe
state-of-the-art (SoTA) model performance on various code-related tasks, such
as code generation and completion, math programming, and text-to-code retrieval
tasks. Particularly, our instruction-tuned CodeT5+ 16B achieves new SoTA
results on HumanEval code generation task against other open code LLMs.