编者按: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的功能、特性以及在华为的业务落地情况。他同时还表示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的自动微分有什么特点?
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的服务,目前还有公测,欢迎大家申请。
欢迎加入到我们社区,我们的官网有中英文,有码云、Githbu,我们有邮件列表,主要是为了提供公开透明和实时归档的讨论渠道。QQ群是自己研发的专家在里面,也可以加我们的微信小助手,也有一些活动的微信群,我们现在开始在各个城市组织活动,都是本地化的GitHub,包括我们的公众号,欢迎大家订阅我们的公众号。
我们也在抖音和B站,以前我们在抖音每个星期直播,现在改成每个月。我们一个月出一个版本,比较有趣、打动人的方法给开发者讲我们MindSpore自己的故事。哔站主要是很多教程的视频,我们开会的视频,每个月会做一些课,今天和明天我们正在做8月份线上的集群课,这些直播都会放在官方哔站上,欢迎大家访问我们的哔站。我就讲到这里,谢谢大家。