[中文] [English]
🔥🔥 [2023/11/07] MFTCoder论文在Arxiv公布,介绍了多任务微调的技术细节。
🔥🔥 [2023/10/20] 开源了CodeFuse-QWen-14B模型,在HumanEval pass@1(greedy decoding)上可以达到48.8%。相比较与基座模型Qwen-14b提升16%。感兴趣详见微信公众号CodeFuse文章
🔥🔥 [2023/09/27] 开源了CodeFuse-StarCoder-15B模型,在HumanEval pass@1(greedy decoding)上可以达到54.9%。
🔥🔥🔥 [2023/09/26] CodeFuse-CodeLlama-34B-4bits量化版本发布,量化后模型在HumanEval pass@1指标为73.8% (贪婪解码)。
🔥🔥🔥 [2023/09/07]MFTCoder微调的模型CodeFuse-CodeLlama-34B在HumanEval Benchmarks的Python Pass@1 取得了74.4%(greedy decoding)的开源SOTA成绩。
🔥 [2023/08/26]MFTCoder支持使用LoRA/QLoRA对Code Llama、Llama、Llama2、StarCoder、ChatGLM2、CodeGeeX2、Qwen和GPT-NeoX模型进行微调。
| 模型 | HumanEval(Pass@1) | 日期 |
|---|---|---|
| CodeFuse-CodeLlama-34B | 74.4% | 2023/09 |
| CodeFuse-CodeLlama-34B-4bits | 73.8% | 2023/09 |
| WizardCoder-Python-34B-V1.0 | 73.2% | 2023/08 |
| GPT-4(zero-shot) | 67.0% | 2023/03 |
| PanGu-Coder2 15B | 61.6% | 2023/08 |
| CodeFuse-StarCoder-15B | 54.9% | 2023/08 |
| CodeLlama-34b-Python | 53.7% | 2023/08 |
| CodeFuse-QWen-14B | 48.8% | 2023/10 |
| CodeLlama-34b | 48.8% | 2023/08 |
| GPT-3.5(zero-shot) | 48.1% | 2022/11 |
| OctoCoder | 46.2% | 2023/08 |
| StarCoder-15B | 33.6% | 2023/05 |
| QWen-14B | 32.3% | 2023/10 |
🔥 CodeFuse-MFTCoder提升CodeGeeX2-6B代码能力
🔥 CodeFuse-MFTCoder提升Qwen-14B代码能力
国际首个高精度、高效率、多任务、多模型支持、多训练算法,大模型代码能力微调框架;
Codefuse-MFTCoder 是一个开源的多任务代码大语言模型项目,包含代码大模型的模型、数据、训练等。我们希望通过开源,分享交流大语言模型在代码领域的进步。
✅ 多任务:一个模型同时支持多个任务,会保证多个任务之间的平衡,甚至可以泛化到新的没有见过的任务上去;
✅ 多模型:支持最新的多个开源模型,包括gpt-neox,llama,llama-2,baichuan,Qwen,chatglm2等;
✅ 多框架:同时支持HuggingFace 和 ATorch 框架;
✅ 高效微调:支持LoRA和QLoRA,可以用很少的资源去微调很大的模型,且训练速度能满足几乎所有微调场景;
本项目主要内容如下:
- 同时支持单任务SFT(Supervised FineTuning)和MFT(Multi-task FineTuning), 当前开源支持数据均衡,未来将持续开源难易均衡, 收敛均衡等
- 支持QLoRA低成本高效指令微调、LoRA高效指令微调。
- 支持绝大部分主流的开源大模型,重点关注代码能力优秀的开源大模型,如Qwen, GPT-Neox, Starcoder, Codegeex2, Code-LLaMA等。
- 支持lora与base model进行权重合并,推理更便捷。
- 整理并开源2个指令微调数据集:Evol-instruction-66k和CodeExercise-Python-27k。
- 开源2个[Codefuse系列指令微调模型权重]:CodeFuse-13B和CodeFuse-CodeLlama-34B。
首先, 你需要将CUDA(>=11.4, 推荐11.7)及其相关驱动安装成功,并确保其工作正常, 并且安装基本的torch(>=2.0.0) 在requirements.txt下固定了几个主要的python包的版本,执行如下脚本即可:
sh init_env.sh如果希望使用flash attention, 安装请参考 https://github.com/Dao-AILab/flash-attention
🚀 Huggingface accelerate + deepspeed Codebase for MFT(Multi-task Finetuning)
🚀 Atorch Codebase for MFT(Multi-task Finetuning)
使用本项目的训练代码,以及上述训练数据,我们训练并在huggingface开源了以下模型。
| 模型 | 基座模型 | 训练数据 | Batch Size | Seq Length |
|---|---|---|---|---|
| 🔥🔥🔥 CodeFuse-CodeLlama-34B | CodeLlama-34b-Python | 60万 | 80 | 4096 |
| 🔥🔥🔥 CodeFuse-CodeLlama-34B-4bits | CodeLlama-34b-Python | 4096 | ||
| 🔥🔥🔥 CodeFuse-StarCoder-15B | CodeLlama-34b-Python | 60万 | 80 | 4096 |
| 🔥🔥🔥 CodeFuse-QWen-14B | Qwen-14b | 110万 | 256 | 4096 |
| 🔥 CodeFuse-13B | CodeFuse-13B-Base | 6.6万 | 64 | 4096 |
目前本项目主要整理了如下指令数据集,并将其整理成统一的数据格式,这两个指令微调数据集是我们多任务训练中数十个任务中的2个,未来我们会陆续开源更多的代码任务指令微调数据集:
| 数据集 | 介绍 |
|---|---|
| ⭐ Evol-instruction-66k | 基于开源open-evol-instruction-80k过滤低质量,重复和human eval相似的数据后得到的高质量代码类微调数据 |
| ⭐ CodeExercise-Python-27k | 基于chatgpt生成的高质量python练习题数据 |
如果你觉得我们的工作对你有帮助,请引用我们的论文
@article{mftcoder2023,
title={MFTCoder: Boosting Code LLMs with Multitask Fine-Tuning},
author={Bingchang Liu and Chaoyu Chen and Cong Liao and Zi Gong and Huan Wang and Zhichao Lei and Ming Liang and Dajun Chen and Min Shen and Hailian Zhou and Hang Yu and Jianguo Li},
year={2023},
journal={arXiv preprint arXiv},
archivePrefix={arXiv},
eprint={2311.02303}
}

