2023 年可以称得上是大模型元年,在过去的这一年里,大模型领域飞速发展,新的大模型纷纷涌现,基于大模型的新产品也吸引着大家的眼球,未来,这个领域又会给大家带来多少惊喜?
蚂蚁也推出了自己的百灵代码大模型 CodeFuse,经历近半年内部打磨后,在 9 月正式对外开源。下面就让我们来看一下,在过去的半年里,CodeFuse 在开源方面取得了哪些进展?
在大模型落地到多个场景的过程中,代码自动生成,成为技术实现的必要环节。在这一趋势下,蚂蚁集团基于百灵大模型,推出了蚂蚁百灵研发助手,帮助开发者自动生成代码、注释、测试用例等,提高研发效率。
CodeFuse 源于蚂蚁自身的开发场景及代码库沉淀,基于海量高质量代码数据和代码领域特色词表,和多任务微调技术 MFT,在蚂蚁一万多内部研发人员的日常编码、测试、运维等场景中,经过反复验证与迭代。当前,CodeFuse 从研发效能、DevOps 衍生到了企业IT智能化场景智能体的探索。同时,基于 CodeFuse,蚂蚁集团打造了代码大模型的完整工具链,包括:模型服务、风险防护、数据质量、平台工程。
2023 年中,CodeFuse 及其必要的工具链,面向技术社区开源开放,帮助社区开发人员在此之上作研究、评价和二次开发和训练。
目前,CodeFuse 在蚂蚁各部门落地支持 40 多种编程语言,10 多个主流 IDE 平台。整体采纳率30%,代码通过 AI 占比 20%。比如,CodeFuse 在蚂蚁数字科技的 SOFAStack 云原生应用智能商业产品线全面融合,涵盖设计、研发、测试、运维等领域,形成从领域建模到智能运维端到端 Copilot 产品解决方案,提升了企业级应用的交付效率和质量,加速行业数字化降本增效。
CodeFuse 的使命是开发专门设计用于支持整个软件开发生命周期的大型代码语言模型(Code LLMs),当前内容涵盖代码、运维、分析、测试、推理、评价六大方向。截止 2023.12.31,CodeFuse 已累计开源了 11 个代码仓库、4 个数据集、11 个大模型参数文件,总计关注/点赞数超过3000、下载量超过 2.4 万,并有 1 篇论文已被接收,2 篇预影印在 Arxiv 上。
国际首个高精度、高效率、多任务、多模型支持、多训练算法,大模型代码能力微调框架;多任务微调的技术细节已在 Arxiv 公布,可参考MFTCoder论文,以及此前发布的文章
预训练语言模型可以在大量的文本数据上学习通用的语言模式和结构。通过运用无监督学习技术,模型可以基于前面的词序列来预测句子中的下一个词。然而,仅仅进行预训练并不能在特定的自然语言处理任务上取得高性能。因此,需要在特定任务的小型数据集上对预训练模型进行微调,以学习任务特定的特征并提高性能。微调过程使用监督学习技术将预训练模型适应到特定的任务上。将训练过程分为预训练和微调两个阶段,可以使自然语言处理模型充分发挥无监督学习和有监督学习的优势。
但是,需要注意的是,当模型的参数量巨大时,为每一个下游任务独立进行微调并部署将需要大量的资源。然而,是否存在一种方法可以让一个模型同时支持所有的下游任务呢?答案是肯定的,多任务微调(multitask fine-tuning,MFT)为解决这个问题提供了一种有效的途径。
多任务微调不仅能够节省资源,还能够带来其他优势。通过联合训练,模型可以学习到多个任务之间的特征和规律。相比于针对每一个任务单独进行微调,多任务微调能够更好地完成各种任务。同时,由于学习到的特征和规律是相互联系的,模型的泛化能力也会得到提高。这意味着,即使在面对未见过的任务时,模型也能够表现出色,因为它已经学习到了许多相关任务的特征和规律。
业界首个开源的中文开发运维大模型,能够帮助工程师回答在 DevOps 生命周期中遇到的问题,并提供通过检索增强生成、工具学习和沙盒环境来构建软件开发全生命周期的 AI智能助手;详细介绍可以参看此前文章 DevOps-Eval、DevOps-Model、DevOps-Chatbot
我们希望用户逐渐从各处资料查询、独立分散平台操作的传统开发运维模式转变到大模型问答的智能化开发运维模式,改变人们的开发运维习惯。
核心差异技术、功能点:
依托于开源的 LLM 与 Embedding 模型,可实现基于开源模型的离线私有部署,此外,也支持 OpenAI API 的调用。
基于查询的代码分析引擎,适合大规模、复杂的代码库分析场景。可参考论文 https://arxiv.org/abs/2401.01571;详细介绍可以参看此前文章
CodeFuse-Query 的特点和优势可以概括为以下几点:
测试领域的“智能体”,打造创新的测试领域解决方案,构建24小时在线的测试助理服务;详细介绍可以参看此前文章
大模型的号角已经吹响,测试领域大模型也在不断进化中,通过预训练过程中积累的丰富世界知识,在复杂交互环境中展现出了非凡的推理与决策能力。
尽管在测试领域中,基础模型取得了显著的成果,但仍然存在一些局限性,特定领域的测试任务通常需要专业化的工具或领域知识来解决。例如,基础模型可以通过预训练知识完成单次测试代码生成和测试文本生成等任务,但处理复杂的集成用例生成、特定领域用例生成和测试流程 pipeline 交互等问题时,需要更专业的工具和领域知识。
因此将专用工具与基础模型整合在一起,可以充分发挥它们各自的优势。专用工具可以解决模型时效性不足、增强专业知识、提高可解释性和鲁棒性的问题。而基础模型则具备类人的推理规划能力,可以理解复杂的数据和场景,并与现实世界进行交互。
大模型语义缓存系统,通过缓存已生成的模型结果,降低类似请求的响应时间,提升用户体验;详细介绍可以参看此前文章。
当前大模型服务面临以下三个挑战:
针对上述挑战,引入大模型缓存可以解决当前问题:通过引入 Cache 机制,缓存已计算的结果,当接收到类似请求,可以直接从缓存获取结果,避免重复计算,节约计算资源,显著提升响应时间,提升用户体验;同时,缓存可以起到分流的作用,降低透传到后端的请求量,降低后端压力,提升服务稳定性。因此,Cache 作为一种重要的大模型服务部署解决方案,在资源有限和对实时性要求较高的场景下,可以帮助企业和研究机构更好地应用大型语言模型,提升模型性能和效率。未来,随着大型模型在各个领域的广泛应用,Cache 的重要性将不断凸显。
在 HumanEval-x、MBPP 的基准上开发的编程领域多任务的评测基准, 可用于评估大模型在代码补全,自然语言生成代码,测试用例生成、跨语言代码翻译、中文指令生成代码等多类任务的性能;详细介绍可以参看此前文章。
目前对于大语言模型评估的按照生成的结果是否可定量衡量比如数学计算和文章生成分为客观评测和主观评测。客观评测:基于业界影响力较高评测基准对生成内容进行各维度评估;主观评测:组织多位有专业背景知识的专家进行相关维度评估。
按照评测执行方式可分为自动化评测,人工评测和模型评测三类。
模型训练完成后,基于评估基准跑出评分,这个过程可以完全工程化的执行因此成为自动化评测。人工评测特别是领域知识需要着急各领域专家进行测评,此种方式评估成本较高但是评估结果更具有说服力。模型(如PandaLM)评测模型即通过训练大模型学习到人类对不同生成文本的总体偏好,并作出基于习得的人类偏好的相对评价,这种评价方式相比人工更稳定、高效。
我们深知,开源不只是开放代码,还包括在社区的分享与交流。在开源内容上干货满满,社区活动定也不落下风,让我们看看都有哪些吧!!
8 月,我们在 AI+ 软件研发数字峰会上进行了专场分享《基于 AIGC 的测试生成》;
9 月,外滩大会上正式对外宣布 CodeFuse 开源;
10 月,在 MLSummit 2023 上,对外分享了 CodeFuse 研发经验;
11 月初,在云栖大会上进行 CodeFuse 专题演讲;
11 月,和始智AI等联合举办了“代码大模型技术与应用发展”论坛;
12 月初,在 CCF 中国软件大会上,与参会者现场体验、互动交流;
12月末,在全球软件开发者大会QCon上经验分享《基于 CodeFuse 的下一代研发探索》。
今年,CodeFuse 还获得了多个奖项,感谢业界的认可:
2023年以来,大模型在代码领域落地不断深入。经过一年的实践,我们对相关的技术也有了更深层次的理解与认识。也看到了很多有趣的方向与落地实践。在 2024 新的一年里,我们还会继续深耕开源:
非常欢迎大家能够跟我们一起交流探索,一起来定义下一代基于大模型的全生命周期研发解决方案。欢迎大家参与到我们社区中,一起探讨、交流。 2024,一起向未来!
CodeFuse官网:https://codefuse.alipay.com