CodeT5+ : Modèles de langage massifs ouverts pour la compréhension et la génération de code
CodeT5+: Open Code Large Language Models for Code Understanding and Generation
May 13, 2023
Auteurs: Yue Wang, Hung Le, Akhilesh Deepak Gotmare, Nghi D. Q. Bui, Junnan Li, Steven C. H. Hoi
cs.AI
Résumé
Les grands modèles de langage (LLM) pré-entraînés sur de vastes corpus de code source ont réalisé des progrès significatifs en intelligence du code. Cependant, les LLM de code existants présentent deux limitations principales en termes d'architecture et de tâches de pré-entraînement. Premièrement, ils adoptent souvent une architecture spécifique (encodeur uniquement ou décodeur uniquement) ou s'appuient sur un réseau encodeur-décodeur unifié pour différentes tâches en aval. Le premier paradigme est limité par un manque de flexibilité dans les applications, tandis que dans le second, le modèle est traité comme un système unique pour toutes les tâches, conduisant à des performances sous-optimales sur un sous-ensemble de tâches. Deuxièmement, ils utilisent souvent un ensemble limité d'objectifs de pré-entraînement qui pourraient ne pas être pertinents pour certaines tâches en aval, entraînant ainsi une dégradation substantielle des performances. Pour résoudre ces limitations, nous proposons ``CodeT5+'', une famille de LLM encodeur-décodeur pour le code dans laquelle les modules composants peuvent être combinés de manière flexible pour s'adapter à un large éventail de tâches de code en aval. Cette flexibilité est rendue possible par notre proposition de mélange d'objectifs de pré-entraînement pour atténuer l'écart entre pré-entraînement et affinage. Ces objectifs couvrent le débruitage de segments, l'apprentissage contrastif, l'appariement texte-code, et les tâches de pré-entraînement de modèle de langage causal, sur des corpus de code unimodaux et bimodaux multilingues. De plus, nous proposons d'initialiser CodeT5+ avec des LLM prêts à l'emploi gelés sans entraînement à partir de zéro pour évoluer efficacement nos modèles, et explorons l'affinage par instruction pour s'aligner sur les instructions en langage naturel. Nous évaluons extensivement CodeT5+ sur plus de 20 benchmarks liés au code dans différents contextes, incluant le zero-shot, l'affinage, et l'affinage par instruction. Nous observons des performances de pointe (SoTA) sur diverses tâches liées au code, telles que la génération et la complétion de code, la programmation mathématique, et les tâches de recherche texte-code. En particulier, notre CodeT5+ 16B affiné par instruction atteint de nouveaux résultats SoTA sur la tâche de génération de code HumanEval par rapport à d'autres LLM de code ouverts.
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.