省赛初赛(AI)

本人系第九届华为ICT大赛实践赛云赛道选手,曾包揽省赛、中国总决赛及全球总决赛三项一等奖,并持有HCIE-Cloud Service认证。现通过本平台分享备赛经验与参赛心得,供各位同学参考。文中所述内容若有疏漏之处,恳请各位不吝指正,在此先行致谢!(建议首先阅读专栏首篇文章——【备赛指南】华为ICT大赛 实践赛 云赛道01,之后再逐步阅读后续内容)

十、华为全栈全场景AI解决方案

(1) Full Stack全栈

ModelArts,应用使能,提供全流程服务,分层API和预集成方案

MindSpore,支持端、边、云独立的和协同的统一训练和推理框架

提供自动化并行能力,只需简单几行描述就让算法跑到上千AI运算节点

框架结构支持可大可小,适应全场景独立部署。支持Ascend芯片,也支持GPUCPU等处理器

CAAN,芯片算子库和高度自动化算子开发工具

能优化开发效率,提供深度优化的通用算子库丰富API接口,算子融合,最佳匹配Ascend芯片

Fusion Engine融合引擎、TBE算子开发工具、CCE算子库、CCE Compiler编译

Ascend,基于统计、可扩展架构的系列化AI IP和芯片

(2) All Scenarios全场景:包括公有云、私有云、各种边缘计算、物联网行业终端以及消费类终端等的部署场景

Atlas,基于AscendAI芯片,通过丰富的产品形态,打造端、边、云全场景AI方案

十一、MindSpore

MindSpore架构

(1) ME模块(Mind Expression):作为接口层(python),将用户的原生代码转换成MindSpore中计算图形式,且进行代码优化【前端表达】

1. 易用性:全自动可微分编程,原生数学表达

①Auto Diff算子级自动微分

②Auto parallel自动并行化

③Auto Tensor算子自动生成

④Semi-Auto Labeling半自动化数据标注

(2) 原生代码有不合理或冗余的地方,可以在ME模块和GE模块得到解决

(3) GE模块(Graph Engine):作为图编辑和图执行层,根据ME模块编译好的计算图,完成硬件优化。如算子融合、芯片中内存的共用和分配【图引擎】

1. 高性能:软硬件协同优化,全场景应用

①跨层内存复用

②深度图优化

③On-device执行

④端边云协同统一部署(含在线编辑)

2. GE模块通过Graph IR模块向上对接第三方框架,包括前端的对接和推理模型对接

CCE模块向上对接第三方框架如TensorFlow或者caffe

3. GE模块向下对接TBE模块CCE模块,它们都负责算子的开发和管理

CCE模块向下对接华为自研昇腾芯片

MindSpore向下也可以通过CUDA对接第三方芯片

MindSpore核心架构

(1) 友好开发态:AI算法即代码

全场景统一API

(GPU或Ascend训练出来的模型)部署到端、边(若算力不足需要量化处理,精简神经网络。端、边侧数据传回云端,让云端再训练模型)

自动微分

TensorFlow基于图,而非python原生编程。权重的正向传播和反向求导都基于计算图。控制流和高阶导表示复杂

Pytorch无图形式,需要记录正向和反向过程。这个技术需要独立功能模块记录需要定制开发,所以反向性能不易优化。是基于python算子和模块的方式

MindSpore更细粒度自动微分,实现起来效率更高,基于python接口

自动并行:针对大规模模型有效,将用户的代码转换成计算图之后,能对计算图执行高效地自动混合并行,算力平滑扩展

超大模型实现高效分布式训练的挑战:NLP领域模型越来越大,Bert(340M)/GPT-2(1542M)等超大模型训练内存开销超单卡容量,需要把模型分到多卡执行。如果采用手动模型并行,需要设计模型切分,感知集群拓扑,开发难度高;难以保证高性能,难以调优

MindSpore支持自动整图切分,融入数据并行与模型并行

自动调优

(2) 高效运行态:面向Ascend优化,支持GPU

MindSpore IR计算图表达

On-Device执行:指的是整图下沉执行,下沉到芯片,充分发挥昇腾最大算力

挑战:代码有一大部分在主机CPU和芯片GPU调试,如果不进行下沉就会涉及到大量的主机和芯片交互进行数据交换过程

MindSpore支持On-Device将整个计算图下沉到芯片,实现“数据-计算-通信”的最大化并行。会把计算图全部加载到芯片,同时在芯片上进行

超强芯片算力下分布式梯度聚合的挑战:会先计算梯度,再收集梯度,最后更新梯度。三个步骤是串行

MindSpore采用去中心化方式,环形方式,当节点计算完梯度可以自主决定是否需要更新梯度,不需要再等待上一层的决策

Pipeline并行

深度图优化

(3) 灵活部署态:全场景按需协同

端-边-云按需协作分布式架构(部署、调优、通信等)

挑战:硬件架构多样性导致全场景下部署的差异性和性能不确定性

MindSpore使用统一模型IR带来一致性的部署体验;使用软硬协同的图优化技术屏蔽场景差异使用端云协同Federal Meta Learning打破端云界限,多设备协同模型实时更新

(4) 多领域扩展

(5) 多样式硬件

Mindspore层次结构

Mindspore向用户提供了3个不同层次的API,支撑用户进行AI应用(算法/模型)开发

Low-Level API:定义张量、实现基础算子

Medium-Level API:构建神经网络的封装、损失函数、优化器

High-Level API:训练推理管理、调试调优

MindSpore特性

开发门槛高 -> 新编程范式:希望达到AI算法即代码,降低开发门槛,实现1行代码自动并行、高效自动微分、1行代码完成调试和运行切换

运行成本高 -> 新执行模式:解决运行成本高问题,它将整个计算图切分为子图,再下沉到芯片。实现对计算图优化、自动并行、跨层内存复用、软硬协同减少host主机与昇腾Ascend芯片交互开销

部署时间长 -> 新协作方式:解决部署时间长,实现一次开发多次部署、全场景按需协同部署、端边云应用场景部署

MindSpore环境搭建

(1) 源码编译安装

昇腾环境:pip install -y mindspore-cpu

CPU环境:pip install -y mindspore-d

(2) 安装包直接安装

Mindspore组件

(1) ME模块

(1)model_zoo:网络模型的定义,里面有很多预置的模型库

(2)communication:加载数据

(3)dataset:数据的处理和读取

(4)common:Tensor、Parameter、dtype、initializer的定义

(5)context:设置模型的运行参数

(6)akg:自动微分和自定义算子库

(7)nn:Mindspore cell神经网络单元、损失函数、优化器的定义

· Cell里面包含了场景的损失函数和优化器等

(8)ops:基本算子定义和反向算子注册

(9)train:训练模型的方法

(10)utils:进行参数校验

(2) Mindspore的数据存储同样是tensor,下面是基于tensor的操作

asnumpy()、size()、dim()、dtype()、set_dtype()、tensor_add(other:Tensor)、tensor_mul(other:Tensor)、shape()、_str_转化为字符串

(3) Operation操作

(1)array:Array相关的算子

(2)math:数学计算相关的算子

(3)nn:网络类算子

(4)control:控制类算子

(5)random:随机数相关算子

(4) MindsporeIR:MSIR基于计算图的模块,可以用来表示自由遍历、高阶函数、递归等

Mindspore开发案例

①数据:数据加载、数据增强

②网络:网络定义、权值初始化、网络执行

③模型:损失函数、优化器、训练迭代、模型评价

④应用:模型保存、加载预测、finetuning

Mindspore全场景支持模式

(1) ModelZoo模型库

(2) Mindspore Devkit开发套件

(3) Mindspore Extend高阶扩展库

(4) MindSpore训练和验证

①Mindspore Hub预训练模型:下载模型到MindIR

②- 模型导出 > MindIR端云统一IR:一次训练一次编译到处运行

(1)Mindspore Serving云侧推理

(2)Mindspore Lite端侧推理

(3)端边增量学习Fine-tuning训练等、

(5) Mindspore Insight可视化:调试调优

①是Mindspore的可视化调试调优工具。利用MindInsight,可以可视化地查看训练过程、优化模型性能、调试精度问题

②还可以通过MindInsight提供的命令行方便地搜索超参,迁移模型

(6) Mindspore Data数据:数据处理

(7) Mindspore ArmourAI安全:安全机制

Mindspore组件

(1) Mindspore推理部署流程:Mindspore训练 -> 模型文件

Mindspore Serving在线推理【Ascned、GPU】

(1)基于gRPC接口访问Serving服务

(2)基于RESTful接口访问Serving服务

(3)Serving的Servable提供推理服务

Mindspore Lite离线推理(模型离线优化 -> 推理:需要使用convert工具对模型进行离线优化)【IOT、CPU、NNIE、Ascend、GPU】

(1)为用户提供端到端的解决方案,帮助用户使能AI服务

(2)该组件分为离线模块在线模块两个部分

(2) Mindspore Vision:是一个开源的基于Mindspore框架的计算机视觉研究工具箱,工具所涉及的任务包括分类、检测、视频、3D

(3) Mindspore Reinforcement:是一个开源的强化学习框架,支持使用强化学习算法对agent进行分布式训练

(4) Mindspore Federated联邦学习是一种加密的分布式机器学习技术,(因为每个开发团队数据不同,让这些数据聚合能让模型更好),其支持机器学习的各参与方在不直接共享本地数据的前提下,共建AI模型

(5) MindQuantum:Mindspore开源深度学习框架和HiQ量子计算云平台开发的通用量子计算框架,支持多种量子神经网络的训练和推理

(6) Mindspore Probability:Mindspore概率编程提供了贝叶斯学习和深度学习“无缝”融合的框架,皆在为用户提供完善的概率学习库,用于建立概率模型和应用贝叶斯定理

(7) Mindspore Golden Stick:模型压缩算法集

Mindspore框架基础

(1) 张量

张量的定义:一个多维数组,可以存放数据,数据说明维度即张量说明维度,是数据的载体。Mindspore中最基础的数据结构张量tensor,所有数据封装在tensor中

零阶张量:标量;一阶张量:向量;二阶张量:矩阵

(2) Mindspore的数据类型

Mindspore支持IntUnitFloat等数据类型

Mindspore兼容numpyPython的数据类型

(3) 代码

mindspore.Tensor:创建张量(这是类,需要给它传入参数。一组数据决定维度也可以指定维度没有数据)

mindspore.dtype:指定数据类型

mindspore.dtype_to_nptype:数据类型转换;mindspore.dtype_to_pytype:数据类型转换

mindspore.context.set_context:设置运行环境的context;mindspore.context.get_context:根据输入Key获取context属性值

mindspore.context.ParallelMode:并行模式

mindspore.context.set_ps_context:设置参数服务器训练模式的上下文

⑦Mindspore运行环境配置

Mindspore运行时需要指定运行时的具体环境参数,包括计算图的模式、运行时的设备、内存空间大小等,同时也可以使用API获取当前运行环境的具体信息。mindspore.context

mindspore.context用于配置当前执行环境,包括执行模式、执行后端和其他特性开关:参数mindspore.context.set_context(**kwargs)

(1)device_id目标设备的ID,取值范围【0,4096-1】,默认为0

(2)device_target待运行的目标设备,取值范围为Ascend、GPU、CPU

(3)mode运行模式选择,默认值为GRAPH_MODE静态图(GRAPH_MODE/0或PYNATIVE_MODE/1)

(4)enable_sparse是否启用稀疏特征,默认值Flase

(5)sava_graphs是否保存计算图,默认值Flase

(6)runtime_num_threads运行时线程池的线程数控制,默认值为30

⑧Mindspore数据处理模块

mindspore.dataset该模块提供加载和处理各种通用数据集的API,也支持加载业界标准格式的数据集,包括MindRecord、TFRecord、Manifest等。还可以使用自己的数据集

还提供针对语音、文本、图像等数据的数据增强功能

MindRecord:在AI训练过程中,会涉及大量的训练数据,会对数据进行频繁的读取操作,涉及高频IO操作,比较耗时

MindRecord将我们所有数据进行序列号,并存储在·一组可线程读取的文件中,不用频繁对每个文件进行IO

mindspore.mindrecord模块提供一些方法将不同数据集转换为MindRecord格式,也提供一些操作Mindrecord数据文件的方法如读取、写入、检索等

⑩Mindspore神经网络模块

mindspore.nn用于构建神经网络中的预定义模块或计算单元,该模块还包含了(封装)构建神经网络的组件

(1)RNN、CNN、LSTM等网络结构

(2)MSELoss、SoftmaxCrossEntropyWithLogits等损失函数

(3)Momentum、Adam等优化器

(4)FI Score、AUC等模型评价指标

mindspore.Model模型训练或推理的高阶接口

回调函数Callback

回调函数Callback本身不是函数,而是一个类。可以使用回调函数来观察训练过程中网络内部的状态和相关信息,或在特定时期执行特定动作。例如监控loss、保存模型参数、动态调整参数、提前终止训练任务等

Mindspore框架提供Callback类,也支持用户自定义Callback:

(1)mindspore.ModelCheckpoint

(2)mindspore.LossMonitor

(3)mindspore.SummaryColletcor

(4) 推理-模型文件:Mindspore可以基于训练好的模型在不同的硬件平台上执行推理任务。模型推理文件保存支持两者类型的数据

训练参数:指Checkpoint格式文件,使用时需要先搭建模型

Checkpotin格式用于训练任务中断后恢复训练,或训练后的微调Fine Tune任务

网络模型:包括MindIR、AIR、ONNX三种格式文件

(1)MindIR格式消除不同后端的模型差异,一般用于跨硬件平台执行推理任务

· MindIR中间表示(IR)是程序编程过程中介于源语言和目标语言之间的程序表示,以便编译器进行程序分析和优化(假设有一段Python代码交给底层硬件执行,而硬件看不懂)

· Mindspore使用的是一种基于图表示的函数式IR,即MindIR。其最核心的目的是服务于自动微分变换,采用了接近于ANF函数式的语义【借助于MindIR,可以帮助实现一次训练多处部署,实现端云互通】

(2)AIR格式更好地适应华为AI处理器,一般用于Ascend 310上执行推理任务

(3)ONNX格式一般用于不同框架间模型迁移或在推理引擎(TensorRT)上使用

Mindspore特性

(1) 静态图:ax+b计算过程,需要先定义a再定义b,紧接着输入x与a相乘,结果与b相加,这个流程我们会构建一幅图。我们要将数据导入图才会开始计算,计算完成后才能看结果和值。在调试上比较困难但效率比较高。适用于训练完模型以后,对模型进行部署推理所使用

在Mindspore中,静态图又称为Graph模式

①通过set_context(mode=GRAPH_MODE)默认模式设置为静态图模式

②也可以使用@ms_function装饰器来调用Graph模式,对局部函数

Graph模式下,Mindspore通过源码转换的方式,将Python的源码转换成IR(MindIR),再在此基础上对计算图优化,最终在硬件设备上执行优化后的图

(2) 动态图:实时查看每个节点输出,有助于对代码Debug调试

在Mindspore中,动态图又称PyNative模式

①通过set_context(mode=PYNATIVE_MODE)设置为动态图模式

PyNative模式下,用户可以使用完整的PythonAPI,动态图没有事先构建好完整计算图,框架或底层也没有对它做优化,效率不如静态图

(3) 动静统一:Mindspore针对动态图和静态图模式,使用相同API

(4) 异构并行训练:将计算图切分,将内存消耗型子图交给CPU运算,将计算密集型子图交给Ascend计算。Ascend和CPU并行执行

AI应用开发流程

(1) 需求分析:解决说明问题如分类、回归、聚类等,使用什么编程语言

ResNet50图像分类应用,图像分类是最基础的计算机视觉应用CV,属于有监督学习类别

(2) 环境搭建:Mindspore安装,云环境使用

选择mindspore云环境ModelArts进行开发、模型训练或部署

(3) 数据准备:数据获取,数据预处理

训练数据使用的是花卉数据集,是开源数据集,分成训练集和测试集:因为是开源数据集,有人维护不需要做数据清洗

数据预处理:会对数据做数据增强、标准化等操作,定义函数read_dataset来读取和处理数据,要包含以下功能:

(1)读取数据集

(2)定义进行数据增强和处理所需要的一些参数

(3)根据参数,生成对应的数据增强操作

(4)使用map映射函数,将数据操作应用到数据集

(5)对生成的数据集处理

(6)对处理好的数据集进行样例展示

数据集处理API介绍:

(1)mindspore.dataset:提供了加载和处理各种通用数据集的API

(2)mindspore.dataset.vision:用于图像数据增强

(3)mindspore.dataset.txt:用于文本数据增强

(4)mindspore.dataset.audio:用于音频数据增强

(5)mindspore.dataset.transforms:通用数据增强模块

(4)  构建网络:超参数定义,构建模型结构

定义超参数,目的是为了让模型学习到最佳的参数。如CIFAR10的均值、自定义的标准差、图像增强resize最小值、批次大小、分类类别、训练次数

ResNet网络介绍:残差网络结构是ResNet网络的主要亮点,ResNet使用残差网络结构后可有效地减轻退化问题,实现更深的网络结构设计

· 普通深度学习网络最大的问题就是梯度消失网络退化,网络越深往往更有可能退化

网络结构API介绍:

mindspore.nn神经网络cell,用于构建神经网络中的预定义构建块或计算单元

(1)mindspore.nn.Cell,Mindspore的Cell类,是构建所有网络的基类,也是网络的基本单元

(2)mindspore.nn.LossBase,损失函数的基类

mindspore.nn.Dense(in_channels,out_channels,weight_init='normal',bias_init='zeros',has_bias=True,activation=None)全连接层【全连接神经网络】

(1)in_channels(int):Dense层输入Tensor的空间维度

(2)out_channels(int):Dense输出Tensor的空间维度

(3)weight_init:权重参数的初始化方法

mindspore.nn.Conv2d:(in_channels,out_channels,kernel_size,stride=1,pad_mode='same',padding=0,dilation=1,group=1,has_bias=False,weight_init="normal",bias_init="zeros",data_format="NCHW")二维卷积层【二维卷积神经网络】

(1)kernel_size:指定二维卷积核的高度和宽度

(2)stride二维卷积核的移动步长

(3)pod_mode指定填充模式。可选值same(默认)、valid、pad

mindspore.nn.MaxPool2d(kernel_size=1,stride=1,pad_mode='valid',data_format='NCHW')二维最大池化层

mindspore.nn.RNN(*args,**kwargs)循环神经网络(RNN)层,其使用的激活函数是tanhrelu

(1)input_size(int):输入层输入的特征向量维度

(2)hidden_size(int):隐藏层输入的特征向量维度

(3)num_layers(int):堆叠RNN的层数,默认值为1

mindspore.nn.Dropout(keep_prob=0.5,dtype=mstype.float32)正则化

根据丢弃概率1-keep_prob在训练过程随机将一些神经元输出设置为0(丢弃)

keep_prob(float):输入神经元保留率,数值范围0到1之间

mindspore.nn.ReLU修正线性单元激活函数

mindspore.nn.Softmax(axis=-1)Softmax激活函数

axis:指定Softmax运算的轴axis

(5) 模型训练:训练模型,保存模型,模型测试

①训练模型

分类:

(1)直接基于自身训练集从零开始训练,适用于自身数据量较多,且训练资源充足的情况

(2)基于一个训练好的模型,在自身数据集上进行微调训练,适用于数据量较少的情况

调试:训练时开源通过调整不同的超参数组合

训练API介绍:mindspore.Model(network,loss_fn=None,optimizer=None,metrics=None,eval_network=None,eval_indexes=None,amp_level='"00",boost_level="00",**kwargs):Model会根据用户传入的参数封装可训练或推理的实例

(1)network(Cell):用于训练或推理的神经网络

(2)loss_fn(Cell):损失函数,分类任务开源指定交叉熵

(3)optimizer(Cell):用于更新网络权重的优化器

(4)metrics(Union[dict,set]):用于模型评估的一组评价函数

②模型保存与加载

在训练完网络后,将网络模型以文件的形式保存下来。保存模型的接口有两种:

(1)简单对网络模型进行保存,可以在训练前后进行保存:save_checkpoint只会保存权重参数,不会保存整个模型

(2)在网络模型训练中进行保存,借助回调函数Callback,自动保存训练时设定好的epoch数(轮)和step数(步)的参数,也就是把模型训练过程中产生的中间权重参数也保存下来,方便进行网络微调和停止训练【边训练边保存】

③模型加载与预测

训练完成直接调用model.predice对测试数据进行测试推理

加载权重文件后进行预测:要加载模型权重,需要先创建相同模型的实例,然后使用load_checkpointload_param_into_net方法加载参数

(1)load_checkpoint:会把参数文件中的网络参数加载到字典param_dict(记录每一层网络对应的参数)

(2)load_param_into_net:会把字典param_dict中的参数加载到网络或优化器中,加载后,网络中的参数就是checkpoint保存的

(6) 应用部署:模型部署,模型预测

①移动端部署

将CKPT文件转化为MindIR文件格式,再转换成Android手机上MindSpore Lite可识别文件

在手机侧部署应用APK,即下载一个MindSpore Vision套件Android APK

最后将ms模型文件导入到手机侧

②云端部署

通过Mindspore Serving部署在云服务中

基于ModelArts快速部署在云端,模型保存在OBS

③边缘设备部署

基于AscendCL(框架)、Atlas计算平台实现部署

十二、AI芯片定义与业务应用分类

AI芯片,也称AI加速器,专门处理人工智能应用中大量计算任务的功能模块,主要是矩阵运算,提供算力

(1) 训练芯片(性能更强)

(2) 推理芯片

十三、AI芯片分类以及现状

(1) CPU,中央处理器,主要做逻辑运算而AI需要矩阵运算,速度和能耗比不理想

①提高CPU峰值性能,但因“摩尔定律”已快失效

②采用多核方式提高处理速度,但成本变高、芯片面积变大、功率变大

增加指令集,防止以前软件不兼容,在现有基础上增加

起频,提升频率提高性能,导致芯片功率过高和发热

【处理AI任务不理想】

(2) GPU,图像处理器,主要做图像任务会使用矩阵来存储图像,所以处理AI任务更理想

①丰富生态,针对AI推出CUDNN库,可以更快卷积运算

②增加多数据类型支持,牺牲高精度来提高速度

③添加专用模块提高AI算力,如引入张量核

【成本高,能耗比低,延迟高】

(3) ASIC,专用集成电路,主要做特定任务有优势,单一用途,通用性低

TPU

①谷歌基于ASIC发明,能支撑Tensorflow的人工智能定制芯片TPU

②采用了脉动阵列优化卷积运算和矩阵乘法,提高算力还降低能耗

【只能做AI芯片,没有其他用途】

(4) FPGA,现场可编程门阵列,可以对硬件编程使其实现“逻辑运算效率高”或“矩阵算法效率高”

①在一定程度上可以当作专用芯片,性能优于GPU

【门槛高,不断修改性能也达不到最优】

(5) NPU,神经网络处理器,在电路层模拟人类神经元和突触,并由深度学习指令集处理,一条指令完成一组神经元的处理【Ascend

十四、CPU和GPU对比

(1) CPU

①具有很强的通用性来处理不同数据类型,同时需要有一个控制单元进行逻辑判断

数据之间有依赖关系,有专门处理串行处理的核心

ALU并行计算很少,但有很多chche缓存,单个计算能力强【擅于逻辑控制、串行运算】

(2) GPU

①面对类型高度统一

②相互没有依赖的大规模数据

③不需打断的纯净计算环境

④具有很多ALU并行计算很少cache缓存,所以缓存合并访问DRAM内存时存在时延问题【擅于计算密集和易于并行的程序】

十五、Ascend芯片

Ascend芯片分类

(1) Ascend310推理芯片,用于使用模型部署,功耗更低

(2) Ascend910训练芯片,用于训练构建模型,速度更快、算力更高

Ascend芯片主要架构组成

(1) 芯片套芯片,有一个负责控制的CPU

(2) AI计算引擎:①AI CPU,负责执行和通用计算 ②AI Core,达芬奇架构,负责矩阵卷积计算

AI Core达芬奇架构组成部分:

· 计算单元:包括矩阵计算单元、向量计算单元、标量计算单元

矩阵计算单元:由矩阵计算单元和累加器完成矩阵计算。一拍则完成,而CPU需要遍历

向量计算单元:完成向量和标量运算

标量计算单元:相当于微型CPU,控制整个AI Core运行,同时完成基本的与标量相关计算

· 存储系统:片上存储单元和相应的数据通路

①片上存储单元的组成部分:

(1)存储控制单元:控制从内存或缓存中读数据,还设置了存储转换单元做简单的数据处理

(2)缓冲器:存储中间数据,减少从外部读取数据,提高计算效率

(3)寄存器:存储数据地址供标量计算单元使用

数据通路:指AI Core完成一次计算任务时数据流经的路径。达芬奇架构数据通路特点是多进单出,适应卷积网络,节约芯片硬件资源

· 控制单元:提供指令控制,负责调度和整个AI Core运行

系统控制模块:控制AI Core最小计算任务粒度任务块的执行过程,在任务执行完成后,系统控制模块会进行中断处理和状态申报。如果执行过程出错,会报告给任务调度器

指令缓存:提取预取后续指令,一次读入多条指令进入缓存以提升执行效率

标量指令处理队列:矩阵计算指令、向量计算指令、存储转换指令会被解码导入标量队列,实现地址解码和运算控制

指令发射模块:读取标量指令处理队列中配置好的指令地址和参数解码,根据指令类型分别发送到相应的指令执行队列,而标量指令会驻留在标量指令处理队列

指令执行队列:由矩阵运算队列、向量运算队列、存储转换队列组成,不同指令进入相应运算队列,按顺序执行

事件同步模块:有些数据计算具有依赖关系,不能并行计算,需要事件同步模块分析依赖关系

达芬奇核优势:有专门处理矩阵运算、向量运算、标量运算的三个队列,同时处理器中还有一块ARM的CPU

(3) 多层级的片上系统缓存cache缓冲区Buffer,用来降低时延

(4) 数字视觉预处理模块DVPP,把传进来的数据处理为标准数据统一类型

Ascend芯片软件栈架构

①L3使能层:(1)计算机视觉引擎:提供视频或图像处理的算法封装。(2)语言文字引擎:自然语言处理和语音处理,提供语音、文本等数据的基础处理算法封装。(3)通用业务执行引擎:提供通用的神经网络推理能力。(4)其他

应用级封装,针对计算机视觉、自然语言处理、语音处理。L3层可以直接使用L2层框架能力

②L2执行层:离线模型生成器、AI模型管家、离线模型执行器、流程编排器(前三者是框架管理器)

框架调用能力离线模型生成能力的封装,L2层会分析任务选择计算框架,生成一个网络模型再转换为离线模型,而离线模型可以直接利用Ascend芯片做推理任务

③L1芯片使能:数字视觉预处理模块、张量加速引擎、运行管理器、驱动、任务调度器

负责把离线模型和Ascend芯片连接,做任务分配。离线模型中有很多算法,L1层通过加速库Library来高效实现这些算法,还支持自定义算法。L1层最接近底层计算资源

④L0计算资源:OS(Linux、Android、EulerOS、LiteOS)、AI CPU、AI Core、DVPP专用硬件

偏硬件系统,提供计算资源

工具链:工程管理、编译调测、流程编排、离线模型转换、比对工具、日志管理、性能分析工具、自定义算子、黑匣子工具

Ascend芯片神经网络软件流

是实现深度学习框架到Ascend芯片之间的桥梁,完成一个神经网络应用的实现和执行

(1) 数字视觉预处理模块DVPP:专门处理视觉任务,在输入前进行一次数据处理和修饰,可以统一图像大小,对数据增强

(2) 张量加速引擎:提供算子,让Ascend芯片完成算法

(3) 框架管理器:把神经网络模型转换为Ascend芯片支持的形态,其他其他计算框架训练出的模型也可以高效运行在Ascend芯片上

(4) 运行管理器和任务调度器:分配和调度各种资源,实现任务高效运行

十六、Atlas

Atlas人工智能计算平台全景

(1) 应用使能

①Atlas智能边缘平台:行业SDK/容器引擎/基础服务仓

②Atlas深度学习平台:集群管理/模型管理/数据预处理

(2) 框架

MindSpore

②Tensorflow、Pytorch、Caffe、MxNet、Framework Adapret

AscendCL

(3) CANN

①Graph Engine图优化

②算子库/加速库/通信库(BLAS、FFT、DNN、Rand、Solver、Sparse、HCCL)

③Runtime

④Driver

(4) 芯片&硬件

推理,搭载Ascend310:Atlas200、Atlas200开发者套件、Atlas300推理卡、Atlas500、Atlas800推理服务器

· 赋予终端设备智能7倍性能提升:

(1)Atlas200AI加速模块,需要自己设计底板

(2)Atlas200DKAI开发者套件,只需一台PC机就能应用开发

· 业界最高密度64路视频推理:Atlas300AI加速卡,型号3000,直接插在PC机显卡中

· 边缘智能和边云协同:Atlas500智能小站,型号3000,用于无线连接将实时推理结果上传到服务器

· 超强算力的AI推理平台,适合高密度推理场景:Atlas800AI服务器,型号3000,基于鲲鹏处理器,最大插8张Atlas300加速卡。型号3010,基于Inter处理器,最大插7张Atlas300加速卡/NVIDIA T4加速卡

训练,搭载Ascend910:Atlas300训练卡、Atlas800训练服务器、Atlas900

· 算力最强训练卡,Atlas300AI加速卡,型号9000

· 算力最强训练服务器,Atlas800AI服务器,型号9000/9010

· 全球最快的AI训练集群,Atlas900AI集群

十七、EI

华为云EI服务定义

基于AI和大数据技术,通过云服务方式(公有云、专属云),提供一个平台,结合产业场景,使能企业应用系统能看、听、说,具备分析和理解图片、视频、语言、文本等能力,加速业务发展

华为云EI服务特点

行业智慧:深刻理解行业痛点

行业数据:EI为数据经过处理、挖掘并创造大量价值

算法:丰富的算法库、模型库,提供通用AI服务和一站式开发平台

算力:聚变最强、最经济AI算力

EI智能体

对于某行业的一套解决方案称为智能体,如交通智能体

EI基础平台

(1) ModelArts:一站式AI开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成、端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期AI工作流【更高效更方便开发模型,可以在本机上训练模型,ModelArts实现算力】

1. ModelArts全周期AI工作流(可视化全流程管理:可以看到不同迭代版本,过程可追溯)

(1)数据

(2)AI数据框架:高效筛选和半自动化标注,数据预处理,效率提升100倍

(3)算法开发:提供开箱即用的主流框架开发环境。提供MoXing库简化模型开发。预置模型算法提升开发效率

(4)训练:分布式集群加速,训练时长从周到分钟。自动学习全程UI向导,零编码,零AI基础快速训练模型

(5)部署:端边云一键部署,支持各种上线场景,支持Ascend推理

(6)市场:AI共享平台帮助企业轻松构建内外部AI生态

(7)AI应用

2. ModelArts功能介绍

(1)数据治理:管理数据、标注数据、图形化页面展示

(2)极快极简模型训练:自研MoXing框架,更高效易用,只要数据上传到华为云就能被调用,大幅提升训练速度

(3)云边端多场景部署:在云上搭建模型可以快速部署到端侧,还可以配置API接口在端侧调用云端模型

(4)自动学习:支持多种模型自动训练,不需要编写代码就能实现一键部署

(5)可视化工作流:使用图引擎服务GES,自动实现工作流和版本演进关系的可视化

(6)AI市场:有很多模型可以借鉴交流

3. ModelArts的应用

(1)数据(用户准备)

(2)数据准备(三大场景分别为图像、语音、文字,七种标注类型)

(3)模型构建(即开即用,在线开发,强大计算力加速开发,底层是Ascend芯片)

(4)模型部署(高吞吐、低时延,批量推理,与HiLens结合,轻松部署到端)

(5)应用

4. ModelArts产品优势

(1)一站式:开箱即用的平台

(2)易上手:具备自动学习能力

(3)高性能:框架性能优化,底层Ascend芯片提供平台算力

(4)灵活性:支持Tensorflow等主流开发框架,芯片也支持GPU、Ascend

5. ModelArts开发AI应用的流程

数据处理:数据采集、数据筛选、数据标注、版本管理公、共数据集、特征工程、数据评估

在线标注

· 支持多种数据标注

(1)物体(图像分类、物体检测)

(2)音频(声音分类、语音内容、语音分割)

(3)文本(文本分类、命名实体文本三元组)

· 支持团队标注:一个标注任务,可以团队多成员标注

· 流程:创建标注任务 -> 在线标注界面 -> 团队标注任务

数据处理,基于半监督/主动学习的混合智能标注

数据特征挖掘

(1)标注特征:标注框数量、标注框尺寸、标注框横纵比

(2)图像质量特征:饱和度、亮度、模糊度

(3)图像全局属性:分辨率、复杂度、色彩

模型训练:在线编码、PC端开发环境、常用AI框架、预置算法、超参搜索、分布式集群、模型可视化、自动学习、多元网络搜索

ExeML引擎,上传并标注数据 -> 训练模型 -> 验证并发布模型

模型训练,提供预置算法进行迁移学习,简化模型创建。丰富的订阅算法,所有模型已基于开源或行业数据集训练完毕实现精度和速度优化

(1)仅需配置数据和日志输出路径

(2)使用预置模型进行迁移学习

(3)自动超参调优

(4)自动模型压缩(量化、修剪)

(5)零编码模型训练优化

交互式Notebook建模,支持Python建模语言

(1)支持多种资源类型和规格灵活选择:CPU/GPU/Ascend

(2)支持自动停止,用户可自定义配置停止时间

(3)内置TensorFlow,Pytorch, spark Mlib,scikit-Learn,XGBoost等AI引擎库,并且支持用户自行安装更多算法库(pip install)

内导配置式训练(训练数据 训练代码 -> 向导式一键训练)

· 选择训练算法

(1)选择预制算法导入

(2)选择常用框架(比如TF、Pytorch等)

(3)自定义镜像创建训练作业

· 选择数据集

(1)数据集以及对应版本

(2)数据存储位置

· 训练超参配置

(1)训练输出路径,用于保存模型或者ckpt

(2)运行态参数,比如lr等

(3)作业日志存储位置

· 训练资源选择

(1)选择资源池,CPU/GPU/NPU等

(2)选择计算节点数(单机、分布式)

· 启动训练

模型管理:模型库、模型溯源、精度跟踪、模型评估

模型训练过程可评估和监控

(1)支持查看训练详情信息,服务资源消耗情况,配置信息,日志,资源占用,模型评估,TensorBoard可视化,版本比对等

(2)具备功能:训练日志、资源占用、可视化作业、参数模板、配置信息、评估结果、版本比对、模型溯源

部署:在线服务、批量服务、边缘服务、在线难例挖掘

端、边、云全场景AI模型部署

· 在线服务

(1)高吞吐、低延迟、自动伸缩

(2)推理优化

· 批量推理

(1)大批量数据推理

(2)高效分布式计算

· 边缘推理

(1)深度集成IEF,支持华为Ascend Al芯片

(2)支持华为SDC、HiLens Kit、Atlas 500等

AI市场:模型交易、API交易、数据集交易、开发过程共享、镜像共享

6. 自动驾驶

(2) HiLens端云协同多模态AI开发应用平台,由端侧计算设备云上平台组成,提供开发框架、开发环境、管理平台等能力,帮助用户开发多模态AI应用并下发到端侧设备实现多场景的智能化解决方案

云侧

(1)多模态技能HiLens AI Skills(视频、图像、语音)

(2)开发框架(接入、数据处理、模型管理、资源管理、日志管理、输出)

(3)开发环境(IDE、一键调试、模拟器、一键发布)

(4)管理平台(模型管理、技能开发、技能市场、设备管理)

端侧(把产生的模型算法应用到实际当中)

(1)在线部署(HiLens Kit、智能小站、Ascend310+Linux)

(2)线下部署(第三方商用摄像头、Linux/LiteOS、小海思35系列芯片)

(3) GES:分布式原生图引擎服务,以关系为基础的图结构数据,进行查询和分析的服务,采用华为自研高性能图引擎EYWA作为其内核

应用场景:社交APP、企业关系分析应用、物流配送、班车路径规划、企业和知识图谱、风控等

海量复杂的关联数据(社交关系、交易记录、通话记录等)就是图网络,能对其进行个体分析(用户画像)、群体分析(好友/圈群推荐、智能用户分类)、链路分析(识别热搜,寻找引爆点)

(4) CBS:对话机器人服务,由智能问答、任务机器人对话、智能质检、定制对话机器人组成

(5) NLP:自然语言处理,让机器理解人说的话,由自然语言处理基础、语言理解、语言生成、机器翻译组成

(6) SIS:语言交互服务,用于一句话识别/短语音识别、实时语音转写、录音文件识别、有声读物

(7) Image:图像识别,用于场景分析、目标检测、图像检索(以图搜图)、智能相册、图像标签、翻拍识别

(8) Moderation:内容审核,基于领先的图像、文本、视频检测技术,可自动检测色情、广告、暴恐、涉政等内容,帮助用户降低业务违规风险

(9) OCR:文字识别,用于用户认证识别、财务报销审核、金融保险、海关单据电子化、通用文字识别、通用表格识别、护照识别

(10) TTS:文语转换,将文本转换成逼真语音的服务

(11) ASR:将口述音频转换为文本

华为云EI解决方案

TaskBot任务机器人对话,如果知识超过了还有KGQA知识图谱问答给出近似答案,如果超过知识图谱范围可以使用IRQA信息检索问答,检索这条信息找出相关联答案,并进行多轮对话获得用户想问的具体问题

认知计算,人工智能的高级阶段,包含信息分析、自然语音处理、机器学习领域大量技术创新,帮助决策者从大量非结构数据中揭示一种洞察或做出决策。最终完成知识聚合

十八、HiAI

(1) 华为HiAI平台定义:是面向智能终端的AI能力开放平台,基于”芯、端、云“三层开放架构,即芯片能力开放、应用能力开放、服务能力开放,让开发者更快速利用华为AI处理能力

单设备 -> 多设备 -> 分布式,同一个应用在多设备上共享,使能全场景智慧生活极致体验

云HUAWEI HiAI Service:服务能力开放。根据用户所需,推送服务,让服务主动找用户

(1)推广APP:实现泛终端智慧分发,开发者只需进行一次服务接入,就能够在多终端复用,高效完成分发引流

端HUAWEI HiAI Engine:AI能力开放。轻松将多种AI能力与APP集成,通过HiAI Engine调用HiAI平台内各种算法,在APP集成,提供各种API

(1)针对功能:相当于ML Kit机器学习服务,为应用能力开放平台

(2)新增手写识别、动态手势识别等功能,只需要把集成好的API放到APP中

芯HUAWEI HiAI Foundation:芯片能力开放。提供算子,快速转化和迁移已有模型,借助异构调度和NPU快速获得最佳性能【本地做好模型迁移到端】

(1)针对模型:是人工智能计算库,主要用于迁移模型

(2)基于麒麟芯片,以更强算力提供更加端侧的AI性能

(3)支持算子业界最多,达300+,且支持更多框架

(4)鸿鹄芯片、麒麟芯片、AI Camera芯片,全场景芯片赋能更多设备AI能力

(2) HiAI移动计算平台架构

①APP

②主流框架:Tensorflow、Tensorflow Lite、Caffe、Caffe2、Paddle Paddle

③HUAWEI HiAI Engine:算子,提供丰富的上层功能业务API,可在移动设备高效运行。

④HUAWEI HiAI Foundation:模型的应用

⑤异构资源灵活调整,计算资源:CPU、GPU、DSP、NPU

(3) AI能力开发及应用的问题

①高门槛:先决条件与技能要求,如ML&DL、统计学、线性代数、微积分

②低效率:训练模型周期长,如数据采集与数据清洗(特征工程)、模型训练与调优、客制化体验提升

③能力碎:体验碎片化,如各场景需要重新做数据采集清洗、模型训练调优和体验提升,能力无法直接继承

④提升难:能力增强难,如模型升级困难、有效数据获取困难

(4) HiAI赋予APP的价值:实时、随时、稳定、安全、成本低

十九、华为终端AI平台

HarmonyOS包含HMS Core,而HMS Core包含ML KitHiAI,而ML Kit和HiAI底层都有MindSpore Lite

(1) HarmonyOS

HarmonyOS是分布式操作系统

HarmonyOS具备HMS Core,其能提供端、云开放能力,帮助开发者开发应用

(2) HMS Core

可以承载HarmanyOS、Android、Windows、iOS操作系统

开发Harmany APP、Android APP、Quick APP、Web APP、iOS APP应用

开发Unity、Cocos、React Native、Cordova引擎

HMS Core具备机器学习服务ML Kit、HiAI Foundation、HiAI Engine、HiAI Service能力

(3) ML Kit

无需关系模型训练,直接调用能力就可以使用,如文本识别、语音合成、文本翻译

核心优势:

(1)全机型覆盖

(2)全球区域覆盖

(3)数据安全(端侧数据不上云,端侧也会训练,以推理为主)

(4)可自定义训练模型(小模型)

(4) MindSpore Lite

AI引擎,使能全场景智能应用,为用户提供端到端的解决方案,端侧推理的处理能力

特性:极致性能、轻量化、全场景支持、高效部署

兼容所有主流的AI框架

(5) CANN

华为的计算框架,负责图像预处理的功能单元是MindData

二十、知识图谱

(1) 知识图谱概述:知识图谱本质上是语义网络的知识库,它以结构化的形式描述客观世界中各种概念、实体及其之间的关系,以此构成一张巨大的语义网络,节点表示实体,边由其属性或实体间关系构成

语义网络:用图来表示知识的方式,由互相连接的节点和边组成,节点表示概念或对象,边表示关系

知识库:存储了很多数据

实体:存在于现实世界中并且可与其他物体区分开来的物体

属性:把具体事物的性质与关系叫做事物的属性

概念:具有同样特征的实体构成的集合,抽象概念,如概念关键词

本体:是某个领域中抽象概念的集合,能够描述某个范围内一切事物的共有特征及事物间的关系

(2) 知识图谱的历史,知识图谱是知识工程在当前人工智能发展阶段较为成熟的果实

①前知识工程时期,20世纪年代-70年代

②专家系统时期,20世纪70年代-90年代

③万维网1.0时期,20世界90年代-21世纪初

④群体智能时期,2000年-2006年

⑤知识图谱时期,2006年-至今

· 知识图谱时期,大规模结构化的百科类网站蓬勃发展和文本信息提取技术的不断进步,为得到大规模知识提供了条件

· Google率先在2012年将知识图谱应用于搜索引擎,成功提升了用户的搜索质量及搜索体验

(3 )知识图谱的构建流程

①确定领域:确定知识图谱面向的专业领域,越大不一定越好

②了解领域:充分了解知识图谱针对的领域,知识体系构建

③数据获取:结构化数据、半结构化数据、非结构化数据

④信息抽取:属性抽取、关系抽取、实体抽取

⑤知识映射及融合:知识映射、知识融合

⑥知识加工及推理

⑦图谱应用

二十一、量子计算与机器学习

(1) 量子:是指微观物理系统中,物理量的最小单位,如能量、角动力、电荷等

(2) 经典物理与量子物理的区别

能量

经典物理:物理量被视作是连续的,系统的能力可以取得任意值

量子物理:物理量是量子化的,系统的能量只能取分立的值

运动状态

经典物理:系统的运行状态可以完全确认和预测的

量子物理:无法同时确定一个系统的精确位置和动量

性质

经典物理:认为大多数的物质由粒子构成

量子物理:粒子既具有波动性(波函数叠加),又具有粒子性(波函数坍缩),波粒二象性

(3) 量子力学基本概念

量子叠加:叠加态是一个有效的量子态,宏观体现是双缝干涉图样。薛定谔的猫,不打开箱子,猫既有可能是死的也可能是活的

量子纠缠:确定一个量子状态,可以得到另一个量子状态。低维它们隔着很远,高维可能挨着

量子的不确定性:测不准

(4) 量子计算发展简史

量子力学建立 -> 量子计算理论发展 -> 量子计算机工程化

(5) 量子比特和量子态

经典比特bit只能处于0态或1态。N个经典比特同一个时间只能表示一个数

量子比特qubit可以处于0态、1态或者0态和1态的线性叠加态。N个量子比特同一时间可以表示2的n次方个数

(6) 量子门

 经典逻辑门不可逆

量子逻辑门基于对量子比特的幺正变换使得量子门操作均可逆,且多了个测量门

(7) 量子线路

分为初态制备、量子态演化、量子测量

(8) 经典机器学习和量子机器学习

①经典机器学习

包括监督学习、无监督学习、强化学习三大类,目前在分类、图像识别、行为学习等领域被广泛应用

瓶颈:当数据量很大时,经典计算机难以有效处理。而量子比特特有的“叠加态”和“量子纠缠”性质,能够实现指数级并行降低计算机复杂度,提高数据处理能力

②量子机器学习

CC:经典数据+经典算法(传统机器学习)

CQ:经典数据+量子算法(经典机器学习应用于量子领域)

QC:量子数据+经典算法(分为创痛机器学习算法的量子版本和量子神经网络)

QQ:全量子机器学习

(9) 华为HiQ

更多推荐