MFTCoder: Aprimorando Modelos de Linguagem para Código com Ajuste Fino Multitarefa
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
Resumo
Os LLMs de código emergiram como um campo de pesquisa especializado, com estudos notáveis dedicados a aprimorar as capacidades de codificação dos modelos por meio de ajuste fino em modelos pré-treinados. As abordagens anteriores de ajuste fino eram tipicamente adaptadas a tarefas ou cenários específicos, o que significava ajustes separados para cada tarefa, exigindo recursos extensivos de treinamento e apresentando desafios em termos de implantação e manutenção. Além disso, essas abordagens não conseguiam aproveitar a interconexão inerente entre diferentes tarefas relacionadas a código. Para superar essas limitações, apresentamos um framework de ajuste fino multitarefa, o MFTcoder, que permite o ajuste simultâneo e paralelo em múltiplas tarefas. Ao incorporar várias funções de perda, abordamos efetivamente desafios comuns no aprendizado multitarefa, como desequilíbrio de dados, níveis variáveis de dificuldade e velocidades de convergência inconsistentes. Experimentos extensivos demonstraram conclusivamente que nossa abordagem de ajuste fino multitarefa supera tanto o ajuste fino individual em tarefas únicas quanto o ajuste fino em um conjunto misto de tarefas. Além disso, o MFTcoder oferece capacidades de treinamento eficientes, incluindo modos de tokenização de dados eficientes e ajuste fino PEFT, resultando em uma velocidade significativamente melhorada em comparação com métodos tradicionais de ajuste fino. O MFTcoder integra-se perfeitamente com vários LLMs de código-fonte aberto, como o CodeLLama e o Qwen. Aproveitando a base do CodeLLama, nosso modelo ajustado pelo MFTcoder, o CodeFuse-CodeLLama-34B, alcança uma pontuação pass@1 impressionante de 74,4% no benchmark HumaneEval, superando o desempenho do GPT-4 (67%, zero-shot). O MFTCoder é disponibilizado como código aberto em 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