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 开源增砖添瓦。


目录
相关文章
|
7月前
|
人工智能 算法 测试技术
从工具到搭档:深度拆解 Claude Code 的五大核心机制与实战心法
用了一段时间 Claude Code 之后,我越来越觉得它和传统的 AI 编程助手不是一个物种。大多数 AI 编程工具本质上是"补全器"——你写半行代码,它帮你续写后半行。而 Claude Code 更像是一个能理解整个项目的"系统级协作者",它拥有超过 200K token 的上下文窗口,意味着它可以一次性"阅读"你项目中成百上千个文件,真正理解代码之间的依赖关系。 这篇文章不是官方文档的翻译,而是我在实际使用过程中对其核心架构和最佳实践的理解与总结。
5241 1
|
8月前
|
人工智能 监控 API
Claude Code终于有仪表盘了:3条命令装个HUD,上下文用了多少一眼就知道
老金我最近用Claude Code,遇到一个特别烦的事。 写着写着,突然蹦出来一句"context window is getting full"。 然后AI就开始犯傻了——回答变短、逻辑变乱、之前说好的方案全忘了。 每次遇到这种情况,老金我都想骂人。 问题出在哪? Claude Code的终端界面,压根看不到上下文用了多少。 你只能输入 /context手动查,但谁写代码的时候
13253 10
|
异构计算
单卡可推理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。
|
Linux Python
bypy:使用Linux命令行上传及下载百度云盘文件(远程服务器大文件传输必备)
bypy:使用Linux命令行上传及下载百度云盘文件(远程服务器大文件传输必备)
bypy:使用Linux命令行上传及下载百度云盘文件(远程服务器大文件传输必备)
|
7月前
|
IDE 小程序 开发工具
HBuilderX 4.76安装教程 Windows版:解压+创建桌面快捷方式+启动验证指南
HBuilder X是DCloud推出的轻量级IDE,专注Web、小程序及uni-app跨平台开发,以极速性能、智能提示和护眼设计著称。本文详解4.76版下载、解压、创建快捷方式及验证安装全流程。
|
12月前
|
人工智能 IDE Java
AI Coding实践:CodeFuse + prompt 从系分到代码
在蚂蚁国际信贷业务系统建设过程中,技术团队始终面临双重考验:一方面需应对日益加速的需求迭代周期,满足严苛的代码质量规范与金融安全合规要求;另一方面,跨地域研发团队的协同效率与代码标准统一性,在传统开发模式下逐渐显现瓶颈。为突破效率制约、提升交付质量,我们积极探索人工智能辅助代码生成技术(AI Coding)的应用实践。本文基于蚂蚁国际信贷技术团队近期的实际项目经验,梳理AI辅助开发在金融级系统快速迭代场景中的实施要点并分享阶段性实践心得。
2372 25
AI Coding实践:CodeFuse + prompt 从系分到代码
|
11月前
|
人工智能 运维 监控
从代码到生产推理服务:DevPod 全流程部署 DeepSeek-OCR 模型实战指南
DevPod重塑AI开发范式,实现从云端开发、调试到生产部署的全流程闭环。依托预置环境与GPU资源,一键完成模型服务化,打通AI落地“最后一公里”,让开发者专注业务创新。
|
人工智能 监控 JavaScript
Playwright初学指南 (3):深入解析交互操作
本文深度解析Playwright如何通过智能等待、自动重试等机制解决Web自动化中60%的交互失败问题。从基础点击/输入到高级拖拽/iframe操作,提供企业级解决方案和性能优化技巧,帮助开发者实现98%的操作成功率,打造稳定高效的自动化测试体系。
|
IDE Linux 开发工具
2022.2最新idea破解,window,mac通用
1、安装IDEA,一路next即可,遇到安装路径时,记得修改安装路径。 2、安装完成,打开IDEA,会先弹出一个注册框,勾选Evaluate for free,点击Evaluate,然后进入主界面 3. 开始破解
17213 0
2022.2最新idea破解,window,mac通用