MindSpore:华为开源自研AI框架MindSpore!自动微分、并行加持,一次训练,可多场景部署
乾明 发自 凹非寺
量子位 报道 | 公众号 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) , 自动选择一种代价最小的模型切分方式 , 并绑定模型到设备执行 , 实现自动分布式并行训练 。
整个过程 , 几乎不需要开发者参与 , 他们只需要专注于模型逻辑的开发就行了 。
推荐阅读
- 「华为」荣耀彻底爆发,这手机从 2999 暴跌到 1638,比双 11 更吃香了
- 『价格』价格差 100,华为 Mate30 和 iPhone SE2 怎么选?答案简单!
- 『市场份额』鲁大师公布一季度手机排名,华为荣耀排名第一、二名,安兔兔怎么看?
- 小贝贝议科技■国产手机厂商有可能使用华为麒麟芯片吗?
- [屏幕]华为 P40 Pro 屏幕简评:能否担当旗舰的称号?
- 『华为』华为 14nm 订单转给中芯国际,台积电:不担心市场份额会下降
- 【华为】华为这款手机降至1399元:4800万浴霸四摄+3200万自拍+4000mah
- 华为Mate30:华为宣布!P40基本已去谷歌!外媒:华为P40去谷歌依然是顶级旗舰
- 『小谦』侧边指纹,后置竖向四摄,华为nova 7 SE曝光
- 华为荣耀■华为突然宣布新5G处理器,高通直叹气,很无奈,差距又拉大了
