2018年10月,第三届华为全联接大会在上海开幕。会上华为发布了AI发展战略和全栈全场景AI解决方案。MindSpore是华为全栈全场景解决方案的重要组成部分。
华为全栈全场景AI解决方案如图2-1所示。
图2-1 华为全栈全场景AI解决方案
“全场景”是指从部署环境上看,华为AI解决方案全面支持公有云、私有云、消费终端、边缘计算和IoT行业终端5个应用场景。“全栈”是指从技术功能角度支持IP/芯片、芯片使能、框架和应用使能等全堆栈解决方案。
这里的IP不是指IP地址,而是IP核。IP核是指芯片中具有独立功能的电路模块的成熟设计。该电路模块的成熟设计凝聚着设计者的智慧,体现了设计者的知识产权,因此,芯片行业就用IP核来表示这种电路模块的成熟设计。
在华为AI解决方案中,“IP/芯片”层包括华为Ascend(昇腾)处理器的系列产品,具体如下。
① Ascend-Nano:适用于耳机电话等IoT设备使用场景的AI芯片。
② Ascend-Tiny和Ascend-Light:适用于智能手机的AI芯片。
③ Ascend-Mini:适用于笔记本电脑等算力需求更高的便携设备的AI芯片。
④ Ascend-Max:适用于云端数据运算处理的AI芯片。
在芯片使能层,华为针对 AI 场景推出了异构计算架构——CANN(神经网络计算架构)。该架构可以充分地发挥昇腾芯片的性能,提供芯片算子库和高度自动化的算子开发工具。使用CANN TBE(张量加速引擎)可以实现算子的开发。
在框架层,华为全栈全场景AI解决方案支持各种主流AI框架,包括TensorFlow、PyTorch、PaddlePaddle和MindSpore等。
应用使能层是一个机器学习PaaS(平台即服务),提供全流程服务、分层分级API、预集成解决方案和华为云AI平台ModelArts。目的是满足不同开发者的个性化需求,使AI的应用更加容易。
MindSpore框架的总体架构如图2-2所示。MindSpore框架具有多领域扩展、开发态友好、运行态高效、全场景部署和硬件多样化五大特性,具体介绍如下。
MindSpore提供了模型库ModelZoo、扩展库Extend和MindScience子系统,这些组件为MindSpore框架提供了在更多领域应用的能力。
MindExpression 子系统是 MindSpore 的前端表示层,其中包含 Python API、MindSpore IR(中间表示)和GHLO(计算图高阶优化)3个部分。Python API向开发者提供统一的模型训练、推理、导出接口,以及统一的数据处理、数据增强和格式转换接口;GHLO包含硬件无关的优化(如死代码消除等)、自动并行和自动微分等功能。MindSpore提供C/C++、Java等不同语言的API。另外,MindSpore 还提供了可视化的调试和调优工具MindInsight。
图2-2 MindSpore框架的总体架构
MindSpore的运行层包括MindData、MindCompiler这2个子系统,可以实现高效的数据处理和全栈协同优化。MindArmour是AI安全子系统,可以保障MindSpore应用的安全运行。
MindRT子系统是MindSpore的全场景运行时系统,包括云侧、主机侧运行时系统,以及端侧和更小IoT的轻量化运行时系统。同样,MindArmour子系统可以保障MindSpore在云、边、端全场景的安全运行。
MindSpore框架支持CPU、GPU和NPU三大硬件平台。