关于前端:昇思MindSpore全场景AI框架-16版本更高的开发效率更好地服务开发者

8次阅读

共计 7224 个字符,预计需要花费 19 分钟才能阅读完成。

全新的昇思 MindSpore 全场景 AI 框架 1.6 版本已公布,此版本中昇思 MindSpore 全场景 AI 框架易用性不断改进,晋升了开发效率,控制流性能晋升并反对副作用训练,与此同时,昇思 MindSpore 全场景 AI 框架公布高效易用的图学习框架昇思 MindSpore Graph Learning,高性能可扩大的强化学习计算框架昇思 MindSpore Reinforcement,提供反对第三方框架模型迁徙工具,让用户即时体验的开发套件昇思 MindSpore Dev ToolKit,同时降级自定义算子能力反对高效增加算子,丰盛 MindQuantum 量子模块反对可疾速上手,继续晋升框架的训练与推理性能,上面就带大家疾速浏览昇思 MindSpore 全场景 AI 框架 1.6 版本的要害个性。

  1. 服务开发者,改良易用性晋升开发效率

针对开发者诉求,昇思 MindSpore 全场景 AI 框架与开发者发展了零碎、深刻的交换,组织一系列用户调研和访谈,对开发者反馈较多的 API 问题进行整改优化,并打造系列教程,帮忙开发者上手;同时,昇思 MindSpore 全场景 AI 框架踊跃吸纳开发者参加内容建设,累计吸引 142 名内部开发者奉献 610+ 技术干货案例,笼罩装置、开发调优等要害场景,为开发者提供教训领导。

在调试、调优等性能个性上,昇思 MindSpore 全场景 AI 框架进行了零碎的改良,帮忙开发者晋升开发效率:

· 在性能调试方面,反对动态图模式的问题代码堆栈打印、优化谬误形容晋升报错准确性,为用户提供更好的问题解决体验。

· 昇思 MindSpore Insight 提供集群性能数据一键收集、并行策略剖析、图码联动可视化调优等性能,晋升开发者性能和精度调优效率。

· 在 ModelZoo 模型方面,提供 300+ 线上线下统一、笼罩 CV/NLP/ 举荐等畛域、反对跨平台部署的模型,并满足人工智能计算中心、金融、制作、终端等行业需要。基于新版本高效语法,重构 Yolo v5 等 ModelZoo 模型,为开发者提供昇思 MindSpore 全场景 AI 框架模型最佳实际。

  1. 控制流反对副作用训练,继续优化性能

在之前公布的昇思 MindSpore 全场景 AI 框架版本中,控制流训练场景下存在复制子图的问题,该问题会导致执行网络性能变差、副作用训练场景后果不对等问题。最新的昇思 MindSpore 全场景 AI 框架 1.6.1 版本,咱们对控制流的 IR 表白设计进行了重构,打消了不必要的图复制,对控制流场景下各方面进行了较大的优化。

1. 反对训练场景应用 Assign 等副作用算子。

2. 优化控制流子图数量,反向网络可间接复用正向图算子后果,不须要反复计算正向图,晋升了执行性能和编译性能。

例如:AirNet 网络子图数量由原来的 162 个升高至 46 个,缩小了大量冗余计算,执行性能由 12.3s/epoch 优化至 5.8s/epoch。

AirNet 网络优化前后子图数量与执行性能比照

BFGS 网络子图数量由原来的 3236 个升高至 91 个,执行性能由 4.9s/epoch 优化至 0.6s/epoch。

BFGS 网络优化前后子图数量与执行性能比照

3. 反对数据无依赖子图并行执行,同时优化了空子图执行流程,整体上晋升控制流场景执行性能。

例如:Mappo(Agent3) 网络优化前后子图数量无变动,然而因为咱们优化了无数据依赖的子图的并行执行能力和空子图执行过程,网络最终执行性能由 2.5s/epoch 晋升至 1.8s/epoch。

Mappo(Agent3) 网络优化前后子图数量与执行性能比照

  1. 昇思 MindSpore Graph Learning:公式即代码,训练减速 3 到 4 倍

图数据能天然表白真实世界对象之间的关系,表征能力和可解释性强,图学习也逐渐广泛应用于电商举荐、金融风控、药物分子剖析和管制优化等场景,图关系大都盘根错节,数据规模较大,通常有数十亿点,数百亿边,点边类型有几百种,图神经网络计算更加简单耗时,因而迫切需要高效的图神经网络系统。同时,GNN 算法的疾速倒退,须要易用的零碎容许自在扩大。

昇思 MindSpore Graph Learning 是由 James Cheng 课题组 (香港中文大学)、华为昇思 MindSpore 团队联结研发的图学习框架,具备高效性、易用性等特点。

3.1 易用性:公式即代码

通过创新性的提出以节点为核心的编程范式,相较于消息传递范式,更贴近 GNN 算法逻辑和 Python 语言格调,昇思 MindSpore Graph Learning 能够做到公式到代码的间接映射,如下图 GAT 网络代码所示。基于此,用户无需进行任何函数封装,即可疾速间接地实现自定义的 GNN 算法 / 操作。

3.2 高效性:训练减速 3 到 4 倍

基于昇思 MindSpore 全场景 AI 框架的图算交融和主动算子编译技术(AKG)个性,翻新提出基于索引的非规定内存拜访算子交融,自动识别 GNN 模型运行工作特有执行 pattern 并进行交融和 kernel level 优化。相较于其余框架对罕用算子进行定制优化的计划更加灵便,更具扩展性,可能笼罩现有框架中已有的算子和新组合算子的交融优化。以昇思 MindSpore 全场景 AI 框架作为后端,昇思 MindSpore Graph Learning 能使 GNN 网络训练取得 3 到 4 倍的性能减速。

3.3 丰富性:笼罩业界典型图学习网络

框架中曾经自带实现十三种图网络学习模型,涵盖同构图、异构图、随机游走等类型的利用网络。

  1. 高性能可扩大的强化学习计算框架:昇思 MindSpore Reinforcement

强化学习(RL)是近年来 AI 畛域的钻研热点之一,随同昇思 MindSpore 全场景 AI 框架 1.6 版本推出了独立的强化学习计算框架昇思 MindSpore Reinforcement,通过框架中的 Python 编程 API 以及算法与执行拆散的设计使其具备易编程,可扩大等特点,冀望带给用户一个全新的开发体验。

在昇思 MindSpore Reinforcement 0.2 版本中提供了一套面向强化学习畛域的 Python 编程 API,例如 Actor 用于环境交互取得处分,Learner 学习并更新策略,以及 Trainer 用于控制算法逻辑等形象,使整个算法构造更加清晰、简洁,有助于高效的算法开发和模块复用;另外在仓库中内置了一些经典的强化学习算法,如 DQN、PPO 等 (后续版本中将会继续更新),用户可间接运行其中的算法,或者基于 Python API 开发新的单智能体以及多智能体强化学习算法。

昇思 MindSpore Reinforcement 在架构设计上采纳了算法表白和编译执行拆散的设计思路,用户仅须要专一于强化学习算法逻辑的 Python 实现,依靠于昇思 MindSpore 全场景 AI 框架弱小的编译优化以及多硬件异构减速能力,能够实现强化学习算法的多硬件协同计算减速。

在计算设施上,昇思 MindSpore Reinforcement 反对包含 Ascend、GPU、CPU 在内的多硬件计算,以后 0.2 版本已反对单机训练,后续版本将提供更弱小的多智能体分布式训练能力,以及更加丰盛的个性反对,敬请大家继续关注。

  1. 自定义算子能力全面降级,对立 Custom 接口帮忙用户高效增加算子

随着 AI 模型的迭代,昇思 MindSpore 全场景 AI 框架内置的动态的算子库可能无奈满足用户的需要,之前版本的昇思 MindSpore 全场景 AI 框架的自定义算子性能也存在着平台笼罩不到位,开发过程繁琐及第三方算子接入艰难的问题。为了提供更好的自定义算子体验,昇思 MindSpore 全场景 AI 框架 1.6 版本全面降级了自定义算子的能力,提供撑持包含 Ascend,GPU 和 CPU 在内的多平台的对立算子开发接口 Custom,帮忙用户在昇思 MindSpore 全场景 AI 框架方便快捷地进行不同类型自定义算子的定义和应用,能够满足包含疾速验证,实时编译和第三方算子接入等不同场景下的用户需要。

5.1 多场景、多平台的对立算子开发接口

昇思 MindSpore 全场景 AI 框架 1.6 版本提供对立的算子开发接口 Custom,实现了不同形式自定义算子的接口和应用对立。其提供的模式包含基于 JIT 编译的算子编译器开发模式、针对极致性能的 aot 模式和针对疾速验证的 pyfunc 模式,不便网络开发者依据须要灵便选用不同的自定义形式。

此外对立的算子开发接口整合了以后昇思 MindSpore 全场景 AI 框架反对的不同平台,包含 Ascend,GPU 和 CPU,以及新增的 AICPU 平台,缩小了用户针对不同平台算子开发的学习老本。

5.2 自定义算子一键接入,方便快捷

昇思 MindSpore 全场景 AI 框架 1.6 版本提供的自定义算子能够帮忙用户在昇思 MindSpore 全场景 AI 框架的 Python 端疾速的定义算子,把算子作为网络表白的一部分,无需对昇思 MindSpore 全场景 AI 框架进行侵入式批改和从新编译。此外提供了主动生成注册信息的能力,实现自定义算子一键接入网络,极大的简化了自定义算子的开发流程。用户在应用时齐全不感知框架相干的设定,让用户更加关注计算自身。

5.3 新的自定义算子类型反对:AICPU

昇思 MindSpore 全场景 AI 框架 1.6 版本新增了 AICPU 类型算子的反对,该类算子对应的硬件架构为 ARM 架构,采纳 aot 模式编译,能够快捷地部署到支流嵌入式平台上。AICPU 算子绝对于 TBE 算子,善于逻辑类操作,采纳 C /C++ 开发,相似于 CPU 算子开发,对于一些难以向量化的算子,有较大的性能收益。

  1. 模型迁徙工具 MindConverter:反对第三方框架模型的一键迁徙

从第三方框架切换到昇思 MindSpore 全场景 AI 框架,如果不能复用原框架的存量支流模型,则须要从新编写模型训练脚本,并破费周级甚至月级的工夫进行重训。目前大量开源模型基于 PyTorch/TensorFlow 实现,如果想基于昇思 MindSpore 全场景 AI 框架进行钻研,则可能因为预训练数据无奈获取或者训练资源无限,难以在昇思 MindSpore 全场景 AI 框架下复现模型。

在昇思 MindSpore 全场景 AI 框架 1.6 版本中提供的模型迁徙工具 MindConverter,能够帮忙用户疾速实现第三方框架支流模型的一键迁徙。

工具采纳了支流 AI 框架 IR 到昇思 MindSpore IR 的转换计划,转换后的模型可推理可重训,模型脚本可读性较好。模型迁徙工具反对以下两种转换形式:

6.1 基于 ONNX IR 转换

ONNX 是一种开放式模型定义格局,业界支流 AI 框架均已反对将模型导出为 ONNX 格局。借助 ONNX 通用性,模型迁徙工具可实现多种 AI 框架到昇思 MindSpore 全场景 AI 框架的转换。已验证反对 ResNet 系列、RegNet 系列,HRNet 系列,DeepLabV3 系列,YOLO 系列等模型。

如上图所示,将第三方框架模型导出成 ONNX 格局,而后应用模型迁徙工具,映射转换成昇思 MindSpore 全场景 AI 框架模型。

6.2 基于 TorchScript IR 转换

TorchScript 是 PyTorch 模型的两头表白,借助 TorchScript IR 的泛化性,模型迁徙工具可笼罩绝大部分的 PyTorch 模型。已验证反对 HuggingFace Transformer 预训练模型 200+ 个。

如上图所示,将 PyTorch 框架模型转换成 TorchScript 计算图,而后应用模型迁徙工具,映射转换成昇思 MindSpore 全场景 AI 框架模型。

更多可反对转换的模型,有待用户发现与验证。应用模型迁徙工具时如有问题,请参考官网的使用手册,也欢送在开源社区中进行反馈。

  1. 使能用户即时体验的开发套件昇思 MindSpore Dev ToolKit

昇思 MindSpore 全场景 AI 框架功能丰富且弱小,如何一键上手,疾速试用?由昇思 MindSpore 团队推出的昇思 MindSpore Dev ToolKit 开发套件蕴含运行治理,智能常识搜寻与智能代码补全性能,致力于让所有用户丝滑地解脱环境烦扰,学习人工智能,让人工智能回归算法自身。

7.1 一键环境治理,5 分钟实现环境搭建上手昇思 MindSpore 全场景 AI 框架实际

基于 Conda 提供迷信的昇思 MindSpore 全场景 AI 框架环境治理形式,能疾速将昇思 MindSpore 全场景 AI 框架及依赖装置在独立环境中并部署最佳实际。该能力兼容 Ascend、GPU、CPU 多平台,荫蔽不同环境适配的繁琐细节,让用户在关上 IDE 后一键运行 AI 算法。最快能在 5 分钟内体验用昇思 MindSpore 全场景 AI 框架学 AI 的乐趣,内测数据显示 80% 的 AI 零根底用户应用该性能可在 20 分钟内实现环境配置与算法运行。

7.2 沉迷式昇思 MindSpore 全场景 AI 框架生态常识智能搜寻,用户零压力接入昇思 MindSpore 生态

基于语义搜寻等能力,在 Dev Toolkit 内提供全面的昇思 MindSpore 全场景 AI 框架常识内容检索,对算子而言,PyTorch/TensorFlow 框架用户只需在 IDE 内查问相应算子,即可疾速精确找到昇思 MindSpore 全场景 AI 框架中的对应实现并取得具体文档反对,从而无压力切换到昇思 MindSpore 全场景 AI 框架生态中。

7.3 基于深度学习的智能代码补全,单模型开发键盘敲击次数可缩小 30%

Dev Toolkit 基于昇思 MindSpore ModelZoo 等最佳实际数据集结构的智能代码补全模型实现的智能代码补全性能,让用户在编写昇思 MindSpore 全场景 AI 框架相干代码时获取实时提醒,补全达 80% 的高准确性将减速用户编码,目前内测数据显示编码时键盘敲击次数可缩小 30% 以上。

  1. 昇思 MindSpore Lite 继续晋升推理性能

8.1 通过异构并行技术,深度开掘硬件算力晋升推理性能

此版本中,昇思 MindSpore Lite 新增异构并行性能,该性能感知异构硬件能力,使能多个底层硬件并行执行推理,最大限度利用端侧无限的硬件资源,晋升推理效率。

异构并行性能会在构图阶段,依据异构硬件的能力进行构图操作。构图操作分为切分算子与结构异构图两局部。切分算子会将本来不适宜异构并行的模型重形成适宜异构并行的,且并行分支的运算量可能严格匹配异构硬件的执行能力。结构异构图操作会依据模型现有的图构造进行并行子图搜寻,最终确定异构并行图。构图的整体解决方案不局限于模型原始构造,使得异构并行能够利用于泛化模型。

昇思 MindSpore Lite 在以后版本实现了 GPU 与 CPU 的异构并行,应用 Mobilenet-V1 网络实测验证,有 5% 左右的性能晋升。

8.2 优化 GPU 推理性能,反对将 OpenGL 纹理数据作为输出和输入数据

此版本中,昇思 MindSpore Lite 反对将 OpenGL 纹理数据作为推理模型的输出,推理输入后果也为 OpenGL 纹理,实现端到端推理过程中,缩小 CPU 和 GPU 间的数据拷贝,从而达到晋升推理性能降低功耗的目标;相比上一版本,可能缩小四次设施间的内存拷贝,示意如下图:

  1. MindQuantum:疾速上手量子模仿与量子机器学习

MindQuantum 最新 0.5 版本中提供独立的量子模仿模块 Simulator,用户可疾速对自定义量子线路进行模仿演变并对量子态进行采样,极大不便开发者在 MindQuantum 环境中设计和验证本人的量子算法。此外咱们新增了量子线路和量子态采样的展现模块,开发者也能直观的对量子算法进行批改。

新增量子线路绘制性能演示如下:

新增模拟器模块及其线路采样性能演示如下:

此版本的第二大个性是新增了多种量子神经网络算子,开发者依据这些算子能够疾速开发量子经典混合的机器学习模型,助力量子人工智能算法冲破。

  1. 昇思 MindSpore Science 蛋白质构造预测性能晋升 2 - 3 倍

昇思 MindSpore Science 开源了基于 AlphaFold2【1】算法的蛋白质构造预测推理工具,该预测推理工具由昇思 MindSpore【2】团队、昌平实验室、北京大学生物医学前沿翻新核心(BIOPIC)和化学与分子工程学院、深圳湾实验室高毅勤传授课题组联合推出,MindSpore + Ascend910 单卡端到端性能优于原版 AlphaFold2 达 2 - 3 倍。

传统的药物设计研发周期长、费用高,而理解蛋白质的空间结构后可大幅缩短研发周期。因而,精确、疾速的蛋白质构造预测不仅能够疾速取得或验证要害蛋白构造,而且在医疗衰弱和生物工程畛域也能作为无力的工具。但传统蛋白质构造预测办法存在计算精度有余的缺点,而 AlphaFold2 的蛋白质构造预测工具精度可与试验办法相媲美。

该工具可对氨基酸序列长度 2000+ 的蛋白质构造解析,能笼罩约 99% 以上的蛋白序列【3】。其中模型局部与 AlphaFold2 雷同,在多序列比对阶段,采纳了 MMseqs2 进行序列检索【4】,相比于原版算法端到端运算速度有 2 - 3 倍的晋升。

图 1 昇思 MindSpore 全场景 AI 框架模型与 AlphaFold2 精度比照

图 2 通过昇思 MindSpore 全场景 AI 框架预测的 T1079

针对蛋白质构造预测及折叠问题,联结团队将来还会公布翻新的全栈(算法 + 软件 + 硬件)敬请期待。

参考文献

【1】Jumper J, Evans R, Pritzel A, et al. Applying and improving AlphaFold at CASP14[J]. Proteins: Structure, Function, and Bioinformatics, 2021

【2】Chen L. Deep Learning and Practice with MindSpore[M]. Springer Nature, 2021.

【3】https://ftp.uniprot.org/pub/d…

【4】Mirdita M, Ovchinnikov S, Steinegger M. ColabFold-Making protein folding accessible to all[J]. BioRxiv, 2021.

正文完
 0