ChatPaper.aiChatPaper

MFTCoder: Улучшение языковых моделей для программирования с помощью многозадачного тонкого настройки

MFTCoder: Boosting Code LLMs with Multitask Fine-Tuning

November 4, 2023
Авторы: Bingchang Liu, Chaoyu Chen, Cong Liao, Zi Gong, Huan Wang, Zhichao Lei, Ming Liang, Dajun Chen, Min Shen, Hailian Zhou, Hang Yu, Jianguo Li
cs.AI

Аннотация

Код-ориентированные языковые модели (Code LLMs) стали отдельной областью исследований, где значительные усилия направлены на улучшение способностей моделей к написанию кода с помощью тонкой настройки предварительно обученных моделей. Предыдущие подходы к тонкой настройке обычно адаптировались под конкретные задачи или сценарии, что требовало отдельной настройки для каждой задачи, значительных ресурсов для обучения и создавало сложности в развертывании и поддержке. Кроме того, эти подходы не учитывали внутреннюю взаимосвязь между различными задачами, связанными с кодом. Чтобы преодолеть эти ограничения, мы представляем многоцелевую структуру тонкой настройки MFTcoder, которая позволяет одновременно и параллельно выполнять тонкую настройку для нескольких задач. Включая различные функции потерь, мы эффективно решаем общие проблемы многоцелевого обучения, такие как дисбаланс данных, разный уровень сложности и неодинаковая скорость сходимости. Многочисленные эксперименты убедительно показали, что наш подход к многоцелевой тонкой настройке превосходит как индивидуальную настройку для отдельных задач, так и настройку на смешанном наборе задач. Более того, MFTcoder предлагает эффективные возможности обучения, включая режимы эффективной токенизации данных и тонкую настройку PEFT, что значительно повышает скорость по сравнению с традиционными методами тонкой настройки. MFTcoder легко интегрируется с несколькими популярными открытыми языковыми моделями, такими как CodeLLama и Qwen. Используя основу CodeLLama, наша модель, настроенная с помощью MFTcoder, CodeFuse-CodeLLama-34B, достигает впечатляющего результата pass@1 в 74,4\% на бенчмарке HumaneEval, превосходя производительность GPT-4 (67\%, zero-shot). MFTCoder доступен в открытом исходном коде по адресу https://github.com/codefuse-ai/MFTCOder.
English
Code LLMs have emerged as a specialized research field, with remarkable studies dedicated to enhancing model's coding capabilities through fine-tuning on pre-trained models. Previous fine-tuning approaches were typically tailored to specific downstream tasks or scenarios, which meant separate fine-tuning for each task, requiring extensive training resources and posing challenges in terms of deployment and maintenance. Furthermore, these approaches failed to leverage the inherent interconnectedness among different code-related tasks. To overcome these limitations, we present a multi-task fine-tuning framework, MFTcoder, that enables simultaneous and parallel fine-tuning on multiple tasks. By incorporating various loss functions, we effectively address common challenges in multi-task learning, such as data imbalance, varying difficulty levels, and inconsistent convergence speeds. Extensive experiments have conclusively demonstrated that our multi-task fine-tuning approach outperforms both individual fine-tuning on single tasks and fine-tuning on a mixed ensemble of tasks. Moreover, MFTcoder offers efficient training capabilities, including efficient data tokenization modes and PEFT fine-tuning, resulting in significantly improved speed compared to traditional fine-tuning methods. MFTcoder seamlessly integrates with several mainstream open-source LLMs, such as CodeLLama and Qwen. Leveraging the CodeLLama foundation, our MFTcoder fine-tuned model, CodeFuse-CodeLLama-34B, achieves an impressive pass@1 score of 74.4\% on the HumaneEval benchmark, surpassing GPT-4 performance (67\%, zero-shot). MFTCoder is open-sourced at https://github.com/codefuse-ai/MFTCOder
PDF111December 15, 2024