MFTCoder : Amélioration des modèles de langage pour le code par ajustement multitâche
MFTCoder: Boosting Code LLMs with Multitask Fine-Tuning
November 4, 2023
Auteurs: 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
Résumé
Les LLM de code sont devenus un domaine de recherche spécialisé, avec des études remarquables dédiées à l'amélioration des capacités de codage des modèles grâce au fine-tuning sur des modèles pré-entraînés. Les approches précédentes de fine-tuning étaient généralement adaptées à des tâches ou scénarios spécifiques en aval, ce qui nécessitait un fine-tuning séparé pour chaque tâche, exigeant des ressources de formation importantes et posant des défis en termes de déploiement et de maintenance. De plus, ces approches ne parvenaient pas à exploiter l'interconnexion inhérente entre les différentes tâches liées au code. Pour surmonter ces limitations, nous présentons un cadre de fine-tuning multi-tâches, MFTcoder, qui permet un fine-tuning simultané et parallèle sur plusieurs tâches. En intégrant diverses fonctions de perte, nous abordons efficacement les défis courants de l'apprentissage multi-tâches, tels que le déséquilibre des données, les niveaux de difficulté variables et les vitesses de convergence incohérentes. Des expériences approfondies ont démontré de manière concluante que notre approche de fine-tuning multi-tâches surpasse à la fois le fine-tuning individuel sur des tâches uniques et le fine-tuning sur un ensemble mixte de tâches. De plus, MFTcoder offre des capacités de formation efficaces, y compris des modes de tokenisation des données efficaces et un fine-tuning PEFT, ce qui entraîne une amélioration significative de la vitesse par rapport aux méthodes de fine-tuning traditionnelles. MFTcoder s'intègre de manière transparente avec plusieurs LLM open-source grand public, tels que CodeLLama et Qwen. En s'appuyant sur la fondation CodeLLama, notre modèle fine-tuné MFTcoder, CodeFuse-CodeLLama-34B, atteint un score pass@1 impressionnant de 74,4\% sur le benchmark HumaneEval, surpassant les performances de GPT-4 (67\%, zero-shot). MFTCoder est open-source à l'adresse 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