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


自动并行 , 并行是所有做分布式、大集群遇到的问题 , 传统的数据并行 , 后来发现出现模型并行、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的服务 , 目前还有公测 , 欢迎大家申请 。


推荐阅读