ChatPaper.aiChatPaper

CodeT5+: Открытые крупные языковые модели для анализа и генерации кода

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

May 13, 2023
Авторы: Yue Wang, Hung Le, Akhilesh Deepak Gotmare, Nghi D. Q. Bui, Junnan Li, Steven C. H. Hoi
cs.AI

Аннотация

Крупные языковые модели (LLM), предварительно обученные на обширных исходных кодах, достигли значительного прогресса в области интеллектуальной обработки кода. Однако существующие кодоориентированные LLM имеют два основных ограничения, связанных с архитектурой и задачами предварительного обучения. Во-первых, они часто используют специфическую архитектуру (только кодировщик или только декодировщик) или полагаются на унифицированную сеть кодировщик-декодировщик для различных задач. Первый подход ограничен недостаточной гибкостью в применении, тогда как во втором модель рассматривается как единая система для всех задач, что приводит к неоптимальной производительности на некоторых из них. Во-вторых, они часто применяют ограниченный набор задач предварительного обучения, которые могут быть нерелевантными для некоторых задач, что приводит к значительному снижению производительности. Для устранения этих ограничений мы предлагаем «CodeT5+» — семейство кодоориентированных LLM с архитектурой кодировщик-декодировщик, в котором компоненты могут гибко комбинироваться для решения широкого спектра задач. Такая гибкость обеспечивается за счет предложенной нами смеси задач предварительного обучения, направленной на минимизацию расхождений между предварительным обучением и тонкой настройкой. Эти задачи включают восстановление зашумленных фрагментов, контрастивное обучение, сопоставление текста и кода, а также задачи предварительного обучения с использованием причинных языковых моделей, применяемые как на унимодальных, так и на бимодальных многоязычных корпусах кода. Кроме того, мы предлагаем инициализировать CodeT5+ с использованием замороженных готовых LLM без обучения с нуля для эффективного масштабирования моделей, а также исследуем настройку на инструкции для согласования с естественными языковыми указаниями. Мы проводим всестороннюю оценку CodeT5+ на более чем 20 кодоориентированных бенчмарках в различных режимах, включая zero-shot, тонкую настройку и настройку на инструкции. Мы наблюдаем достижение моделями наилучших результатов (state-of-the-art, SoTA) на различных задачах, связанных с кодом, таких как генерация и завершение кода, математическое программирование и задачи поиска кода по тексту. В частности, наша модель CodeT5+ 16B, настроенная на инструкции, устанавливает новые рекорды SoTA на задаче генерации кода HumanEval среди других открытых кодоориентированных LLM.
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