华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

摘要:针对企业AI开发应用中面临的痛点和难点,为大家带来从实践出发帮助企业构建成熟高效的AI开发流程解决方案。

在数字化转型浪潮席卷全球的今天,AI技术已经成为行业公认的升级重点,正在越来越多的领域为业务带来创新价值。随着行业AI落地逐步加速,企业在开发AI应用的过程中,经常会遇到准备不足、人才紧缺、开发成本高昂等问题,阻碍着AI的落地实践。

在2020年12月20日QCon全球软件开发大会 2020上海站上,华为云AI首席技术布道师陈亮携手四位华为AI领域博士,带来题为“全栈全场景AI应用开发实践”的专题分享。本场专题针对企业AI开发应用中面临的痛点和难点,从实践出发帮助企业构建成熟高效的AI开发流程。

本文主要总结自王俊博士与白小龙博士的分享内容。

MindSpore:端边云统一训练和推理的AI计算框架

首先,华为高级AI算法工程师王俊博士深度解析华为MindSpore AI计算框架。

在AI领域,AI计算框架扮演着一个非常核心的角色。过去八年多来,AI框架经历了三个阶段的发展:第一阶段主要奠定理论基础,第二阶段则引入了分布式训练、计算图、动态图等理念,TesnorFlow和PyTorch两大框架也是在这一阶段占据了行业主导地位。

如今AI框架的发展已经逐渐进入了第三阶段,但行业还在探索这一阶段的具体演变方向。归结起来,行业对AI框架的需求主要分为用户态、运行态和部署态三大层面。

用户态。这一层面主要决定用户的使用方式,具体分为动态图和静态图两种模式。静态图效率高,但是对开发者不够友好;动态图易编程,但底层性能会慢很多。用户希望能尽可能结合这两种模式各自的优势,这对框架而言是一个难题。

运行态。在这一层面,用户希望框架实现尽可能高的模型运行效率。如今,业界面对的一大难点就是切分模型实现分布式训练的具体方式。分布式训练的目标是充分利用大规模计算资源提升模型性能,但如何合理地切分模型,保证分布训练的效率是非常耗时耗力的工作,给模型的规模扩张带来了障碍。

部署态。模型部署的过程中,一方面用户希望算法可以很好地落地产生效果,另一方面却不希望用户数据出现隐私安全问题。因此框架需要在铺平落地道路的同时确保数据安全。

华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

针对上述需求,华为开发了MindSpore AI计算框架,通过诸多创新解决了传统框架未能解决的一系列难题。

面对用户态中动态图与静态图两种需求的矛盾,MindSpore引入了名为MindIR的图层中间表示形式。

IR(Intermediate Representation)是源代码于目标代码之间的翻译中介,好的IR有利于AI模型的编译优化和执行,是AI框架高效训练和推理的基础。MindIR选择的技术路线是Functional Graph IR,由ParameterNode、ValueNode和CNode组成有向无环图。在MindSpore自动微分时,MindIR会计算ParameterNode和CNode的梯度贡献,并返回最终ParameterNode的梯度,而不计算ValueNode的梯度。

MindIR可以将动态图或静态图编成IR表示,使开发者可以在开发过程结合动态图与静态图两种模式,根据需要随时切换使用。

华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

在运行态,为了帮助开发者从手动切分模型的繁重任务中解脱出来,MindSpore提供了自动并行方案。

这套方案不需要改变用户代码结构,用户启用方案后框架会自动搜索并行策略,之后切分算子,最后切分整图。

华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

框架基于自动规划方式来生成切分策略,过程中会尽量切除一些明显不可行的策略,最后生成整图的切分。整体策略的目标是最大化计算通信比,尽可能将更多的计算时间放在前向计算和反向计算,而非计算卡之间的通讯上面。切分策略也支持用户手动调整,手动自动两种方式可以结合使用。这套方案还支持优化器并行,最终能够显著降低分布式训练的额外内存开销。

出于进一步提升算法性能的目的,MindSpore还引入了二阶优化和图算融合策略。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspgwf.html