乾明 发自 凹非寺 
量子位 报道 | 公众号 QbitAI

华为的开源AI框架,来了!

刚刚,华为宣布正式开源自研深度学习框架MindSpore,代码已经上线。

MindSpore是一款支持端边云全场景的深度学习训练推理框架,主要应用于计算机视觉、自然语言处理等AI领域,面向数据科学家、算法工程师等人群,提供设计友好、运行高效的开发体验。

作为华为整体AI解决方案的一部分,MindSpore在提供昇腾AI处理器原生支持及软硬件协同优化,也支持通用CPU和GPU。

2019年8月份,华为轮值董事长徐直军介绍,MindSpore可以实现统一架构,一次训练,多处部署。而且,通过实现AI算法即代码,MindSpore可以显著减少模型开发时间。

MindSpore为什么能够实现这些能力?伴随着开源,它更多的特性,正在显露出来。

MindSpore四大功能

华为MindSpore首席科学家、IEEE Fellow陈雷介绍,当前开源的MindSpore主要具备基于源码转换的通用自动微分、自动实现分布式并行训练、数据处理、以及图执行引擎等功能特性。

整体架构如下图所示:

首先说自动微分,它是指计算机借助程序自动求出一个函数导数的通用方法。在深度学习中,通常指对网络模型的自动求导,通过梯度指导对网络权重的优化。

当前主流深度学习框架中,主要有三种自动微分技术:

一是以TensorFlow为代表的基于静态数据流图的转换,可利用静态编译技术对网络进行性能优化,但受制于数据流图的表达形式,不能灵活表达控制流;

二是以Pytorch为代表的基于动态图的转换,虽然可以使用户可以灵活的使用控制流。而其缺点是运行时开销高,且不能运用静态编译技术对计算图进行性能优化。

第三种是基于源码转换的通用自动微分,也就是MindSpore采用的技术。

这种方法,源以函数式编程框架为基础,以即时编译(JIT)的方式在中间表达上做自动微分变换,支持复杂控制流场景、高阶函数和闭包。

由于支持对控制流的自动微分,技术可以兼得上面两种技术的优点,即支持灵活的原生的控制流表达,同时也可以在执行前对网络做静态编译优化,生成高效的计算图,从而提高执行性能。

自动并行方面,陈雷介绍说,MindSpore能够用串行算法代码,自动实现分布式并行训练,同样直击当前模型研发过程中的痛点。

一般来说,在模型研发过程中,除设计模型自身的逻辑外,还需设计分布式并行训练的配置。

这是一个辛苦活。

开发者不仅要分析数据量、参数量、集群群网络拓扑等因素来确定模型切分策略;还要考虑切分后的子模型设备绑定等,来达到性能较优的分布式并行训练效果。

但其实,这些并行训练的优化细节与模型要实现的业务目标无关,最后却让开发者费尽了心思,“掉光了头发”。

尤其是逻辑复杂、参数量巨大的模型,想要人工找到最优的并行策略基本不可能。

华为想要解决这个问题。MindSpore提出一种全新的分布式并行训练模式,融合了数据并行、模型并行和混合并行。

具体来说,MindSpore构建了基于数据量、模型参数量、网络集群拓扑带宽等信息的代价模型(Cost Model),自动选择一种代价最小的模型切分方式,并绑定模型到设备执行,实现自动分布式并行训练。

整个过程,几乎不需要开发者参与,他们只需要专注于模型逻辑的开发就行了。

MindSpore中的数据处理功能名为MindData,用于完成训练过程中数据的pipeline处理,具备数据加载、数据增强、导入训练等功能,并提供了简单易用的编程接口,以及覆盖CV/NLP等全场景的丰富数据处理能力。

在数据处理的过程中,MindSpore还加强了与昇腾芯片的协同,针对昇腾芯片计算过程中消耗数据的速度,提供了优化。

陈雷说,这是确保昇腾芯片发挥更大性能的关键。

此外,MindSpore也支持分布式训练。

在分布式数据并行模式下,在每个批量batch之后,计算和模型信息会被分布到工作对象中,并提供了“切片与重采样”两种调整迭代数和分割数据的方法。

最后,承担MindSpore前端与底层硬件交互任务的是图引擎模块

它是MindSpore内部进行图处理的模块,负责将管理引擎传下来的图进行一系列的图操作,最终转化为可以在底层硬件上直接运行的图,并对图中所用到的所有算子进行分配与管理。

在图处理过程中,图引擎会统一定义各插件模块需要提供的接口,具体的插件由不同的功能模块根据自己的能力提供,它会根据不同的插件提供的能力,实现最优的执行选择,来保证性能。

除了上述功能之外,MindSpore中还有深度优化的模型集市Model Zoo,可视化工具、模型评估工具等。

Model Zoo模型集市在今年第四季度,将会上线30+模型,支持昇腾和MindSpore协同,也会对模型个性化深度优化。

可视化工具提供单次训练过程可视化,以及多次训练的模型溯源对比功能,让开发者炼丹更加便利。

模型评估工具支持多种对抗样本生成算法,包括13种白盒、7种黑盒攻击算法,帮助开发者评估对抗 样本攻防能力。

在这些功能的加持下,MindSpore实现模型开发能力提升的同时,使用起来也颇为方便。

借助自动微分,轻松训练神经网络

易用性直接体现在操作上。

陈雷说,MindSpore为用户提供Python编程范式,用户可以用模块化形式对神经网络进行描述。

借助基于SCT的自动微分,用户还可以使用原生Python控制语法和其他一些高级API,如元组(Tuple)、列表(List)和Lambda表达。

他说,为了避免产生混淆,MindSpore尽可能减少引入新的接口和概念。在单机平台上训练简单的神经网络时,用户只需要了解张量、算子、单元、模型等就行了。

具体的过程是这样的:

从输入张量开始,它可以是常量输入张量或参数张量。然后用MindSpore提供的不同算子构造一个单元。最后,使用模型封装这个单元来训练神经网络。

或者,用户可以直接将输入数据传递给单元执行推理任务。

所以徐直军去年宣布MindSpore将要开源时说,MindSpore面向的不仅仅是深度学习开发者,也面向领域专家、数学家、算法专家等等在AI中角色越来越重要的人群。

同时,易用性不仅仅体现在模型开发上,在模型部署过程中也很方便——一次训练后,可多处部署,这也是为什么说MindSpore是一个全场景框架。

训练推理上,MindSpore不仅支持CPU、GPU,更针对华为昇腾芯片进行了优化。同时,MindSpore也是唯一支持昇腾芯片的框架。

这就意味着,在华为昇腾系列芯片的设备上部署AI应用,用MindSpore是一个比其他框架都更好的选择。

框架开源,华为培育AI开发生态

2018年,华为在全联接大会上,首次披露了完整的AI解决方案,MindSpore是其中重要一环。

2019年8月,华为正式发布昇腾910,同时推出全场景AI计算框架MindSpore,并表示要在2020年第一季度开源。

徐直军在发布会上说,这标志着华为已完成全栈全场景AI解决方案的构建,华为AI战略的执行进入了新的阶段。

今天华为兑现开源,并构建开发者社区,也是华为培育华为AI生态、推进AI战略执行的重要举措。

据陈雷介绍,MindSpore当前发布的是首个开源0.1.0-alpha版本,许可证是Apache 2.0,接下来将逐步完善。

同时,华为也披露了MindSpore开源社区的治理结构——由技术治理委员会、特别兴趣组以及工作组等社区组织组成。

其中,技术治理委员会由来自14名来自不同公司/学校/机构的代表组成,会依照社区章程开放治理,推动社区健康有序发展。

特别兴趣组,由主要特性模块的开发者自发组成,负责开发MindSpore相关开发工作。

工作组需要多个特别兴趣组的成员合作的工作,由开发者自发组成,并负责相关开发工作。

现在,MindSpore的代码已经上线,开源社区已经开放。

如果你有兴趣,不妨收好下面的传送门,体验一番,再给出评价:

MindSpore开源社区:
https://www.mindspore.cn
MindSpore代码托管:
https://gitee.com/mindspore

作者系网易新闻·网易号“各有态度”签约作者

如何关注、学习、用好人工智能?

每个工作日,量子位AI内参精选全球科技和研究最新动态,汇总新技术、新产品和新应用,梳理当日最热行业趋势和政策,搜索有价值的论文、教程、研究等。

同时,AI内参群为大家提供了交流和分享的平台,更好地满足大家获取AI资讯、学习AI技术的需求。扫码即可订阅:

了解AI发展现状,抓住行业发展机遇

AI社群 | 与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「在看」吧 !

华为开源自研AI框架MindSpore!自动微分、并行加持,一次训练,可多场景部署...相关推荐

  1. 华为开源自研AI框架昇思MindSpore应用案例:Colorization自动着色

    目录 一.环境准备 1.进入ModelArts官网 2.使用ModelArts体验实例 二.数据处理 数据准备 训练集可视化 构建网络 损失函数 三.模型实现 算法流程 模型训练 模型推理 总结 自动 ...

  2. 华为开源自研AI框架昇思MindSpore应用实践:FGSM网络对抗攻击

    目录 一.环境准备 1.进入ModelArts官网 2.使用CodeLab体验Notebook实例 二.对抗样本定义 三.攻击方法 快速梯度符号攻击(FGSM) 四.数据处理 五.训练LeNet网络 ...

  3. 华为开源自研AI框架昇思MindSpore模型体验:ModelZoo中的CRNN

    目录 一.环境准备 1.进入ModelArts官网 2.使用CodeLab体验Notebook实例 二.脚本说明 三.数据集 四.训练过程 五.评估过程 六.推理过程 CRNN描述 CRNN是一种基于 ...

  4. 华为开源自研AI框架昇思MindSpore应用实践:DCGAN生成漫画头像

    目录 一.原理说明 1.GAN基础原理 2.DCGAN原理 二.环境准备 1.进入ModelArts官网 2.使用CodeLab体验Notebook实例 三.数据准备与处理 1.数据处理 四.创建网络 ...

  5. 华为开源自研AI框架昇思MindSpore应用案例:SSD目标检测

    目录 一.环境准备 1.进入ModelArts官网 2.使用CodeLab体验Notebook实例 二.环境准备 三.数据准备与处理 数据采样 数据集创建 四.模型构建 五.损失函数 六.Metric ...

  6. 论文速递 | 华为开源自研算法Disout | 中科院计算所GCN中文综述

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手 ...

  7. 华为发布最强 AI 处理器昇腾 910,全场景 AI 框架 MindSpore 将开源

    整理 | 胡巍巍 好巧呀好巧,前几天刚参观完华为北京研究所,一睹昇腾310 AI处理器的真容,今儿个昇腾910就来了. 昇腾310 AI处理器,摄于华为北京研究所 8月23日,华为正式发布AI处理器A ...

  8. 国信证券开源自研的微服务开发框架 Zebra

    https://www.infoq.cn/article/qtxfqPepvPeVwYDy2EHD?utm_source=weibo&utm_medium=infoq&utm_camp ...

  9. 华为开源的深度学习框架 MindSpore

    点击蓝字关注我们 扫码关注我们 公众号 : 计算机视觉战队 扫码回复:华为开源,获取下载链接 作者:杨军 来源:知乎 纯技术讨论,不涉及其他,部分我拿不准的地方,会直接以(?)标识出来,欢迎菊花厂同学 ...

最新文章

  1. Discovery studio画蛋白质构象叠合图
  2. 生成对抗网络(GAN)应用于图像分类
  3. hystrix 配置 不生效_12、Feign整合断路器Hystrix
  4. 硬盘驱动器是如何工作的?
  5. linux 系统调用表 sys_call_table 获取方法
  6. 使用Screen使SSH关闭后Meteor服务继续运行
  7. 收藏!AI 最全干货超级大列表,100+ 张速查表全了!
  8. 实验四 查找和排序算法实现
  9. 求最大整数及其最小下标
  10. R语言学习笔记(4)
  11. go 访问数据库mysql基础
  12. Eclipse 构建Maven项目--普通web项目 复制另外一个项目的配置文件导致的问题
  13. 微信支付宝关闭三星Galaxy指纹支付;乐视网回应贾跃亭破产;Chrome 78发布|极客头条...
  14. redis 3.0.0 linux下载,centos安装redis3.0.0集群
  15. 【python】【multiprocessing】【Pool、pool.Pool、pool.ThreadPool】apply 和apply_async多进程有关时间的比较分析
  16. “去中心化”到底是什么?
  17. 迈克尔·霍利:当我看到人们急着加入新行列、抛弃高度发展的老技术时,我就感到很伤心
  18. 如何计算DDR存储容量
  19. MAC地址克隆是什么意思
  20. 第二类斯特林数 - Push Botton Lock(POJ 3088)

热门文章

  1. JS每日一题: 小程序页面之间如何通信?
  2. Leaflet绘制热力图【转】
  3. [Winform]默认以管理员身份运行程序
  4. 能干掉苹果的中国黑客
  5. 员工因公司而加入,却因主管而离开
  6. 【Boost】timer、progress_timer和progress_display
  7. ckeditor默认字体设置
  8. 在GNS3中模拟交换机和PC
  9. XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件
  10. Xamarin iOS教程之页面控件