X

汇聚4.5万开发者,华为MindSpore 1.0正式发布

机器之心发布

机器之心编辑部

2020 年 3 月 28 日,MindSpore 正式开源,备受广大开发者的关注。从 4 月 30 日发布的 v0.2.0-alpha 版本,到 8 月 30 日发布的 v0.7.0-beta 版本,推出了数十个亮眼的新特性,9 月,在华为全联接大会上,MindSpore 正式发布 v1.0.0 版本(后简称 1.0)。

图1 MindSpore 1.0正式发布

开源6个月以来,MindSpore收获了4.5w+名开发者,累计PR数1w+,下载使用用户遍布全球,覆盖亚洲、欧洲、南美、北美、非洲、等各地区,MindSpore Study Group(下简称MSG)启动4个月便在海内外多个城市顺利开展,深圳、杭州、苏州、上海、俄罗斯、新加坡、印尼均已建立MSG组织,做到了真正的全球化社区。

图2 MindSpore开源整体社区进展

视频:MindSpore 1.0 版本1分钟特性总结

三大创新助力全场景AI应用

图3 MindSpore 1.0全景图介绍

创新一:全流程极简,多套件打造极致开发体验

1. 即开即用

当开发者开展新项目时,往往需要从清洗数据开始,到训练模型,推理部署等多个流程,流程复杂,耗时较久。在1.0版本中,官方提供了40+个典型的高性能模型,覆盖了CV、NLP、推荐、语音等各个领域,大家可以使用这些模型直接推理或者加载自己的数据集做Fine-tuning,这样可以节省大量训练的时间和成本,快速开发出智能的服务和应用。开发者们可以在官网的Hub页面中通过筛选条件,快速找到自己想要的预训练模型,实现模型开发套件,“即开即用”。

图4 MindSpore Hub官网页面

2. 所见即所得

1.0版本中,MindSpore提供了所见即所得的模型开发和调优套件。在模型开发阶段,MindSpore基于统一的自动微分引擎,支持用户用一行代码切换动态图和静态图模式,使得兼顾开发效率和执行效率。在模型调优阶段,MindInsight可视化调优工具帮助用户汇总和分析调优过程,并且向推荐合理的调优策略,加速模型调优过程。

图5 MindSpore 模型调优套件

如果你已使用PyTorch训练模型,可以使用MindConverter工具加少量的代码开发,即可方便地迁移到MindSpore框架。同时MindSpore也支持PyTorch、TensorFlow Lite、Caffe的模型文件直接转为MindSpore模型。这样就能非常方便地使用MindSpore提供的全自动并行特性。

创新二:全自动并行,最大释放集群算力

图6 MindSpore自动并行详解图

在算法层面,MindSpore拥有自动并行能力,可以根据集群配置对模型和张量自动切分,将串行算法进行自动并行,大大减少算法开发人员的分布式代码开发和调优的负担,使得算法调优时间从月级降到天级;

在算子层面,MindSpore提供了算子级并行自动融合,通过细粒度pipeline的并行执行的方式,进一步提高计算性能;

在硬件层面,MindSpore进行整图调度,可以根据计算特征,自动把算子调度到异构设备上执行,实现异构多核的高效并行执行;

在此基础上,MindSpore协同Ascend处理器,在分布式集群上达到了接近线性加速比,ResNet50网络训练吞吐量提升两倍,Bert-Large网络训练吞吐量提升3.2倍。开发者可以方便地使用MindSpore实现在多计算单元上并行计算,既能大幅减少开发量以及开发难度,又能使性能持平甚至优于手动设置。在ReID网络上进行混合并行,脚本代码量从130行,直接变为1行,且加速比能达到88%以上

创新三:全场景协同全场景协同,智能匹配端、边、云多样设备

MindSpore 1.0提供模型自适应生成能力,通过平衡模型精度和设备资源约束,自动搜索匹配的模型,开发者只需要做一次训练,得到的模型就可以在端、边、云等多处部署,可保证生成的精度损失小于1%;对于已经部署的模型,MindSpore提供了轻量化的端侧学习能力,发挥私人数据的价值,持续提升模型精度,让智能设备越用越懂你。

在框架方面,为了多样化设备的资源约束,MindSpore可以做到KB到MB级的弹性伸缩,既可以部署到高端手机,又可以部署到手表等对资源要求极为苛刻的设备,从而满足全场景部署的需求。

图7 MindSpore全场景协同

三大黑科技加速AI模型训练

黑科技一:二阶优化算法

常见的深度学习优化算法多为一阶算法,是否存在高阶的优化算法能够在不损失精度的同时,加速模型的收敛呢?常规的二阶优化算法虽然收敛速度快,但二阶矩阵求逆时间复杂。 在深度学习模型中, 常常在数百万的量级,此时二阶信息矩阵的逆无法计算。

MindSpore自研二阶优化算法THOR通过减少二阶矩阵求逆次数以及降低二阶矩阵的维度来降低求逆时间,在Bert-Large上,使用MLPerf测试集,达到71.2%精度仅需3000step,端到端训练时间为14min,极大的提升了模型的训练速度。

图8 MindSpore 二阶优化效果

黑科技二:图算融合优化

人工智能发展至今,业务场景的复杂度仅靠单一的模型套数据,使用框架训练早已满足不了需求,开发者通常会基于模型进行二次开发,手动改写网络,实现算子等。在传统的手写算子中,效率难以达到统一标准,极大的影响了开发人员的实现效率和网络的训练时间。MindSpore图算融合优化是通过分析和优化现有网络计算图逻辑,对原有计算逻辑进行拆分、重组、融合等操作,以减少算子执行间隙的开销并且提升设备计算资源利用率,从而实现网络整体执行时间的优化。

在图算融合特性中,所有优化项均可以自动完成,在训练脚本中为context指定参数enable_graph_kernel=True从而启用图算融合,无需网络DSL感知。同时基于polyhedral技术实现融合算子编译,带来更加通用、高性能的算子融合能力。最后提供了自定义算子表达能力,相对更加易用,性能更高。

图9 MindSpore 图算融合流程图

黑科技三:轻量级神经网络推理框架MindSpore Lite

MindSpore Lite是MindSpore新发布的一个轻量级神经网络推理框架,它能大幅降低延迟,节省带宽,保护用户隐私,帮助开发者使能端侧及边缘侧AI能力。主要包含离线转换工具和轻量级运行时两部分。离线转换工具将MindSpore模型及第三方模型变得更小,运行更快;轻量级运行时可部署到智能手机、以及手表、耳机等资源受限(算力,存储,电量等)嵌入式设备。

在1.0版本中,模型转换工具支持直接在CPU+Windows环境上进行模型转换,支持多个session并行推理,以适应更多的使用场景,进一步加强了算子支持和性能优化,增强对CPU、GPU支持。

图10 MindSpore Lite架构图

三大行业案例推进AI落地应用

应用案例一:MindSpore助力分子动力学实现并行计算

分子动力学MD(Molecular Dynamics,下简称MD)模拟是一种计算机模拟方法,通过对分子、原子在在一定时间内运动状态的模拟,从而以动态观点考察系统所发生的物理及化学变化过程。传统分子动力学软件需要对手工处理并行(MPI)操作,并且在专用加速设备(如GPU)上运行需要单独编写对应代码,不同设备之间的迁移非常麻烦,存在精度和速度之间的矛盾。MindSpore的自动并行技术可以实现MD并行操作,运用TVM等技术实现代码在不同设备间的迁移,不仅简化了代码开发过程,而且能带来更快的计算速度和更高的计算精度。

应用案例二:MindSpore 助力Jina提供面向云原生的开源神经网络搜索能力

Jina.ai是由MindSpore技术治理委员会成员肖涵博士主导的初创公司,致力于提供面向云原生的开源神经网络搜索能力。目前Jina社区团队完成了MindSpore框架的初步对接支持,成为了首个对接MindSpore应用集成商。Jina+MindSpore提供了业界少有的完整开源解决方案。

应用案例三:MindSpore 服务HMS ML Kit 270+智能应用

MindSpore助力华为1+8+N战略,已经集成在了包括HMS ML Kit在内的多种端边云系统中,以MLKit为例,作为内置AI引擎,MindSpore Lite为超过270款智能应用提供服务,每天的调用次数达到1.18亿次。此外,MindSpore已经落地华为云,作为ModelArts内置的AI引擎,为广大开发者提供一站式全流程AI服务;当前包括华为内部用户,基于ModelArts提供900+实时在线推理服务,同时在训练集群稳定对外提供每天1100+次训练任务。

开源六个月,社区繁荣度持续增加

自开源以来,MindSpore汇聚了4.5w+开发者下载使用,1500+来自全球核心贡献者持续参与代码贡献;每月末的版本迭代,MindSpore都会发布1分钟特性视频,给大家从不同的角度科普版本技术亮点,播放量超30w+,官网访问量900w+;除了特性介绍的短视频外,MindSpore还针对初级开发者,与机器之心联合开展系列直播『轻松上手MindSpore』,收获3w+播放量,培养2500+活跃开发者;针对中级开发者开展了四期月末两日集训营,广受开发者好评,培养100+核心用户,为MindSpore技术生态贡献。

为了让全国各地的开发者能在当地汇聚在一起,共享AI前沿技术分享,2020年5月MSG正式启动开始,相继在深圳、杭州、苏州、上海、俄罗斯、印尼、新加坡等多个海内外城市开展活动,了解每位优秀开发者对开源生态独有的视角,享受与大咖们面对面交流的时刻。作为一个所有开发者都能参与的开源开放的社区,MSG成立的宗旨是希望能够帮助所有有志于在开源社区做出贡献,收获知识。

未来在MindSpore开源社区,华为会继续开展面向不同个层级的开发者的培训活动,培养出优秀开发者和布道师,让每一位想要了解MindSpore的开发者们都有机会体验MindSpore,让更多的人参与到开源中来,感受到开源的魅力,共建繁荣生态。