CodeT5+: Modelli Linguistici di Codice Open Source per la Comprensione e la Generazione del Codice
CodeT5+: Open Code Large Language Models for Code Understanding and Generation
May 13, 2023
Autori: Yue Wang, Hung Le, Akhilesh Deepak Gotmare, Nghi D. Q. Bui, Junnan Li, Steven C. H. Hoi
cs.AI
Abstract
I grandi modelli linguistici (LLM) pre-addestrati su vasti corpus di codice sorgente hanno ottenuto progressi significativi nell'intelligenza del codice. Tuttavia, gli attuali LLM per il codice presentano due principali limitazioni in termini di architettura e compiti di pre-addestramento. In primo luogo, spesso adottano un'architettura specifica (solo encoder o solo decoder) o si affidano a una rete unificata encoder-decoder per diversi compiti downstream. Il primo paradigma è limitato da una scarsa flessibilità nelle applicazioni, mentre nel secondo il modello è trattato come un sistema unico per tutti i compiti, portando a prestazioni subottimali su un sottoinsieme di task. In secondo luogo, spesso impiegano un insieme limitato di obiettivi di pre-addestramento che potrebbero non essere rilevanti per alcuni compiti downstream, risultando in un significativo degrado delle prestazioni. Per affrontare queste limitazioni, proponiamo ``CodeT5+'', una famiglia di LLM encoder-decoder per il codice in cui i moduli componenti possono essere combinati in modo flessibile per adattarsi a un'ampia gamma di task downstream relativi al codice. Tale flessibilità è resa possibile dalla nostra proposta di una miscela di obiettivi di pre-addestramento per mitigare la discrepanza tra pre-addestramento e fine-tuning. Questi obiettivi coprono compiti di denoising di span, apprendimento contrastivo, matching testo-codice e pre-addestramento LM causale, su corpora di codice multilingue sia unimodali che bimodali. Inoltre, proponiamo di inizializzare CodeT5+ con LLM pre-esistenti congelati senza addestramento da zero per scalare in modo efficiente i nostri modelli, e esploriamo l'instruction-tuning per allinearsi alle istruzioni in linguaggio naturale. Valutiamo estensivamente CodeT5+ su oltre 20 benchmark relativi al codice in diverse configurazioni, tra cui zero-shot, fine-tuning e instruction-tuning. Osserviamo prestazioni all'avanguardia (SoTA) su vari task relativi al codice, come generazione e completamento del codice, programmazione matematica e task di recupero testo-codice. In particolare, il nostro CodeT5+ 16B con instruction-tuning raggiunge nuovi risultati SoTA sul task di generazione di codice HumanEval rispetto ad altri LLM per il codice open.
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.