ChatPaper.aiChatPaper

CodeT5+: Modelos de Lenguaje de Gran Escala Abiertos para la Comprensión y Generación 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

Resumen

Los grandes modelos de lenguaje (LLMs, por sus siglas en inglés) preentrenados en grandes volúmenes de código fuente han logrado avances destacados en inteligencia de código. Sin embargo, los LLMs de código existentes presentan dos limitaciones principales en términos de arquitectura y tareas de preentrenamiento. En primer lugar, suelen adoptar una arquitectura específica (solo codificador o solo decodificador) o dependen de una red unificada codificador-decodificador para diferentes tareas posteriores. El primer paradigma se ve limitado por su inflexibilidad en aplicaciones, mientras que en el segundo, el modelo se trata como un sistema único para todas las tareas, lo que resulta en un rendimiento subóptimo en un subconjunto de tareas. En segundo lugar, a menudo emplean un conjunto limitado de objetivos de preentrenamiento que podrían no ser relevantes para algunas tareas posteriores, lo que genera una degradación sustancial del rendimiento. Para abordar estas limitaciones, proponemos ``CodeT5+'', una familia de LLMs codificador-decodificador para código en la que los módulos componentes pueden combinarse de manera flexible para adaptarse a una amplia gama de tareas de código posteriores. Dicha flexibilidad se habilita mediante nuestra propuesta de una mezcla de objetivos de preentrenamiento para mitigar la discrepancia entre preentrenamiento y ajuste fino. Estos objetivos abarcan tareas de desruido de segmentos, aprendizaje contrastivo, emparejamiento texto-código y preentrenamiento de modelos de lenguaje causal, tanto en corpus de código unimodales como bimodales multilingües. Además, proponemos inicializar CodeT5+ con LLMs preexistentes congelados, sin entrenar desde cero, para escalar eficientemente nuestros modelos, y exploramos el ajuste por instrucciones para alinearlos con instrucciones en lenguaje natural. Evaluamos extensivamente CodeT5+ en más de 20 benchmarks relacionados con código en diferentes configuraciones, incluyendo zero-shot, ajuste fino y ajuste por instrucciones. Observamos un rendimiento de vanguardia (SoTA, por sus siglas en inglés) en diversas tareas relacionadas con código, como generación y completado de código, programación matemática y tareas de recuperación texto-código. En particular, nuestra versión de CodeT5+ 16B ajustada por instrucciones logra nuevos resultados SoTA en la tarea de generación de código HumanEval frente a otros LLMs de código abiertos.
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.
PDF52December 15, 2024