MFTCoder: Verbetering van Code-LLM's met Multitask Fine-Tuning
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
Samenvatting
Code LLMs zijn uitgegroeid tot een gespecialiseerd onderzoeksveld, met opmerkelijke studies gewijd aan het verbeteren van de codeervaardigheden van modellen door middel van fine-tuning op vooraf getrainde modellen. Eerdere fine-tuningbenaderingen waren doorgaans afgestemd op specifieke downstream taken of scenario's, wat betekende dat er aparte fine-tuning nodig was voor elke taak, wat uitgebreide trainingsbronnen vereiste en uitdagingen opleverde op het gebied van implementatie en onderhoud. Bovendien maakten deze benaderingen geen gebruik van de inherente onderlinge verbondenheid tussen verschillende codegerelateerde taken. Om deze beperkingen te overwinnen, presenteren we een multi-task fine-tuningframework, MFTcoder, dat gelijktijdige en parallelle fine-tuning op meerdere taken mogelijk maakt. Door verschillende verliesfuncties te integreren, pakken we effectief veelvoorkomende uitdagingen in multi-task learning aan, zoals data-onbalans, variërende moeilijkheidsgraden en inconsistente convergentiesnelheden. Uitgebreide experimenten hebben overtuigend aangetoond dat onze multi-task fine-tuningbenadering zowel individuele fine-tuning op enkele taken als fine-tuning op een gemengd ensemble van taken overtreft. Bovendien biedt MFTcoder efficiënte trainingsmogelijkheden, waaronder efficiënte data-tokenisatiemodi en PEFT fine-tuning, wat resulteert in een aanzienlijk verbeterde snelheid in vergelijking met traditionele fine-tuningmethoden. MFTcoder integreert naadloos met verschillende mainstream open-source LLMs, zoals CodeLLama en Qwen. Door gebruik te maken van de CodeLLama-basis, bereikt ons MFTcoder fine-tuned model, CodeFuse-CodeLLama-34B, een indrukwekkende pass@1 score van 74,4\% op de HumaneEval benchmark, wat de prestaties van GPT-4 overtreft (67\%, zero-shot). MFTCoder is open-source beschikbaar op 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