MFTCoder: Verbesserung von Code-LLMs durch Multitask-Fine-Tuning
MFTCoder: Boosting Code LLMs with Multitask Fine-Tuning
November 4, 2023
Autoren: 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
Zusammenfassung
Code-LLMs haben sich als spezialisiertes Forschungsfeld etabliert, mit bemerkenswerten Studien, die darauf abzielen, die Programmierfähigkeiten von Modellen durch Feinabstimmung auf vortrainierten Modellen zu verbessern. Bisherige Feinabstimmungsansätze waren typischerweise auf spezifische Downstream-Aufgaben oder Szenarien zugeschnitten, was eine separate Feinabstimmung für jede Aufgabe erforderte. Dies führte zu einem hohen Bedarf an Trainingsressourcen und stellte Herausforderungen in Bezug auf Bereitstellung und Wartung dar. Darüber hinaus konnten diese Ansätze die inhärente Vernetzung zwischen verschiedenen codebezogenen Aufgaben nicht nutzen. Um diese Einschränkungen zu überwinden, präsentieren wir ein Multi-Task-Feinabstimmungsframework, MFTcoder, das eine gleichzeitige und parallele Feinabstimmung auf mehrere Aufgaben ermöglicht. Durch die Einbindung verschiedener Verlustfunktionen adressieren wir effektiv häufige Herausforderungen im Multi-Task-Lernen, wie Datenungleichgewichte, unterschiedliche Schwierigkeitsgrade und inkonsistente Konvergenzgeschwindigkeiten. Umfangreiche Experimente haben eindeutig gezeigt, dass unser Multi-Task-Feinabstimmungsansatz sowohl die individuelle Feinabstimmung auf einzelne Aufgaben als auch die Feinabstimmung auf eine gemischte Aufgabensammlung übertrifft. Darüber hinaus bietet MFTcoder effiziente Trainingsfähigkeiten, einschließlich effizienter Daten-Tokenisierungsmodi und PEFT-Feinabstimmung, was zu einer deutlich verbesserten Geschwindigkeit im Vergleich zu traditionellen Feinabstimmungsmethoden führt. MFTcoder integriert sich nahtlos in mehrere Mainstream-Open-Source-LLMs wie CodeLLama und Qwen. Auf der Grundlage von CodeLLama erreicht unser mit MFTcoder feinabgestimmtes Modell, CodeFuse-CodeLLama-34B, eine beeindruckende pass@1-Bewertung von 74,4\% auf dem HumaneEval-Benchmark und übertrifft damit die Leistung von GPT-4 (67\%, Zero-Shot). MFTCoder ist unter https://github.com/codefuse-ai/MFTCOder quelloffen verfügbar.
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