MFTCoder:面向代码任务的多任务微调框架
1. 项目基础介绍
MFTCoder 是由 CodeFuse 开发的一个开源项目,旨在为大型语言模型(尤其是针对代码任务的语言模型)提供精确和高效的多任务微调(Multi-task Fine-tuning, MFT)解决方案。该项目使用 Python 编程语言,结合了先进的深度学习技术,为大型语言模型的多任务训练提供支持。
2. 项目的核心功能
- 多任务训练:MFTCoder 支持模型在多个任务上进行训练,同时保持任务之间的平衡。模型甚至能够泛化到新的、未见过的任务上。
- 多模型支持:项目集成了多种最先进的开源模型,如 gpt-neox、llama、llama-2、baichuan、Qwen、ChatGLM2 等。
- 多框架支持:MFTCoder 提供了对 Accelerate(配合 Deepspeed 和 FSDP)和 ATorch 的支持。
- 高效微调:支持 LoRA、QLoRA 以及全参数训练,使得在最小资源下微调大型模型成为可能,同时训练速度满足几乎所有微调场景的需求。
3. 项目最近更新的功能
- 多任务微调的收敛平衡器(CoBa)方法:在原始 pefts 模块中更新了 selfpaced 方法,以新的收敛平衡(CoBa)方法替代,实现了多任务微调中的平衡收敛。
- 支持新的模型和优化器:增加了对 QLoRA + DeepSpeed Zero3 和 QLoRA + FSDP 的支持,允许训练非常大的模型。同时支持了新模型,如 Qwen2、Qwen2-MoE、Starcoder2、Gemma 等。
- 性能提升和模型发布:发布了多个性能提升的代码 LLM 模型,如 CodeFuse-DeepSeek-33B、CodeFuse-CodeLlama-34B、CodeFuse-StarCoder2-15B 等,并在 HumanEval 基准测试中取得了优异的成绩。
MFTCoder 项目的每一次更新都旨在提升模型的性能和微调的效率,为开源社区提供了强大的工具来推进大型语言模型在代码任务上的应用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考