在这里插入图片描述

1. 简介

CodeFuse 是一款为国内开发者提供智能研发服务的产品,该产品是基于蚂蚁集团自研的基础大模型进行微调的代码大模型,旨在辅助开发者提高编码效率和代码质量。它提供了多项功能,包括辅助编码、代码优化和生成单测。通过海量数据提供实时的代码补全服务,包括行内补全和片段补全,并支持解释代码、生成注释等功能,帮助开发者快速完成功能研发,提高研发效率。此外,CodeFuse 还能对选定的代码段进行分析理解,提出优化和改进建议,并能直接基于改进建议形成代码补丁,帮助开发者写出更好的代码。另外,在写完业务逻辑后,只需选中代码选择生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率,方便快捷。

CodeFuse 的核心功能包括辅助编码、代码优化和生成单测。在辅助编码方面,它基于海量数据提供实时地代码补全服务,包括行内补全和片段补全。同时支持解释代码、生成注释等功能,帮助开发者快速完成功能研发,提高研发效率。在代码优化方面,它基于大模型代码理解能力和静态源码分析能力,对选定代码段进行分析理解,提出优化和改进建议。还能直接基于改进建议形成代码补丁,帮助开发者写出更好的代码。在生成单测方面,只需选中代码选择生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率,方便快捷。

2.功能特性

CodeFuse 提供多个 IDE 插件版,支持在 10 款 IDE 中使用,包括支付宝小程序云云端研发、Visual Studio Code,以及 JetBrains 系列的 IntelliJ IDEA、PyCharm、WebStorm、GoLand、CLion、DataGrip、PhpStorm 和 RubyMine。此外,CodeFuse 支持 40 多种编程语言,包括 C++、Java、Python、JavaScript 等,目前 CodeFuse 针对 Java 与 Python 的代码生成质量较高。CodeFuse 支持的功能如下表。

  • 代码补全: 基于海量数据提供实时地代码补全服务,包括行内补全(单行补全)和片段补全(多行补全)。
  • 添加注释:智能为选定的代码生成注释,目前在整个函数级别的生成注释效果较好。
  • 解释代码:智能解析代码意图,为选定的代码生成解释,辅助阅读并理解代码。
  • 生成单测:在写完业务逻辑后,为选定的代码生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率。
  • 代码优化:基于大模型的代码理解能力和静态源码分析能力,CodeFuse 支持对选定的代码片段进行分析理解并提出优化、改进建议,还能直接基于改进建议生成代码补丁。

2. 核心功能

2.1 辅助编码

基于海量数据提供实时地代码补全服务,包括行内补全和片段补全。同时支持解释代码、生成注释等功能,帮助开发者快速完成功能研发,提高研发效率。
在这里插入图片描述

2.2 代码优化

基于大模型代码理解能力和静态源码分析能力,对选定代码段进行分析理解,提出优化和改进建议。还能直接基于改进建议形成代码补丁,帮助开发者写出更好的代码。
在这里插入图片描述

2.3 生成单测

在写完业务逻辑后,只需选中代码选择生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率,方便快捷。
在这里插入图片描述

3. 产品优势

3.1 支持多语言多平台

  • CodeFuse 提供了对多种集成开发环境的支持,包括但不限于:Visual Studio Code,IntelliJ IDEA,Eclipse,PyCharm,Sublime,TextAtom。这些IDE中的开发者可以通过安装 CodeFuse 插件来快速接入 CodeFuse 的功能,实现更高效的编码和代码理解。
    在这里插入图片描述

  • CodeFuse 支持多种编程语言,包括但不限于:Python,Java,C/C++,JavaScript,TypeScript,Go,Ruby,Swift,Kotlin,PHP。对于这些编程语言,CodeFuse能够提供代码补全、代码优化、测试用例生成等功能,帮助开发者更高效地进行编码和代码理解工作。
    在这里插入图片描述

3.2 代码领域大模型

蚂蚁自研的代码生成专属大模型,根据开发者的输入提供智能建议和实时支持,帮助开发者自动生成代码、自动增加注释,自动生成测试用例,修复和优化代码等,以提升研发效率。目前模型支持:CodeFuse-13B,CodeFuse-QWen-14B,CodeFuse-CodeLlama-34B-4bits,CodeFuse-StarCoder-15B,CodeFuse-Test-7B。

无论用户是初学者还是有经验的开发者,CodeFuse都能够极大地提高编程效率和准确性,让人人可编程、可创新成为现实。代码框架部分包括自研的多任务微调(Multi-task fine-tuning,缩写为MFT)框架。MFT支持代码生成、代码翻译、测试用例生成、bug修复等数10个任务一起微调,它充分利用多任务之间的信息互补,通过创新的loss设计处理不同任务之间收敛难易不均衡的难题,最终取得比单任务微调SFT更好的效果。MFT微调框架支持蚂蚁自研模型,以及多个开源大模型的代码能力微调。同时,框架内含创新的微调数据打包技术,提升微调速度约8倍;并使用多重部署优化技术,使推理加速约2倍。

3.3 高性能、多任务代码大模型项目

涵盖代码大模型的模型、数据、训练等,主要特点是支持多任务、多模型、多框架。支持LoRA和QLoRA,可以用很少的资源去微调很大的模型,且训练速度能满足几乎所有微调场景。目前模型支持:MFTCoder,FasterTransformer4CodeFuse,codefuse-evaluation,codefuse-chatbot,codefuse-devops-eval,Test-Agent

img

3.4 高质量训练微调数据

这两份微调数据集可以显著提升大模型在代码领域的能力,通过微调数据集,可将开源大模型在HumanEval测评上的得分提升20%~30%。目前模型支持Evol-instruction-66k,CodeExercise-Python-27k

img

3.5 多任务评估基准

CodeFuseEval 在 HumanEval-x、MBPP 的基准上,结合 CodeFuse 大模型多任务场景,开发的编程领域多任务的评测基准, 可用于评估模型在代码补全、自然语言生成代码、测试用例生成、跨语言代码翻译、中文指令生成代码等多类任务的性能。

模型支持codefuse-evaluation

img

5. 底层原理

整个 CodeFuse 框架如下图所示,大致分为底层的分布式训练、中间层的指令微调框架,和顶层的多模型应用支持。在底层,CodeFuse 支持 DeepSpeed 和蚂蚁自研的 ATorch 两种分布式训练框架。在中间层,CodeFuse 包含了自研的多任务微调 (Multi-task fine-tuning,缩写为 MFT) 框架。MFT 支持代码生成、代码翻译、测试用例生成、bug 修复等数 10 个任务一起微调,它充分利用多任务之间的信息互补,通过创新的 loss 设计处理不同任务之间收敛难易不均衡的难题,最终取得比单任务微调 SFT 更好的效果。MFT 框架最大的特色是,同时支持多任务、多框架,以及多种类型的损失函数。在顶层,CodeFuse 支持最新的多个开源模型,包括 LlaMA,LlaMa-2,StarCoder,Baichuan,Qwen,Chatglm2,GPT-neox 等。CodeFuse 已经开源了多任务微调框架 MFTCoder。
在这里插入图片描述

CodeFuse 的工作原理主要包括以下几个方面:

5.1 大模型代码理解能力

CodeFuse 基于大型深度学习模型,通过对大量源代码的学习和训练,实现了强大的代码理解能力。这些模型能够理解代码的语法、语义、结构,并能够根据上下文提供智能的代码补全、代码优化、错误检测等功能。

5.2 静态源码分析能力

CodeFuse 利用静态源码分析技术,对代码进行语法分析、控制流分析、数据流分析等,以获取代码的结构和逻辑关系。这些分析能力为代码理解和代码优化提供了基础,也为后续的智能功能提供了数据支持。

5.3 多模型、多框架支持

CodeFuse 支持多种模型和框架,包括LoRA和QLoRA等。这些模型和框架能够用极少的资源对大型模型进行微调,并且训练速度能够满足几乎所有微调场景。同时,CodeFuse提供高质量的训练微调数据集,能够显著提升大型模型在代码领域的能力。

5.4 智能算法支持

CodeFuse 基于深度学习、自然语言处理和静态分析等技术,实现了智能的代码补全、代码优化、测试用例生成等功能。这些功能的实现依赖于先进的算法和模型,能够提高开发者的编码效率和代码质量。

CodeFuse 通过代码理解能力、静态源码分析能力、多模型、多框架支持和智能算法支持等方面的支持,实现了对代码的智能理解和支持。

6.申请使用

6.1 登录网址

CodeFuse网址为:codeFuse (alipay.com)
在这里插入图片描述

6.2 申请使用插件

在这里插入图片描述

7. Visual Studio Code 插件安装

CodeFuse 目前支持在 10 款 IDE 中安装,包括支付宝小程序云云端研发Visual Studio Code,以及 JetBrains 系列的 8 款 IDE,分别是 IntelliJ IDEA、PyCharm、WebStorm、GoLand、CLion、DataGrip、PhpStorm 和 RubyMine,方便开发者在自己熟悉的开发环境中使用 CodeFuse 的功能。目前 CodeFuse 插件在 IDEA 中仅支持下载插件安装包进行安装。完成安装后,您需要完成登录并签署服务协议,然后通过申请才能使用插件。以下基于Visual Studio Code的插件安装方法:

**注意事项:**目前仅支持在 VS Code 1.75.0 以上的版本中安装 CodeFuse 插件。

**环境准备:**安装 CodeFuse 插件之前,您需要下载并安装 Visual Studio Code

安装插件的步骤如下:

1.在 CodeFuse 官网,下载 Visual Studio Code 插件安装包
在这里插入图片描述

2.打开 VS Code,在编辑器左侧导航栏,单击 扩展 图标,再单击 更多设置 图标,选择 Install from VSIX…
在这里插入图片描述

3.选中下载的 CodeFuse-x.x.x.vsix 文件,单击 Install
在这里插入图片描述

4.选择插件,完成安装
在这里插入图片描述

5.点击登录,在弹窗中,单击 Open,然后使用支付宝登录 CodeFuse 官网并申请试用。
在这里插入图片描述

6.申请通过后,查看插件面板,如下图左侧所示即可开始使用。
在这里插入图片描述

除了上述提到的集成开发环境,CodeFuse 还支持其他开发环境的插件安装,具体安装方法可以参考 CodeFuse 官方文档或插件商店中的安装说明。

8. 代码实践

CodeFuse 提供了丰富的功能和工具,帮助开发者在实际的代码编写和优化过程中提高效率和质量。以下是几个常见的代码实践示例,演示了 CodeFuse 在代码理解、优化和测试方面的应用。

8.1 代码补全

在编写代码过程中,经常需要输入一些常见的代码片段、函数调用或变量名。CodeFuse 的代码补全功能可以根据当前上下文智能地推荐代码补全选项,帮助开发者快速完成代码编写。CodeFuse 插件基于海量数据提供实时地代码补全服务,提升编码效率。同时,插件还支持鼠标右键、快捷键和快捷指令等多种交互方式。例如,在 Python 中编写一个生成随机数据函数时,输入 import 后,CodeFuse 可能会智能地推荐 random库,通过Tab按键采纳代码建议;输入from 后,会自动加载datetime import date, timedelta ,从而加速代码编写过程;输入def后,代码自动补全get_random_date(start, end):
在这里插入图片描述

8.2 代码优化

CodeFuse 插件基于代码理解能力和静态源码分析能力,对选定代码段进行分析理解,提出优化和改进建议。还能直接基于改进建议生成优化后的代码,帮助开发者写出更好的代码。CodeFuse 的代码优化功能可以帮助开发者对代码进行性能优化、结构优化等。例如,在 Python中,CodeFuse 可能会识别出一些可以 进行简化的代码,然后智能地提供优化建议,帮助开发者改进代码结构和性能。
在这里插入图片描述

8.2 代码注释

通过智能分析,CodeFuse 可以准确解释代码含义、添加代码注释,CodeFuse 的代码注释功能可以帮助开发者对代码进行注释解释。例如,在Python中,选中代码块如下图,然后右键选中添加注释,稍后代码会自动为每行代码生成相应的注释,方便开发者快速完成对代码的注释。
在这里插入图片描述

8.3 代码解释

CodeFuse 的代码解释功能可以帮助开发者对代码进行功能解释。CodeFuse 插件的基于大量高质量的代码数据训练,无需脱离 IDE,即可直接使用智能问答功能,解答技术难题。让研发过程更加专注。用户可选择手动输入自然语言,或者通过 / 唤起快捷指令,快速提问例如,在Python中,选中代码块如下图,然后右键选中解释代码,在左侧边框中会自动添加选中代码块,然后调用CodeFuse后端能力,对选中代码进行整体解释,这个功能非常强大,非常适合新入手项目时,对代码的理解等。
在这里插入图片描述

8.3 测试用例生成

在进行代码测试时,编写测试用例是一个重要的工作。CodeFuse 的测试用例生成功能可以根据代码的逻辑和边界条件智能地生成测试用例,帮助开发者提高代码的测试覆盖率和质量。在写完业务逻辑后,只需选中代码选择生成单测,即可智能生成具备业务语义的测试用例,从而提升问题发现的效率,方便快捷。用户可通过鼠标右键、“/test”快捷指令或者自然输入等多种方式为选中代码生成单元测试。例如,在 Python中编写一个生成随机数据函数时,CodeFuse 可能会根据函数的输入输出智能地生成一系列测试用例,覆盖不同的排序情况。
在这里插入图片描述

以上是几个常见的代码实践示例,演示了 CodeFuse 在代码补全、代码注释、测试用例生成和代码解释等方面的应用。通过这些功能,CodeFuse 能够帮助开发者提高代码编写效率、质量和可维护性。

9. 小结

在本文中,我们介绍了 CodeFuse 工具及其在软件开发中的应用。首先,我们了解了 CodeFuse 的基本概念和特点,包括代码理解、代码优化、测试用例生成等功能。然后,我们介绍了 CodeFuse 在不同集成开发环境中的安装方法,包括Visual Studio 等。接着,我们演示了几个常见的代码实践示例,展示了 CodeFuse 在代码补全、优化、测试用例生成和重构方面的应用。

通过本文的介绍,我们可以看到 CodeFuse 在软件开发中的重要作用。它不仅可以帮助开发者提高代码编写效率,还可以帮助优化代码结构和性能,生成测试用例,进行代码重构等。这些功能都有助于提高软件开发的质量和效率,减少开发过程中的重复工作和错误。

CodeFuse 是一个强大的工具,可以为开发者提供丰富的功能和工具,帮助他们更好地进行软件开发。随着软件开发的不断发展,CodeFuse 也将不断完善和扩展其功能,为开发者提供更好的支持和帮助。希望本文对您了解 CodeFuse 工具及其在软件开发中的应用有所帮助,谢谢阅读!

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐