昇腾计算是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算解决方案,主要包括昇腾系列处理器及硬件(核心Atlas系列)、 专为神经网络的异构计算架构CANN(Compute Architecture for Neural Networks)、AI计算框架昇思MindSpore(类似于Pytorch、Tensorflow的人工智能框架)以及应用使能平台MindX&&ModelZoo、开发工具链MindStudio、管理运维工具、行业应用及服务等全产业链。下文将对《2023CANN训练营第二期--昇腾AI生态架构学习记录Ⅰ》未描述完部分的标色内容进行大白话描述,方便小白快速理解。
AI计算框架昇思MindSpore
昇思MindSpore是一个全场景深度学习框架, 其基于昇腾系列AI生态实现,旨在实现易开发、高效执行、全场景统一部署三大目标。它目前的生态类似于Pytorch、Tensorflow等人工智能框架,涉猎的算法及应用范围非常广,发展势头强劲。昇腾并不因为昇思的存在排斥Pytorch等开源框架,而是提供了多种框架迁移方法,并一直在为融入开源优秀框架之中而努力。
我目前研究的主要是图神经网络方向内容,昇思官网文档对该内容做了较为详尽的介绍。例如查询异构图神经网络,mindspore提供了mindspore_gl.HeterGraph的异构图API文档,并对该部分内容作了以下的demo展示。
import mindspore as ms
from mindspore_gl import Graph, HeterGraph, HeterGraphField
from mindspore_gl.nn import GNNCell
n_nodes = [9, 2]
n_edges = [11, 1]
src_idx = [ms.Tensor([0, 2, 2, 3, 4, 5, 5, 6, 8, 8, 8], ms.int32), ms.Tensor([0], ms.int32)]
dst_idx = [ms.Tensor([1, 0, 1, 5, 3, 4, 6, 4, 8, 8, 8], ms.int32), ms.Tensor([1], ms.int32)]
heter_graph_field = HeterGraphField(src_idx, dst_idx, n_nodes, n_edges)
node_feat = ms.Tensor([[1], [2], [1], [2], [0], [1], [2], [3], [1]], ms.float32)
class SrcIdx(GNNCell):
def construct(self, bg: HeterGraph):
return bg.src_idx
ret = SrcIdx()(*heter_graph_field.get_heter_graph())
print(ret)
此外,大模型时代中,昇思旗下诞生了昇思大模型平台。它是集算法选型、创意分享、模型实验和大模型在线体验为一体的AI实践社区,提供了类似于Midjonery的免费AI绘图,其中还有非常多可以体验的AI下游应用实践可以供用户体验。这是我输入Prompt:“荒坂与军用科技在夜之城爆发了大规模的冲突”免费生成的四张图。
应用使能平台MindX&&ModelZoo
MindX有一系列使能平台,包括:
- MindX DL(Deep Learning),昇腾深度组件是支持 Atlas训练卡、推理卡的Deep Learning组件,提供昇腾 AI 处理器集群调度、昇腾 AI 处理器性能测试、模型保护等基础功能,快速使能合作伙伴进行平台开发。
- MindX Edge(昇腾智能边缘组件)提供边缘 AI 业务容器的全生命周期管理能力,同时提供严格的安全可信保障,为客户提供边云协同的边缘计算解决方案,使能客户快速构建边缘 AI 业务。
- MindX SDK,它是华为推出的昇腾AI处理器加速的各类AI软件开发套件(SDK),提供极简易用的API,加速AI应用的开发。它基于现有模型,使用pyACL提供的Python语言API库开发深度神经网络应用,用于实现目标识别、图像分类等功能。MindX SDK旨在使用华为提供的SDK和应用案例快速开发并部署人工智能应用,通过MindStudio实现SDK应用开发分为基础开发与深入开发,通常情况下用户关注基础开发即可,基础开发主要包含如何通过现有的插件构建业务流并实现业务数据对接,采用模块化的设计理念,将业务流程中的各个功能单元封装成独立的插件,通过插件的串接快速构建推理业务。
ModelZoo是一个模型仓库,里面存放了华为在各个领域里面训练好的模型,可以直接供给开发者使用,包括计算机视觉、语音、自然语言处理等领域的模型,可以帮助开发者快速开发出自己的AI应用。其提供了人工智能各领域丰富的SOTA模型。
开发工具链MindStudio
MindStudio功能框架包括:集成开发环境(工程管理、编译、运行、模型转换、应用开发等)、精度比对、自定义算子、性能分析、仿真器、Debug等。同时,MindStudio还提供网络模型移植、应用开发、推理运行及自定义算子开发等功能。
下面借助常用的VScode、IDEA、PyCharm等集成开发环境进行对比,来理解开发工具链;开发工具链和集成开发环境有较大区别,二者区别如下:
- 开发工具链 。开发工具链包括编译器、连接器、调试器以及辅助程序的工具程序集合。在没有集成环境IDE之前,程序员的编程工作是透过工具链来完成。
- 集成开发环境 。集成开发环境是工具和库的集合体,且容量较大。
集成开发环境是在开发工具链的基础上演变而来,相比开发工具链功能更加齐全。