CodeFuse发布34B-4bit单卡4090可部署模型

简介: CodeFuse 是蚂蚁集团自研的代码生成专属大模型,可以根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释、自动生成测试用例、修复和优化代码等,以提升研发效率。

Hello world, this is CodeFuse!


2023 年 9 月 8 日下午,在上海举行的“2023 inclusion·外滩大会--云端 Al:探索新兴技术和发展模式”论坛上,蚂蚁集团首次开源了代码大模型 CodeFuse。这是蚂蚁自研的代码生成专属大模型,根据开发者的输入,帮助开发者自动生成代码、自动增加注释、自动生成测试用例、修复和优化代码等,以提升研发效率。无论用户是初学者还是有经验的开发者,CodeFuse 都能够极大地提高编程效率和准确性。


CodeFuse 的目的是重新定义下一代AI研发,提供全生命周期AI辅助工具。蚂蚁集团期望通过开源 CodeFuse,和社区一起推进软件工程领域的范式跃迁,重塑软件研发的各个领域,加速各行各业的数字化进程。


CodeFuse 基于蚂蚁基础大模型平台研发,在近期代码补全的 HumanEval 评测中,其得分达到74.4%,超过了 GPT-4 (67%)的成绩,也超过了 WizardCoder-34B 73.2% 的得分,在开源模型中位于国际前列。本次开源内容包括代码框架、数据集和模型三大部分。


代码仓库现已上架 GitHub 平台 ,数据和模型已上架 HuggingFace 平台和国内的魔搭社区。


GitHub 地址:https://github.com/codefuse-ai

HuggingFace 地址:https://huggingface.co/codefuse-ai

魔搭社区地址:https://modelscope.cn/organization/codefuse-ai


特别的,我们开源了一套多任务微调框架 MFTCoder (https://github.com/codefuse-ai/MFTCoder),支持当前众多主流大模型并支持 Lora 与 QLora 高效微调,欢迎大家试用在私有数据上打造自己的专属代码大模型,并请给我们的项目一键三连支持 Star + Fork + Watch


首先我们来看一下,CodeFuse 能做什么。



01  贪吃蛇游戏生成



早在 2022 年 1 月,蚂蚁集团内部开启了代码智能相关探索。随着公司整体战略的推进,在统一软硬件基础设施支持下,2023 年从 0 到 1 训练了多个代码大模型,打造了 CodeFuse。基于 CodeFuse 的应用场景有开 IDE 插件、发助手、代码分析器等,覆盖了目前研发工作的主要需求,并在蚂蚁集团内部研发流程中陆续得到验证。


接下来,给大家演示一下,基于蚂蚁开源模型 CodeFuse-CodeLlaMa34B,利用 HTML 和 JavaScript 在线制作贪吃蛇小游戏的场景。


点击查看:https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/432865958134.mp4

00:51

02  多任务微调框架 MFTCoder



整个 CodeFuse 框架如下图所示,大致分为底层的分布式训练、中间层的指令微调框架,和顶层的多模型应用支持。


在底层,CodeFuse 支持 DeepSpeed 和蚂蚁自研的 ATorch 两种分布式训练框架。

ATorch 开源地址:https://github.com/intelligent-machine-learning/dlrover/tree/master/atorch


在中间层,CodeFuse 包含了自研的多任务微调(Multi-task fine-tuning,缩写为MFT)框架。MFT 支持代码生成、代码翻译、测试用例生成、bug 修复等数 10 个任务一起微调,它充分利用多任务之间的信息互补,通过创新的 loss 设计处理不同任务之间收敛难易不均衡的难题,最终取得比单任务微调 SFT 更好的效果。MFT 框架最大的特色是,同时支持多任务、多框架,以及多种类型的损失函数:

  • ✅ 多任务:一个模型同时支持多个任务,会保证多个任务之间的平衡,甚至可以泛化到新的没有见过的任务上去;
  • ✅ 多框架:同时支持 HuggingFace 和 ATorch 框架两个训练框架;
  • ✅ 高效微调:支持 LoRA 和 QLoRA,可以用很少的资源去微调很大的模型,且训练速度能满足几乎所有微调场景;
  • ✅ 多损失函数:支持数据集大小平衡,任务难度平衡,收敛速度不一平衡,和语义强调等多种不同损失函数。


在顶层,CodeFuse 支持最新的多个开源模型,包括 LlaMA,LlaMa-2,StarCoder,Baichuan,Qwen,Chatglm2,GPT-neox 等。CodeFuse 已经开源了多任务微调框架 MFTCoder。

关于多任务难度或者收敛不一致问题,这里给大家展示一个对比的例子。在三个任务(code completion,code explain,text2sql)的微调训练中,添加收敛均衡和不添加收敛均衡以后,validation loss 的收敛状况:可以看到没有添加收敛均衡的时候,三个任务收敛的速度各不相同,code completion 还没有收敛,剩下两个任务已经发散了;然而在加了收敛均衡的限制以后,我们可以明确的看到三个任务的收敛速度一致。

截屏2023-10-19 13.57.29.png

截屏2023-10-19 13.57.38.png



03  优秀的多任务微调能力



下面,我们直接给出基于 MFTCoder,给多个开源模型微调代码能力,在 HumanEval 的 Python 补全上的结果。


表1:MFTCoder 多模型微调结果对比基于 HumanEval Python pass@1 score

模型
发布时间
原始模型
CodeFuse
MFT微调
Baichuan-13B
2023/07
12.0%
21.95%
Qwen-7B (v1)
2023/08
23.8%
32.93%
LlaMA-65B
2023/02
23.17%
34.76%
LLaMA2-70B
2023/07
31.71%
40.23%
StarCoder-15B
2023/05
33.2%
54.9%
CodeLLaMA-34B-Python
2023/08
53.7%
74.4%
WizardCoder-Python-34B
2023/09
73.2%
NA
GPT-4(23年3月)
2023/03
2022/11
NA
PanGu-Coder2 15B
2023/08
61.6%
NA
GPT-3.5(zero-shot)
2022/11
48.1%
NA
OctoCoder
2023/08
46.2%
NA


可以看到,MFT 在各种底座上对于 Python Pass@1 就可以带来带来 10% 左右的提升。在 StarCoder 和 CodeLLama 上的增益更多。作为对比,已经公开的 HumanEval 榜单中目前排名前列的模型,我们也灰底展示在表格下方。


MFT 微调的 CodeLLaMA-34B,在 HumanEval 上取得了 74.4% 的结果(和 CodeLLaMA 一样,基于 greedy generation 模式评测),该结果超过了 GPT-4 (67%) 的成绩,也超过了 WizardCoder-34B 73.2% 的得分,在开源模型中位于国际前列。



04  4bit 量化部署



CodeFuse-CodeLLama-34B模型表现十分显著,但是34B的模型大小,在FP16和INT8精度下,至少需要一张A100或者4张A10做最小配置部署。如此高的部署资源要求,让个人/普通用户望而却步,即便大公司的大规模部署也比较吃资源。


针对此,我们借助量化技术对原模型进行了INT4量化,量化后模型占用显存大小显著减小:64.9G减到19G)。这样一张A10或者4090 (24GB显存)即可部署。速度方面,实测发现A10上的INT4优化后的推理速度,已经和A100上FP16推理速度持平。量化部署,可以使用GPTQ或者Nvidia TensorRT-LLM early access版本。


我们评测了量化前后模型能力的差异,其中关键评测HumanEval指标上是73.8%,下降小于1%;NLP任务中文语言理解CMNLI/C-Eval评测得分下降也控制1%左右。




此外,我们测量了模型加载后占用的显存占用情况,以及输入2048/1024 tokens并输出1024/2048 tokens时的显存使用情况,如下表所示。可以看到,在A10上,4bit量化支持总长为3K长度的输入和输出是没有问题的。


我们已经在Huggingface、ModelScope、Wisemodel等源发布该量化版本,欢迎大家试用!




05  总结和展望


这里我们介绍了 CodeFuse 整体开源相关的信息,并介绍了一下其中的 MFT 框架。大家有兴趣的话可以去 ModelScope 魔搭社区注册在线体验 CodeFuse-CodeLlama-34B 的效果。
地址:https://modelscope.cn/organization/codefuse-ai


未来我们将贡献更多技术到 CodeFuse 开源社区,也期待有兴趣的同行一起参与进来,给 CodeFuse 开源增砖添瓦。


目录
相关文章
|
3天前
|
存储 缓存 算法
使用Mixtral-offloading在消费级硬件上运行Mixtral-8x7B
Mixtral-8x7B是最好的开放大型语言模型(LLM)之一,但它是一个具有46.7B参数的庞大模型。即使量化为4位,该模型也无法在消费级GPU上完全加载(例如,24 GB VRAM是不够的)。
124 4
|
8月前
|
异构计算
单卡可推理CodeFuse-CodeLlama-34B 4bits量化版本魔搭开源!
继2023-09-11 CodeFuse-CodeLlama-34B发布,HumanEval pass@1指标达到74.4% (贪婪解码), 为当前开源SOTA。最近,CodeFuse-CodeLlama-34B 4bits量化版本发布,CodeFuse-CodeLlama-34B-4bits是CodeFuse-CodeLlama-34B模型的4bits量化版本,后者是通过QLoRA对基座模型CodeLlama-34b-Python进行多代码任务微调而得到的代码大模型,模型输入长度为4K。
|
PyTorch Go 算法框架/工具
YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结
【YOLOv8 注意事项】 1. YOLOv8 的官方仓库和代码已上线,文档教程网址也刚刚更新。 2. YOLOv8 代码集成在 ultralytics 项目中,目前看不会再单独创建叫做 YOLOv8 的项目。 3. YOLOv8 即将有论文了!要知道 YOLOv5 自从 2020 年发布以来,一直是没有论文的。而 YOLOv8(YOLOv5团队)这次首次承认将先发布 arXiv 版本的论文(目前还在火速撰写中)。
1382 0
YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结
|
3天前
|
机器学习/深度学习 人工智能 物联网
加速扩散模型,最快1步生成SOTA级图片,字节Hyper-SD开源了
【5月更文挑战第9天】字节跳动研究团队推出Hyper-SD框架,实现快速图像生成,仅需1步即可达SOTA水平。该框架采用TSCD技术减少误差,整合ReFL优化加速模型,提高图像质量。在1步推理时,Hyper-SDXL在CLIP和Aes Score上超越SDXL-Lightning。开源LoRA插件促进社区发展,但可能牺牲部分模型通用性,未来仍需关注用户需求多样性。[论文链接](https://arxiv.org/abs/2404.13686)
13 1
社区供稿 | XTuner发布LLaVA-Llama-3-8B,支持单卡推理,评测和微调
日前,XTuner 团队基于 meta 最新发布的 Llama-3-8B-Instruct 模型训练并发布了最新版多模态大模型 LLaVA-Llama-3-8B, 在多个评测数据集上取得显著提升。
|
3天前
|
机器学习/深度学习 存储 算法
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
YOLO落地部署 | 让YOLO5和YOLO7等方法都可以用上4-bit/3-bit的超快部署方案
68 0
|
3天前
|
运维 自然语言处理 算法
使用NVIDIA TensorRT-LLM支持CodeFuse-CodeLlama-34B上的int4量化和推理优化实践
CodeFuse是由蚂蚁集团开发的代码语言大模型,旨在支持整个软件开发生命周期,涵盖设计、需求、编码、测试、部署、运维等关键阶段。为了在下游任务上获得更好的精度,CodeFuse 提出了多任务微调框架(MFTCoder),能够解决数据不平衡和不同收敛速度的问题。通过对比多个预训练基座模型的精度表现,我们发现利用 MFTCoder 微调后的模型显著优于原始基座模型。其中,尤为值得关注的是采用了 MFTCoder 框架,并利用多任务数据集进行微调的 CodeFuse-CodeLlama-34B模型,在HumanEval 评估数据集中取得了当时的最好结果。
121 0
使用NVIDIA TensorRT-LLM支持CodeFuse-CodeLlama-34B上的int4量化和推理优化实践
|
3天前
|
自然语言处理 JavaScript 前端开发
MFTCoder 重磅升级 v0.3.0 发布,支持 Mixtral 等更多模型,支持收敛均衡,支持 FSDP
今天,我们对MFTCoder进行重磅升级,比如对Mixtral这个开源MoE的SOTA的多任务微调的支持;再比如我们提供了之前论文中提到的收敛均衡技术:Self-Paced Loss。 MFTCoder已适配支持了更多的主流开源LLMs,如Mixtral、Mistral、Deepseek、 Llama、CodeLlama、Qwen、CodeGeeX2、StarCoder、Baichuan2、ChatGLM2/3、GPT-Neox等。以Deepseek-coder-33b-base为底座,使用MFTCoder微调得到的CodeFuse-Deepseek-33B在HumaneEval测试中pass
69 0
|
9月前
|
机器学习/深度学习 人工智能 运维
阿里云率先支持Llama2全系列训练部署!
阿里云率先支持Llama2全系列训练部署!
445 0
|
3天前
|
人工智能 自然语言处理 测试技术
通过 4-bit 量化加载和运行 Mistral 7B AI
通过 4-bit 量化加载和运行 Mistral 7B AI
604 0