谨以此篇记录我在华为ict大赛昇腾AI赛道的学习笔记


AI计算体系

深度学习计算模式

AI的发展和范式

人工智能的发展可分为三个阶段:

  1. 符号主义(1950s-1980s):基于逻辑规则构建专家系统,受限于人工定义规则的复杂性。
  2. 统计学习(1990s-2010s):通过概率模型(如支持向量机、随机森林)从数据中学习规律,但依赖人工特征工程。
  3. 深度学习(2012年至今):利用多层神经网络自动提取特征,核心突破源于反向传播算法、大规模数据集(如ImageNet)和GPU加速计算的结合。

深度学习的本质是通过多层非线性变换,将输入数据映射到高维空间进行表征学习。其成功依赖三个要素:

  • 数据规模:现代模型需百万级标注样本
  • 算力支持:训练GPT-3需3.14×10^23次浮点运算
  • 算法创新:如批量归一化、残差连接等训练稳定技术

经典模型架构

卷积神经网络(CNN)

  • LeNet(1998):首个应用于手写数字识别的CNN,包含两个卷积层和三个全连接层
  • ResNet(2015):通过残差连接(公式:$y = F(x) + x$)解决深层网络梯度消失问题,网络深度可达152层

Transformer

  • 自注意力机制:计算输入序列中每个位置与其他位置的关联权重
    $$Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V$$
  • 位置编码:通过正弦函数注入序列位置信息,公式:
    $$PE_{(pos,2i)} = \sin(pos/10000^{2i/d})$$
    $$PE_{(pos,2i+1)} = \cos(pos/10000^{2i/d})$$

了解基本概念

Host
Host指与Device相连接的X86服务器、ARM服务器,会利用Device提供的NN(Neural-Network)计算能力,完成业务。

Device
Device指安装了昇腾AI处理器的硬件设备,利用PCIe接口与Host侧连接,提供NN计算能力。

开发环境、运行环境
开发环境指开发代码的环境,运行环境指运行算子、推理或训练等程序的环境,运行环境上必须带昇腾AI处理器。

运行用户
运行推理业务或执行训练的用户

创建项目目录
test
date
model

下载测试图片
cd $HOME/first_app/data
wget https://obs-9be7.obs.cneast2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg

cd $HOME/first_app/data
wget https://obs-9be7.obs.cn-eas2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg
下载模型
cd $HOME/first_app/model  
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx

模型转换,对于开源框架的模型,不能直接在昇腾AI处理器上进行推理,需要使用ATC(Ascend Tensor Compiler)工具将开源框架的网络模型转换为适配昇腾AI处理器的离线模型(.om文件)。
执行以下命令(以 Atlas 推理系列产品 为例),将原始模型转换为昇腾AI处理器能识别的
.om模型文件。请注意,执行命令的用户需具有命令中相关路径的可读、可写权限。

atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224"  --
soc_version=<soc_version>

如果无法确定当前设备的soc_version,可按如下方法查询:
在安装昇腾AI处理器的服务器执行npu-smi info命令进行查询,获取Chip Name信息。实际配置值为AscendChip Name,例如Chip Name取值为xxxyy,实际配置值为Ascendxxxyy。

参数如下
--model:ResNet-50网络的模型文件的路径。
--framework:原始框架类型。5表示ONNX。
--output:resnet50.om模型文件的路径。请注意,记录保存该om模型文件的路径,后续开发应用时需要使用。
--input_shape:模型输入数据的shape。
--soc_version:昇腾AI处理器的版本