行业互联网|华为黄之鹏:MindSpore全场景AI计算框架


编者按:2020 年 8 月 7 日 , 全球人工智能和机器人峰会(CCF-GAIR 2020)正式开幕 。 CCF-GAIR 2020 峰会由中国计算机学会(CCF)主办 , 香港中文大学(深圳)、雷锋网联合承办 , 鹏城实验室、深圳市人工智能与机器人研究院协办 。 从 2016 年的学产结合 , 2017 年的产业落地 , 2018 年的垂直细分 , 2019 年的人工智能 40 周年 , 峰会一直致力于打造国内人工智能和机器人领域规模最大、规格最高、跨界最广的学术、工业和投资平台 。
在雷锋网GAIR大会的第二天 , AI源创专场现场迎来了华为计算开源生态部副总监黄之鹏 。 一年前 , 华为发布了全场景 AI 计算框架 MindSpore , 并同时公布了 2020 年的开源计划 。 今年 3 月底 , 开发者们如期迎来了开源的 MindSpore 。 MindSpore 可以适应端、边、云多个场景 , 并且与华为昇腾 AI 处理器的协同优化能带来效率提升 , 黄之鹏就此发表演讲 。

行业互联网|华为黄之鹏:MindSpore全场景AI计算框架
本文插图

华为计算开源生态部副总监黄之鹏
黄之鹏介绍了MindSpore的功能、特性以及在华为的业务落地情况 。 他同时还表示MindSpore和国内其他的已有的社区不太一样的是采用了比较开放的架构 , MindSpore有两层的数据架构组成 , 数据治理委员会是由14名来自中美欧的专家组成 。 采用社区治理架构也是我们希望MindSpore不仅局限在一个区域内的单项 , 希望MindSpore是面向全球的开源社区 , 之后MindSpore甚至会做法语、德语等多种语言的社区 。
以下为黄之鹏的现场演讲内容 , 雷锋网(公众号:雷锋网)作了不改变原意的编辑及整理:
谢谢主持人 , MindSpore是华为3月28日开源的框架 , 华为的解决方案是全栈式的解决方案 , 包括了我们公有云提供的框架 , 我们的芯片CANN使能和自研的Ascend 。
下面我介绍一下MindSpore的特性 , 总体来说 , MindSpore是提供面向端、边、云全场景的统一API , 我们提供一些比较新的 , 对于开发者非常友好的特性 。 MindSpore大家如果了解深度学习框架这些年的发展趋势 , 其实框架现在主要集中在编译和硬件的结合这两块 , 对于MindSpore来说 , 编译层面大量的优化也是我们的特点之一 。
和硬件的结合上 , MindSpore代表软硬结合的思路 , 也有和深层空间配合的特性 。 这是我们社区的概况 , MindSpore是比较年轻的社区 , 我们代码托管在码云 , 通过自己做的小机器人 , 同时同步到Github , 方便国内、国外的开发者 。 我们也制作了很多版本宣传视频和教学视频 , 希望通过各种渠道帮助开发者更快的了解我们的框架 。
MindSpore在华为的业务上已经有了落地 , 我们内部有很多的实验室已经大规模的应用了MindSpore的框架 。 华为手机搭载的HMS4.0开始已经搭载MindSpore的端侧推理能力 , 主要支撑的是HMS的HMS ML-kit 。 在电信领域 , 华为支持了很多电信领域AI结合的尝试 , 包括ANE 。
今天下午讲了很多的框架 , 为什么又出一个框架 , 为什么又要学习一个框架?是不是吃饱了撑的?对于华为来说 , 我们做框架并不是为了解决软件的问题 , 当然软件是很大的问题 , 对于华为来说 , 主要是全栈的思考 , 从模型到数据到应用的部署 , 到跟算法工程师流水线的使能再到硬件 , 我们希望这一整套都可以提供一套思路 , 帮助或是和业界一起往前走 , 做出一些创新 。
【行业互联网|华为黄之鹏:MindSpore全场景AI计算框架】说一些稍微细致点的架构 , 自动微分所有的框架几乎是都会用的已有特性 , 手动尤其是反向做微分是非常痛苦的 , 简单的实验还好 。 MindSpore的自动微分有什么特点?
TensorFlow主要是基于图的 , TensorFlow自动微分的缺点是 , 现在大多数的框架都是python的原生编程 , 而且非常复杂 , 意味着很多的科研都需要二阶、三阶 , Pytorch是让开发者用python写这个模型 , 通过我们的编译技术达到自动微分 , 自动微分最后生成的是原代码 , IR的图 , 这个源代码会得到硬件商 , 整体的执行效率非常高 。
自动并行 , 并行是所有做分布式、大集群遇到的问题 , 传统的数据并行 , 后来发现出现模型并行、MindSpore的自动并行也是借助生成比较好的能力 , 我们可以让开发者自动提供并行的能力 , 不需要开发者手动提供运行的策略和模型 , 很多的工作还是需要大量手写 。 数据也是处理的一部分 , 我们在市场环境尤其是小数据级的瓶颈还有很大的影响 。 我们也是希望能把数据集或是把数据更好的组织起来 。
刚才讲的是我们称之为前端的能力 , 再往下走是偏硬件或是利用硬件能力的能力 , 主要是六大功能:Shape推导、引擎划分 , 整图拆分、边界标识 , 格式转换 , 算子融合 , 编译、Stream分配、Task编译 , 图加载至硬件 。 带来显而易见的好处这里有一个例子 , 通过动态图到静态图非常便利的切换 , 方便大家在非生产路径的调试和部署 。
我们也提供一些比较好用的工具 , MindSpore提供图像模式、直方图、数据溯源 , 总而言之尽可能的直观给工程师呈现AI实验的过程和细节 。 另外我们提供的工具 , 模型写出来被恶意的人使用会达到完全不一样的效果 , 模型会模仿各种各样的攻击 , 帮助开发者评估MindSpore开发的模型是否有足够好的特性 。
MindSpore的图算融合 , 实际上可以理解为两层 , 一个是图层 , 后端有AKG做算子的融合 , 小算子组成大算子 , 对性能的优化有比较好的提升 , 我们也是应用多变体去做Auto schedule 。
MindSpore的混合异构 , 比较便捷的实现混合资源高效的任务执行 , 还有一些性能没有写上 , 比如说量化训练 , 包括二阶的优化 , 都是可以做到比同类二阶优化更好的性能 。 还有一些我们在做的更前端、更前沿的尝试 。
MindSpore和WebAssembly的结合 , 说是支持 , 做支持的场景是在浏览器里进行推理任务 , 为什么要用浏览器?医生、金融 , 不管是PC侧还是手机侧的浏览器运行推理任务 。
WebAssembly是很多大型厂商关注的新方向 , 这个技术本身不新 , WebAssembly是希望在浏览器有提供原生运行性能 , 很多的开源合作 , 很多大公司都在尝试 , 看能不能从浏览器里推广出来 , 不仅仅是跑在里面 , 跑到服务器上 , 跑到PC上 , 边缘的设备上 , 安全性是非常好的 , 金融的场景对安全性的要求非常高 。
我们团队在做的一个尝试 , 最近已经做了一个小型尝试 , 他们走的还不够远 , 还是在浏览器运行更好 , 我们希望再往前推 , TVM也在做VASM的支持 , 我们想把TVM很好的能力运用起来 , 希望能管理起来 。
eBPF提供非常好的事情 , 尤其是对网络调优的时候 , 通常会走大量的调用 , 完成协议站的检查 , 可以把包加载在里面 , 可以进行非常快速的检查 , 性能优化越来越多的公司开始用的技术 , 希望监测的功能 , 为什么看这块?AI一直是比较大的话题 , eBPF这样的工具帮助我们更好的理解模型训练、推理时到底发生了什么 , 到底触发了什么 , 到底在做些什么东西 , eBPF只是一个工具 , 我们希望这个路径打开更多的监测 。 推理主要是和Kubeflow做的集成 。
必须要提的是 , 除了刚才介绍的这些特性之外 , MindSpore和国内其他的已有的社区不太一样的是 , 我们还是采用了比较开放的架构 , MindSpore有两层的数据架构组成 , 数据治理委员会是由14名来自中美欧的专家组成 。 采用社区治理架构也是我们希望MindSpore不仅局限在一个区域内的单项 , 希望MindSpore是面向全球的开源社区 , 我们甚至会做本地语言 , 做法语、德语 。
我们非常欢迎开发者加入到我们社区的开发 , 可以选择你感兴趣的 , 每个月都会开例会 , 例会都会上传到B站 。 欢迎大家到社区成立针对某一个特性的工作组 。 我们现在为了方便开发者开发MindSpore , 主要是通过华为的ModelArts的服务 , 目前还有公测 , 欢迎大家申请 。
我们也在抖音和B站 , 以前我们在抖音每个星期直播 , 现在改成每个月 。 我们一个月出一个版本 , 比较有趣、打动人的方法给开发者讲我们MindSpore自己的故事 。 哔站主要是很多教程的视频 , 我们开会的视频 , 每个月会做一些课 , 今天和明天我们正在做8月份线上的集群课 , 这些直播都会放在官方哔站上 , 欢迎大家访问我们的哔站 。 我就讲到这里 , 谢谢大家 。


    推荐阅读