CodeFuse:让研发变得更简单
2023 年 9 月,蚂蚁集团首次开源了代码大模型 CodeFuse 。
CodeFuse 是蚂蚁自研的代码生成专属大模型,根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释、自动生成测试用例,以及修复和优化代码等。
“让研发变得更简单”,成为了当年百模大战中,CodeFuse 向市场提交的一份答卷。经过 1 年的不断努力,CodeFuse-DeepSeek-33b 模型在 Big Code 上以 43.58% WinRate 成为新晋榜首。
今天,我们有幸请到了蚂蚁集团高级算法专家 余航 ,就 CodeFuse 的创新架构、特色功能,以及未来发展,带大家一起去聊聊:LLM 接入后的“研发 2.0 ”时代。
CodeFuse 开源官网:https://codefuse.ai
以下为采访内容整理。
- 受访人:余航
- Title :蚂蚁集团高级算法专家
- 介绍:新加坡南洋理工大学博士,于 2020 年底加入蚂蚁集团。利用时序、图、NLP 算法助力技术风险领域智能化。2023 年开始从事 CodeFuse 代码大模型相关工作,负责底座模型建设。
架构先行:Rodimus 到底解决了什么?
时间回溯至去年百模大战的时候,市面上一众 LLM 虽说表现强劲,但对于国内广大厂商或开发者来说,其高昂的成本和相对低下的效率成为了“术”与“用”之间难以逾越的鸿沟。
蚂蚁意识到,若要在大模型领域真正实现广泛的应用,就必须找到一种创新的解决方法——“小 Size ,大 Prod. ”(小体量,大能量)迅速被提上日程。在 CodeFuse 内部,一个名为“ Rodimus ”的架构应运而生。
CodeFuse 开源网站
Rodimus 是一个怎样的架构呢?
在推理每个token的过程中,Rodimus 架构能够保持较低的常量内存占用,这意味着在处理代码生成等任务时,它可以更高效地利用硬件资源,从而在资源有限的设备上更流畅地运行。
其自回归的架构,相比传统的Transformer 和 Llama 架构,推理复杂度更低,但也可以适配并行训练。值得一提的是,1.6B 尺寸的 Rodimus 架构模型在性能上已超越同等大小的 Mamba2 和 Qwen2 等模型。
如此看来,CodeFuse 更像是基于自研 Rodimus,致力于让更多人、更多厂商都能用的端侧“小模型”,落地于程序员最常见的应用场景,更快响应代码需求,更优秀的编程辅助,让人人可编程、可创新成为现实。
特色功能:“图生代码”如何工作,以及它在实际应用中的表现如何?
“图生代码”功能是 CodeFuse 推出的一项新功能,旨在支持开发人员使用产品设计图一键生成代码,能够将网页、小程序、APP 的设计图片直接转化成相应的代码,大幅提升前端页面的开发效率。
余航介绍,通过不断的升级优化,目前“图生代码”对于单组件的代码输出,准确率已经超过 90% ,今年更是实现“整稿输出”功能,涵盖了从设计理念的理解、功能规划的代码实现,再到后端联测的完整工作流。
值得一提的是,“图生代码”功能自带大前端属性,能够输出适用于 PC 端和移动端的代码,适应了当下多终端设备的开发需求。
比如,在一个电商网站前端界面的开发中,对于商品展示组件的设计图,“图生代码”功能可以快速生成包括 HTML (超文本标记语言)用于构建页面结构、 CSS (层叠样式表)用于页面样式设计和 JavaScript (脚本语言)用于实际交互效果的代码,并且这些代码能够准确地还原设计图中的功能和样式需求。
由此可见,前端开发的未来式,一些基础固有组件几乎都可以交给 AI 来完成,解放开发者更多时间于创新功能与艺术交互之上,生产出更多跨时代意义的产品。
代码提质:策略、技术、场景
上面简述了 CodeFuse 的架构以及特色功能,溯源本真,它产出的代码质量如何?好用与否?
先讲策略,余航表示,CodeFuse 服务的对象大多是开发者、程序员,那么这就意味着:CodeFuse 必须要以“程序员的思维”去解决“程序员的问题”。
图源:网络
就拿解决“仓库级别代码任务”来说,常规的解决方法是利用 LLM 构建代码 Agent ,因为仓库级别任务的复杂性,Agent 不得不增加节点来完成输出任务,但节点一多,可能会导致输出结果失准,同时,节点过多,交互耗时也会变长。
对此,CodeFuse 引入了一个概念——“ Code Graph ”(代码图),通过学习程序分析构建的代码图,并对齐 Graph 和 Code 两个模态,使得 LLM 能够更好地捕捉仓库级结构和依赖关系,从而解决开发者的实际需求。
这不就是开发者思维吗?CodeFuse 旗下仓库级别代码理解模型 CGM 的工作原理正是如此。CGM 不仅可以端到端地将整个仓库输入进 LLM 中,方便 LLM 完成仓库级别的代码任务,并且,由于只关系到“输入”与“输出”两个环节,给出答案的时间也大大缩短。
除此之外,CodeFuse 在模型训练过程中,还使用了程序分析校验技术,对高质量代码数据进行筛选,并构建了代码领域专用字典,使得编码平均长度低 10%+。
“目前,在蚂蚁内部,最常用的功能依旧是代码生成,和写测试用例,但 CodeFuse 未来绝不单单只聚焦于这些,而是全生命周期的功能支持。”
码之艺术:全生命周期的研发支持
就实际工作场景而言,一个需求对应一个功能实现,意味着一份 PRD 文档,进入代码搭建,最后到产品上线、运维、迭代,未来的研发周期将被不断缩短。
而 CodeFuse 的剑锋所指,正是全生命周期的研发支持。
依托于 CodeFuse 的强大底座,已能在需求分析阶段为开发者提供智能辅助,帮助梳理项目脉络,进入研发阶段,无论是代码补全、代码生成,抑或是图生代码功能,均可大大减少开发者的重复劳动。
当产品上线后,CodeFuse 又可以实时监测系统运行状态,智能预警潜在风险,帮助跨仓业务的稳定运行,将运维工作交给 AI 来完成,真正实现全生命周期的无缝衔接与高效流转。
目前,在开源领域,CodeFuse 已取得了令人瞩目的成就,先后推出 MFTCoder 系列,DevOps 系列,CodeFuse-Query 代码分析引擎,Test-Agent 、CodeFuse IDE 等产品,此外还有超多数据集和模型,不仅为全球开发者提供了丰富的技术资源,更推动了整个行业的技术迭代和创新浪潮。
今年,CodeFuse 还将亮相于 12 月 28 日由开源中国( oschina.net )举办的 2024 源创会年终盛典,为广大开发者带来最新的开源技术、前沿的技术视角以及实战的落地经验,敬请期待!
关于大会:作为年度的压轴盛典,2024 源创会年终盛典将于 2024 年 12 月 28 日隆重举行。本届盛典以“AI 为伍,重启征程”为主题,邀请开源领域的顶尖专家、技术领袖和一线开发者齐聚一堂,共同回顾过去一年的辉煌成就,探讨未来技术发展的无限可能。
2024 源创会年终盛典报名通道现已开启,诚邀全球开源技术爱好者齐聚珠海共襄盛举。报名参会请点击:https://www.oschina.net/2024-zhuhai-ceremony/
扫码即可报名

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java程序中的潜在危机: 深入探讨NullPointerException|得物技术
一、前言 在Java语言的世界里,处理错误和异常是每位开发者必须面对的重要课题。其中,NullPointerException无疑是最常见且令人头痛的错误之一。它的出现往往让我们措手不及,同时大概率会导致程序行为异常。尽管从最早的版本这个异常就贯穿在我们的编码世界里,但它背后却隐藏着深刻的历史和设计哲学。 二、一则趣闻 在讨论今天的主题之前,让我们先介绍一位计算机科学界的杰出人物:Tony Hoare。他在业界享有极高的声誉,成就斐然,重要事迹和头衔足以让人顶礼膜拜: 发明了广为人知的快速排序算法 1980年荣获图灵奖 被选为美国国家工程院外籍院士、英国皇家工程院院士、牛津大学名誉教授 然而,Tony Hoare被大多数人所熟知的,还是他与空引用的故事。 1965年,Tony Hoare在设计ALGOL W 语言时,引入了空引用Null Reference这一概念。他认为,空引用可以方便地表示无值或未知值。其设计初衷是借助编译器的自动检测机制,确保所有引用的使用都是绝对安全的。此外,这种设计思路在实现上相对简单,大大减少了开发者的工作量。因此,受到Tony Hoare的影响,随后几十年...
- 下一篇
权威发布:OurBMC社区BMC方案在X86/C86平台落地
2024年12月,为更好满足国产化需求,OurBMC社区推出可在X86/C86平台落地的BMC方案。该方案支持X86/C86服务器搭载 基于飞腾腾珑E2000S的BMC使用,解决了显卡、PCIE等领域的关键技术难点,并在国内领先的某整机厂商的X86/C86服务器上得到了较大规模的落地应用。 BMC常见使用场景包括系统管理、状态监控、远程控制、故障诊断与恢复等,其中远程控制的iKVM功能,涉及显示模块的硬件控制器,位于BMC SoC上;而显示驱动等软件运行在服务器的Host端。Host端的CPU架构多样,导致开发者的适配调优工作异常繁重。本方案则直接给出了不区分CPU架构、跨平台自适应的功能模块,使得显示驱动自动兼容X86、C86、ARM等平台。本方案的成功落地一方面减少企业对多种BMC硬件的依赖,降低了运维和采购成本;另一方面,进一步促进国产化生态在高性能服务器市场中的渗透,为更多用户提供安全可靠的解决方案。 BMC显示功能典型场景 X86服务器搭载E2000S BMC的桌面显示 为了在X86/C86架构服务器上实现与ARM架构服务器相同的BMC使用体验,需要攻克以下技术难点: 1、重...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 2048小游戏-低调大师作品
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS关闭SELinux安全模块