MFTCoder: Potenciando Modelos de Lenguaje para Código mediante Ajuste Multitarea
MFTCoder: Boosting Code LLMs with Multitask Fine-Tuning
November 4, 2023
Autores: 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
Resumen
Los LLM de código han surgido como un campo de investigación especializado, con estudios notables dedicados a mejorar las capacidades de codificación de los modelos mediante el ajuste fino de modelos preentrenados. Los enfoques previos de ajuste fino solían estar adaptados a tareas o escenarios específicos, lo que implicaba un ajuste fino separado para cada tarea, requiriendo recursos de entrenamiento extensos y presentando desafíos en términos de implementación y mantenimiento. Además, estos enfoques no aprovechaban la interconexión inherente entre las diferentes tareas relacionadas con el código. Para superar estas limitaciones, presentamos un marco de ajuste fino multitarea, MFTcoder, que permite el ajuste fino simultáneo y paralelo en múltiples tareas. Al incorporar diversas funciones de pérdida, abordamos eficazmente los desafíos comunes en el aprendizaje multitarea, como el desequilibrio de datos, los niveles de dificultad variables y las velocidades de convergencia inconsistentes. Experimentos exhaustivos han demostrado de manera concluyente que nuestro enfoque de ajuste fino multitarea supera tanto el ajuste fino individual en tareas únicas como el ajuste fino en un conjunto mixto de tareas. Además, MFTcoder ofrece capacidades de entrenamiento eficientes, incluyendo modos de tokenización de datos eficientes y ajuste fino PEFT, lo que resulta en una velocidad significativamente mejorada en comparación con los métodos tradicionales de ajuste fino. MFTcoder se integra perfectamente con varios LLM de código abierto principales, como CodeLLama y Qwen. Aprovechando la base de CodeLLama, nuestro modelo ajustado con MFTcoder, CodeFuse-CodeLLama-34B, alcanza un impresionante puntaje pass@1 del 74.4\% en el benchmark HumaneEval, superando el rendimiento de GPT-4 (67\%, zero-shot). MFTCoder es de código abierto en 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