使用MindStudio实现AutoML模型自动生成

一、MindStudio介绍与安装流程

1.1基本介绍:

MindStudio为用户提供在AI开发所需的一站式开发环境,支持模型开发、算子开发以及应用开发三个主流程中的开发任务。通过依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够帮助用户在一个工具上就能高效便捷地完成AI应用开发。另一方面,MindStudio采用插件化扩展机制,以支持开发者通过开发插件来扩展已有功能。MindStudio的功能包括:

  1. 针对安装与部署,MindStudio提供多种部署方式,支持多种主流操作系统,为开发者提供最大便利。
  2. 针对网络模型的开发,MindStudio支持TensorFlow、Pytorch、MindSpore框架的模型训练,支持多种主流框架的模型转换。集成了训练可视化、脚本转换、模型转换、精度比对等工具,提升了网络模型移植、分析和优化的效率。
  3. 针对算子开发,MindStudio提供包含UT测试、ST测试、TIK算子调试等的全套算子开发流程。支持TensorFlow、PyTorch、MindSpore等多种主流框架的TBE和AI CPU自定义算子开发。
  4. 针对应用开发,MindStudio集成了Profiling性能调优、编译器、MindX SDK的应用开发、可视化pipeline业务流编排等工具,为开发者提供了图形化的集成开发环境,通过MindStudio能够进行工程管理、编译、调试、性能分析等全流程开发,能够很大程度提高开发效率。

1.2MindStudio主要功能特性:

MindStudio主要功能特性有以下几点,如图1所示。

使用MindStudio实现AutoML模型自动生成_第1张图片

 图1

  1. 工程管理:为开发人员提供创建工程、打开工程、关闭工程、删除工程、新增工程文  件目录和属性设置等功能。
  2. 分析迁移:

·X2MindSpore工具:将PyTorch/TensorFlow训练脚本迁移至可基于MindSpore运行的代码

·PyTorch GPU2Ascend工具:将PyTorch训练脚本从GPU平台迁移至昇腾NPU平台

·Tensorflow GPU2Ascend工具:将TensorFlow训练脚本从GPU平台迁移至昇腾NPU平台。

  1. 模型训练:MindStudio负责运行训练框架,把框架执行的脚本、数据集、参数等相关信息提交给GE并通过接口指示GE只做网络分析并输出分析结果,对网络分析结果进行界面展示。
  2. AutoML(Beta):AutoML(Auto Machine Learning)工具包括模型自动生成和调优及训练工程超参数自动调优。用户可以通过模型自动调优功能找到性能更好的模型。AI初学者可以通过AutoML工具结合数据集,自动生成满足需求的模型,也可以对训练超参进行自动调优。
  3. 应用开发:

·基于MindX SDK开发应用:MindX SDK采用模块化设计理念,将业务流程中的各个功能单元封装成独立的插件,通过插件串联,快速构建业务

·MindStudio基于MindX SDK,提供可视化流程编排功能,通过画板拖动插件的方式,可视直观地组织插件,管理整体流程,最终生成pipline文件以供开发。

  1. 算子开发:MindStudio提供包含UT测试、ST测试、TIK算子调试等的全套算子开发流程。支持TensorFlow、PyTorch、MindSpore等多种主流框架的TBE和AI CPU算子开发。

·UT测试:UT(Unit Test)即单元测试,MindStudio提供了基于gtest框架的新的UT测试方案,简化了开发者开发UT测试用例的复杂度。

·ST测试:ST(System Test)即系统测试,MindStudio提供了新的ST测试框架,可以自动生成测试用例,在真实的硬件环境中,验证算子功能的正确性和计算结果准确性,并生成运行测试报告。

·TIK算子调试:MindStudio支持TIK算子的可视化调试,可以实现断点设置、单步调试、连续运行直到结束或下一断点、查看变量信息、退出调试等功能。

  1. 性能分析:MindStudio以图形界面呈现方式,实现针对主机和设备上多节点、多模块   异构体系的高效、易用、可灵活扩展的系统化性能分析,以及针对昇腾AI处理器的性能和功耗的同步分析,满足算法优化对系统性能分析的需求。
  2. 精度比对:可以用来比对自有模型算子的运算结果与Caffe、TensorFlow、ONNX标准算子的运算结果,以便用来确认神经网络运算误差发生的原因。
  3. 专家系统:专家系统(MindStudio Advisor)是用于聚焦模型和算子的性能调优Top问题,识别性能瓶颈,重点构建瓶颈分析、优化推荐模型,支撑开发效率提升的工具。
  4. 算子和模型速查:算子和模型速查工具帮助客户了解当前版本CANN支持的算子信息和ModelZoo支持的模型信息。
  5. AI Core Error分析:在执行训练和推理发现AI Core Error问题时,使用AI Core Error Analyzer工具可以自动快速准确地收集定位AI Core Error问题所需的关键信息,提升开发者对AI Core Error的排查效率。

1.3.安装指南:

使用MindStudio前,首先应确定其使用场景,包括纯开发场景和开发运行场景两种:

  1. 纯开发场景(分部署形态):在非昇腾AI设备上安装MindStudio和Ascend-cann-toolkit开发套件包。可作为开发环境仅能用于代码开发、编译等不依赖于昇腾设备的开发活动(例如ATC模型转换、算子和推理应用程序的纯代码开发)。如果想运行应用程序或进行模型训练等,需要通过MindStudio远程连接功能连接已部署好运行环境所需软件包的昇腾AI设备。
  2. 开发运行场景(共部署形态):在昇腾AI设备上安装MindStudio、Ascend-cann-toolkit开发套件包、npu-firmware安装包、npu-driver安装包和AI框架(进行模型训练时需要安装)。作为开发环境,开发人员可以进行普通的工程管理、代码编写、编译、模型转换等功能。同时可作为运行环境,运行应用程序或进行模型训练。

其中,不管哪种场景,都需要安装MindStudio、Ascend-cann-toolkit开发套件包:

  1. MindStudio:提供图形化开发界面,支持应用开发、调试和模型转换功能,同时还支持网络移植、优化和分析等功能。
  2. Ascend-cann-toolkit:开发套件包。为开发者提供基于昇腾AI处理器的相关算法开发工具包,旨在帮助开发者进行快速、高效的模型、算子和应用的开发。开发套件包只能安装在Linux服务器上,开发者可以在安装开发套件包后,使用MindStudio开发工具进行快速开发部署。

1.4安装流程

1.4.1 Linux系统下的安装流程

MindStudio和Ascend-cann-toolkit可以使用Linux服务器上原生桌面自带的终端gnome-terminal进行安装,也可以在Windows服务器上通过SSH登录到Linux服务器进行安装。因为MindStudio是一款GUI程序,所以在Windows服务器上通过SSH登录到Linux服务器进行安装时,需要使用集成了X server的SSH终端(比如MobaXterm,该工具版本需要为v20.2及以上)。Linux环境下MindStudio安装方案有以下两种:

  1. 纯开发场景(分部署形态):该场景下纯开发环境需要安装MindStudio和Ascend-cann-toolkit,如图2所示。昇腾AI设备上运行环境的安装操作请参见《CANN 软件安装指南》。

使用MindStudio实现AutoML模型自动生成_第2张图片

图2

  1. 开发运行场景(共部署形态):该场景下需要安装如图3所示软件包,其中驱动、固件、Ascend-cann-toolkit和AI框架包的安装操作请参见《CANN 软件安装指南》。

使用MindStudio实现AutoML模型自动生成_第3张图片

 图3

Linux环境下,MindStudio安装流程如图4所示。

使用MindStudio实现AutoML模型自动生成_第4张图片

 图4 

  1. 环境要求:MindStudio安装的环境要求如表1,可对照着判断是否满足条件。

表1 MindStudio环境要求

类别

限制要求

说明

硬件

内存:最小4GB,推荐8GB

磁盘空间:最小6GB

若Linux宿主机内存为4G,在MindStudio中进行模型转换时,建议Model文件大小不超过350M,如果超过此规格,操作系统可能会因为超过安全内存阈值而工作不稳定。

若Linux宿主机配置升级,比如8G内存,则相应支持的操作对象规格按比例提升。

例如,内存由4G升级到8G,则Model文件建议大小不超过700M。

系统语言

en_US.UTF-8

当前仅支持系统语言为英文。

请以任意用户使用locale命令在任意路径下查询编码格式,若系统返回“LANG=en_US.UTF-8”,则表示正确;否则,请以root用户使用“vim /etc/default/locale”命令修改“LANG=en_US.UTF-8”,重启(使用reboot命令)使之生效。

系统要求

操作系统可以通过ssh登录,同时打开ssh的X11Forwarding功能

glibc版本应大于或等于2.27

ssh服务的开启和X11Forwarding的配置请参见启动MindStudio时无法显示图形化界面

对于Docker环境,启动容器时需要映射ssh端口,如

docker run -p {宿主机端口}:{容器内ssh端口} ...

若系统glibc版本小于2.27,请参见启动MindStudio时报glibc版本太低问题处理。

已验证支持的操作系统

Ubuntu 18.04-x86_64

Ubuntu 18.04-aarch64

Ubuntu 20.04-x86_64

Ubuntu 20.04-aarch64

EulerOS 2.8-aarch64

EulerOS 2.10-aarch64

OpenEuler 20.03-x86_64

OpenEuler 20.03-aarch64

CentOS 7.6/8.2-x86_64

CentOS 7.6/8.2-aarch64

银河麒麟OS V10 SP1-aarch64

中标麒麟OS 7.6-aarch64

-

  1. 准备软件包:软件安装前,请参考表2获取所需软件包和对应的数字签名文件。其中在软件数字签名验证方面,为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的数字签名文件用于完整性验证。在软件包下载之后,可以参考《OpenPGP签名验证指南》,对从网站下载的软件包进行PGP数字签名校验。如果校验失败,则不要直接使用该软件包,应先联系华为技术支持工程师解决。使用软件包安装/升级之前,也需要按上述过程先验证软件包的数字签名,确保软件包未被篡改过。

表2 软件包

软件包

说明

MindStudio_{version}_linux.tar.gz

MindStudio软件包,含有GUI的集成开发环境。

MindStudio安装包解压后包含以下文件:

  • bin:MindStudio的执行目录及依赖的二进制文件
  • build.txt:安装包构建信息
  • classpath.txt:MindStudio运行时ClassPath加载顺序文件
  • icons.db:MindStudio运行时SVG图标预编译数据库缓存文件
  • Install-Linux-tar.txt:MindStudio安装说明
  • jbr:64位系统的依赖库以及文件
  • lib:Java依赖库
  • license:所用的第三方依赖的许可证
  • LICENSE.txt:Apache Licence说明文档
  • NOTICE.txt:注意事项
  • plugins:MindStudio所用到的基本插件及Java库
  • product-info.json:MindStudio版本号以及执行文档路径
  • redist:Java辅助注解
  • tools:工具库

Ascend-cann-toolkit_{version}_linux-{arch}.run

Ascend-cann-toolkit开发套件包,包含开发辅助工具和相关开发接口的开发套件包。

如果环境上已安装Ascend-cann-toolkit开发套件包,则无需再次获取。

  1. 准备安装用户:若未安装Ascend-cann-toolkit开发套件包,需要首先检查root用户的umask:
      1. 以root用户登录安装环境。
      2. 检查root用户的umask值。
      3. 如果umask不等于0022,请执行如下操作配置,在该文件的最后一行添加umask 0022后保存。

接着,创建安装用户,可使用root或非root用户进行安装:

  1. 若使用root用户安装,可直接开始安装依赖。
  2. 若使用已存在的非root用户安装,须保证该用户对$HOME目录具有读写以及可执行权限。
  3. 若使用新的非root用户安装,则需要先创建该用户,则方法如下(请以root用户执行以下命令)。
  1. 创建用户组和安装用户并设置该用户的$HOME目录:groupadd usergroup,useradd -g usergroup -d /home/username -m username -s /bin/bash。(其中usergroup为用户组,username为用户名)
  2. 执行以下命令设置非root用户密码:passwd username。
  1. 安装依赖:安装MindStudio和Ascend-cann-toolkit开发套件包前需要安装相关依赖。具体的依赖列表可参考官方文档。
  2. 安装MindStudio:在完成了软件包至安装依赖,以及Ascend-cann-toolkit开发套件包的安装后,可以进行MindStudio的安装,其具体的安装步骤如下:
  1. 使用MindStudio的安装用户上传软件包至待安装环境。
  2. 解压MindStudio软件包:使用MindStudio的安装用户在软件包所在路径执行如下命令,解压MindStudio_{version}_linux.tar.gz软件包,tar -zxvf MindStudio_{version}_linux.tar.gz,解压后包的内容以及说明请参见表3。

表3 参数说明

参数

说明

Projects页签(工程管理)

New Project

创建新工程,创建后工程保存在“$HOME/AscendProjects”目录。

Open

打开已有工程。

System Profiler

进入System Profiling界面。

Get from Version Control…

用版本控制工具下载代码仓并打开。

Customize页签(定制化个性设置)

Color theme

设置颜色主题。

Accessibility

设置辅助功能,包括设置IDE字体大小和针对红绿色视觉缺陷调整颜色。

Keymap

设置键盘映射,MindStudio会根据您的环境自动建议预定义的键盘映射,请确保它与您正在使用的操作系统匹配,或者手动选择与您习惯使用的另一个IDE或编辑器中的快捷方式匹配的操作系统。

Import Settings…

从自定义配置目录导入MindStudio个性化设置。

All Settings…

进入设置界面。

Plugins页签(插件管理)

Marketplace

插件市场,可搜索并下载需要的插件。

Installed

查看已安装的插件。

Learn MindStudio页签(MindStudio实用帮助)

  1. 使用MindStudio的安装用户进入软件包解压后的MindStudio/bin目录并启动MindStudio。
  2. 进入导入设置界面,如图5所示界面。

 图5

  1. 如果没有报错信息且能正常进入欢迎界面,则表示MindStudio安装成功。

使用MindStudio实现AutoML模型自动生成_第5张图片

图6

1.4.2 Windows系统下的安装流程

MindStudio可以单独安装在Windows上。在安装MindStudio前需要在Linux服务器上安装部署好Ascend-cann-toolkit开发套件包,之后在Windows上安装MindStudio,安装完成后通过配置远程连接的方式建立MindStudio所在的Windows服务器与Ascend-cann-toolkit开发套件包所在的Linux服务器的连接,实现全流程开发功能。Windows环境下MindStudio安装方案有以下三种:

  1. 纯开发场景(分部署形态):该场景下在Windows服务器上安装MindStudio,昇腾AI设备上的驱动、固件、Ascend-cann-toolkit和AI框架包的安装操作请参见《CANN 软件安装指南》。

使用MindStudio实现AutoML模型自动生成_第6张图片

 7

  1. 开发运行场景(共部署形态):该场景下在Windows服务器上安装MindStudio,在纯开发环境需要安装Ascend-cann-toolkit,两者建立连接后,形成了集成MindStudio的纯开发环境。昇腾AI设备上运行环境的安装部署操作请参见《CANN 软件安装指南》,此场景运行环境多为端侧、边侧设备如Atlas 500 智能小站和Atlas 200 DK 开发者套件等。

使用MindStudio实现AutoML模型自动生成_第7张图片

8

  1. Windows工控机场景:该场景下在Windows服务器上安装MindStudio、驱动、固件和Windows版nnrt,其中驱动、固件和Windows版nnrt需要参见《CANN Windows版用户指南》进行安装。纯开发环境需要安装Ascend-cann-toolkit,与MindStudio连接后基于两者开发的应用程序可在Windows服务器上运行。

使用MindStudio实现AutoML模型自动生成_第8张图片

图9

将MindStudio安装在Windows服务器上时,Windows服务器为本地环境,Linux服务器为远端环境。MindStudio安装流程如图10所示。

使用MindStudio实现AutoML模型自动生成_第9张图片

图10

  1. 环境要求:
  1. 本地环境要求:Windows 10 x86_64操作系统
  2. 本地安装依赖:Python(版本要求:3.7~3.9),MinGW,Cmake,ACLlib(可选,Windows工控机场景开发Windows应用)
  3. 配置远端环境:
  1. 共部署形态远端昇腾AI设备:可参考《CANN 软件安装指南》部署好昇腾AI设备。
  2. 分部署形态远端纯开发环境:可根据远端Linux服务器的具体系统版本,参见准备安装用户、安装依赖和配置编译环境章节配置MindStudio使用环境。请参考《CANN 软件安装指南》安装Ascend-cann-toolkit开发套件包。
  1. 准备软件包:软件安装前,请参考表4获取所需软件包和对应的数字签名文件。

表4 软件包

软件包

说明

MindStudio_{version}_win.zip

MindStudio免安装压缩包,含有GUI的集成开发环境。

MindStudio_{version}_win.exe

MindStudio安装包,含有GUI的集成开发环境。

  1. 安装依赖:根据官方流程安装Python依赖,安装MinGW依赖,安装ACLlib包,安装Cmake。
  2. 安装MindStudio:在完成上述步骤,即可进行MindStudio的安装。
  1. 双击MindStudio_{version}_win.exe安装包,开始安装MindStudio。
  2. 进入MindStudio Setup界面,单击“Next”,如图11所示。

使用MindStudio实现AutoML模型自动生成_第10张图片

图11

  1. 选择MindStudio的安装路径后,单击“Next”,如图12所示。

使用MindStudio实现AutoML模型自动生成_第11张图片

图12

  1. 用户根据需要勾选安装选项后,单击“Next”,如图13所示。

使用MindStudio实现AutoML模型自动生成_第12张图片

图13

  1. 选择或创建MindStudio安装路径下的启动菜单文件夹,单击“Install”,如图14所示。

使用MindStudio实现AutoML模型自动生成_第13张图片

图14

  1. 开始安装MindStudio,完成后单击“Next”,如图15所示。

使用MindStudio实现AutoML模型自动生成_第14张图片

图15

  1. 完成MindStudio安装配置,单击“Finish”,如图16所示。

使用MindStudio实现AutoML模型自动生成_第15张图片

图16

  1. 进入MindStudio安装目录的bin文件夹,双击MindStudio应用程序启动MindStudio,导入设置界面,如图17所示界面。

使用MindStudio实现AutoML模型自动生成_第16张图片

图17

  1. 如果没有报错信息且能正常进入欢迎界面,则表示MindStudio安装成功,如图18所示。

使用MindStudio实现AutoML模型自动生成_第17张图片

图18

二.模型自动生成基本介绍

模型自动生成和调优以昇腾910 AI处理器的搜索训练,昇腾310 AI处理器和昇腾310P AI处理器的推理验证为前提,覆盖MindSpore,PyTorch框架,面向分类、检测分割场景实现模型自动生成和调优。

模型自动生成的主要功能是基于数据集自动生成网络和基于预训练模型进行微调后自动生成模型,实现昇腾亲和模型的自动生成。

模型自动调优支持以用户的模型作为输入,自动解析模型结构,对模型进行剪枝或量化以达到性能调优的目的,支持以params(参数量)、latency(推理时延)等为主要目标的剪枝或量化压缩,能够有效地提升模型性能。

三.模型自动生成前期准备

采用基于MindStudio的工具AutoML(Auto Machine Learning)来进行模型自动性能调优中的模型量化,支持对昇腾910或GPU搜索训练,覆盖MindSpore,PyTorch框架,能对CV领域分类、检测和分割等常用模型进行自动性能调优。

业务流程如图所示:

使用MindStudio实现AutoML模型自动生成_第18张图片

 图19

3.1环境准备

获取noah_vega安装whl包,下载1.8.4版本的noah_vega-{version}-py3-none-any.whl安装包并放至IDE运行的服务器工作路径中,以便安装部署时选用该路径

  1. noah_vega提供安全通信特性,用户在AutoML安装完成后需要参照安全配置说明正确配置vega之后才能以通信安全的方式运行训练任务。如果使用1.8版本的安全特性noah_vega包,启动任务时需要在命令末端增加“-s”参数。

3.1.1Vega的安全配置,包括如下步骤:

安装OpenSSL:首先要安装OpenSSL 1.1.1,从源码编译安装,或者直接安装编译后的发行包。然后安装OpenSSL的python接口,如下:

    pip3 install --user pyOpenSSL==19.0.0

生成CA证书执行如下命令生成CA证书

openssl genrsa -out ca.key 4096

openssl req -new -x509 -key ca.key -out ca.crt -subj "/C=/ST=/L=/O=/OU=/CN="

生成评估服务使用的证书:评估服务支持加密证书和普通证书

在此我们使用普通证书,执行如下脚本,生成评估服务器端和客户端使用的证书的私钥和证书:

openssl genrsa -out server.key 4096

openssl req -new -key server.key -out server.csr -subj "/C=/ST=/L=/O=/OU=/CN=" -config ./openssl.cnf -extensions v3_req

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -extfile ./openssl.cnf -extensions v3_req

rm server.csr

openssl genrsa -out client.key 4096

openssl req -new -key client.key -out client.csr -extensions v3_ca  -subj "/C=/ST=/L=/O=/OU=/CN=" -config ./openssl.cnf -extensions v3_req

openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -extfile ./openssl.cnf -extensions v3_req

rm client.csr

生成Dask使用的证书

执行如下脚本,生成Dask服务器端和客户端使用的证书的私钥和证书:

openssl genrsa -out server_dask.key 4096

openssl req -new -key server_dask.key -out server_dask.csr -subj "/C=/ST=/L=/O=/OU=/CN=" -  config ./openssl.cnf -extensions v3_req

openssl x509 -req -in server_dask.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server_dask.crt -extfile ./openssl.cnf -extensions v3_req

rm server_dask.csr

openssl genrsa -out client_dask.key 4096

openssl req -new -key client_dask.key -out client_dask.csr -subj "/C=/ST=/L=/O=/OU=/CN=" -config ./openssl.cnf -extensions v3_req

openssl x509 -req -in client_dask.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client_dask.crt -extfile ./openssl.cnf -extensions v3_req

rm client_dask.csr

删除CA私钥:

rm ca.key

配置安全配置文件

请在当前用户的主目录下创建.vega目录,并将如上生成的秘钥、证书、加密材料等,拷贝到该目录下,并改变权限:

mkdir ~/.vega

mv * ~/.vega/

chmod 600 ~/.vega/*

~/.vega目录下创建server.iniclient.ini

在训练集群中,需要配置~/.vega/server.ini~/.vega/client.ini

server.ini:

[security]  # 以下文件路径需要修改为绝对路径

    ca_cert=<~/.vega/ca.crt>

    server_cert_dask=<~/.vega/server_dask.crt>

    server_secret_key_dask=<~/.vega/server_dask.key>

    client_cert_dask=<~/.vega/client_dask.crt>

    client_secret_key_dask=<~/.vega/client_dask.key>

client.ini:

[security]  # 以下文件路径需要修改为绝对路径

    ca_cert=<~/.vega/ca.crt>

    client_cert=<~/.vega/client.crt>

    client_secret_key=<~/.vega/client.key>

    encrypted_password=<加密后的client端的口令>  # 如果使用普通证书, 此项配置为空

    key_component_1=<~/.vega/ksmaster_client.dat>  # 如果使用普通证书, 此项配置为空

    key_component_2=<~/.vega/ksstandby_client.dat>  # 如果使用普通证书, 此项配置为空

在评估服务器上,需要配置~/.vega/vega.ini:

[security]  # 以下文件路径需要修改为绝对路径

    ca_cert=<~/.vega/ca.crt>

    server_cert=<~/.vega/server.crt>

    server_secret_key=<~/.vega/server.key>

    encrypted_password=<加密后的server端的口令>  # 如果使用普通证书, 此项配置为空

    key_component_1=<~/.vega/ksmaster_server.dat>  # 如果使用普通证书, 此项配置为空

    key_component_2=<~/.vega/ksstandby_server.dat>  # 如果使用普通证书, 此项配置为空

训练服务器:

  1. 需安装好训练环境
  2. python版本为3.7.5或以上的版本,所有训练服务器的python版本需要保持一致。
  3. pip源可用,确保pip3 install --user --upgrade pip能执行成功。
  4. 已安装3.13.0版本的protobuf依赖包。
  5. 已安装sshd。
  6. 在各个训练服务器上的~/.bashrc文件中配置如下环境变量:

source {Driver包安装路径}/driver/bin/setenv.bash

source {CANN包安装路径}/ascend-toolkit/set_env.sh

source {CANN包安装路径}/tfplugin/set_env.sh

export install_path={CANN包安装路径}/ascend-toolkit/latest

export LD_LIBRARY_PATH=${install_path}/compiler/lib64/:$LD_LIBRARY_PATH

export TBE_IMPL_PATH=${install_path}/opp/op_impl/built-in/ai_core/tbe

export JOB_ID=10087  #该项不建议改动

export DEVICE_ID=0  #单卡训练使用的device_id

#以下为多卡配置,视个人情况修改

export RANK_ID=0

export RANK_SIZE=8

export BATCH_TASK_INDEX=0

export RANK_TABLE_FILE=多卡网信息json文件所在路径  #从多卡网信息json文件中选择要使用的device_id

export NPU_VISIBLE_DEVICES=0,1,2,3,4,5,6,7  #从多卡网信息json文件中选择要使用的device_id

export TF_CPP_MIN_LOG_LEVEL=3  #该项可控制TF框架本身日志别的打印,0-DEBUG,1-INFO,2-WARNING,3-ERROR

推理服务器

  1. 需安装好推理环境
  2. python版本需为3.7.5或以上的版本。
  3. pip源可用,确保pip3 install --user --upgrade pip能执行成功。
  4. 在推理服务器上的~/.bashrc文件中配置如下环境变量:

source {CANN包安装路径}/ascend-toolkit/set_env.sh

export install_path={CANN包安装路径}/ascend-toolkit/latest

export DDK_PATH=${install_path}

export PATH=${install_path}/compiler/bin:${install_path}/compiler/ccec_compiler/bin:${PATH}

export LD_LIBRARY_PATH=${install_path}/lib64:/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/stub:${LD_LIBRARY_PATH}

export PYTHONPATH=${install_path}/python/site-packages:${install_path}/compiler/python/site-packages:${install_path}/compiler/python/site-packages/auto_tune.egg:${install_path}/compiler/python/site-packages/schedule_search.egg:${install_path}/opp/op_impl/built-in/ai_core/tbe:${PYTHONPATH}

export ASCEND_OPP_PATH=${install_path}/opp

export SOC_VERSION=Ascend310

export NPU_HOST_LIB=${install_path}/acllib/lib64/stub/

export JOB_ID=10087  #该项不建议改动

3.2集群管理

创建新集群

在菜单栏选择“Ascend > AutoML > Cluster Manager”。进入“Cluster Manager”界面。

单击“+New Cluster”。进入“Add Cluster”界面,如图23所示。界面参数说明如表5所示。

使用MindStudio实现AutoML模型自动生成_第19张图片

 图20

界面参数说明如表5所示。

表5 界面参数

参数

说明

Cluster Name

集群名称,在所有集群里具有唯一性。只支持英文字母、数字或者下划线,以英文字母开头,且长度不超过32个字符。例如:Cluster_01。

Evaluation Service

评估服务,通过下拉框选择已通过SSH配置好的远端环境。

Evaluation Service Port

评估服务器端口,仅支持输入1~65535之间的数字,默认值为8888。

Training Service

训练服务器,通过下拉框选择已通过SSH配置好的远端训练环境。

Primary

训练服务集群主节点,通过下拉框选择已通过SSH配置好的远端训练环境。

Add

添加训练服务。单击选择此项后,“Secondary”“Data Sharing Service”“NFS Server Path”参数才会在界面体现。

Secondary

训练服务集群从节点,通过下拉框选择已通过SSH配置好的远端训练环境。单击可以删除从节点。

 

Data Sharing Service

数据共享服务器,通过下拉框选择已通过SSH配置好的远端环境。

NFS Server Path

NFS服务器路径。例如:/home/test/nfs_cache。

Workspace

所有训练服务器的工作路径。例如:/home/test/nfs_folder。

单击“OK”,完成新集群创建。

删除集群

在菜单栏选择“Ascend > AutoML > Cluster Manager”。进入“Cluster Manager”界面。

单击需要删除的集群后方的,如图24所示。

使用MindStudio实现AutoML模型自动生成_第20张图片

 图21

启动推理服务器

启动任务之前需要编译推理程序并启动推理服务。

编译推理程序步骤:

i) 安装配置Atlas300环境

首先需要配置Ascend 300环境,然后请安装评估服务,请执行如下命令安装:

pip3 install --user --upgrade evaluate-service

使用MindStudio实现AutoML模型自动生成_第21张图片

 图22

安装完成后,将~/.local/lib/python3.7/site-packages/evaluate_service/hardwares/davin

nci/samples/atlas300拷贝到当前目录,执行如下操作,检查环境是否配置正确:

echo "[INFO] start check the enviroment..."

python3 -c "import te" && echo "[INFO] check te sucess"

python3 -c "import topi" && echo "[INFO] check topi sucess"

atc --version && echo "[INFO] check atc sucess "

echo "[INFO] start compile the example..."

cd ./atlas300/

mkdir -p build/intermediates/host

cd build/intermediates/host

cmake ../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

make  && echo "[INFO] check the env sucess!"

ii) 编译推理程序

参考地址,下载代码并完成编译。 并把编译后的可执行文件拷贝到~/.local/lib/python3.7/site-packages/evaluate_service/hardwares/davinci/目录下。

iii)启动评估服务

使用如下命令启动评估服务:

vega-evaluate_service-service -i {your_ip_adress} -p {port} -w {your_work_path}

其中:

    -i参数指定当前使用的服务器的ip地址

    -p参数指定当前使用的服务器的的监听端口,默认值8888

    -w参数指定工作路径, 程序运行时的中间文件将存储在该目录下,请使用绝对路径

启动推理服务

在推理服务器上运行命令vega-evaluate-service -i {your_ip_adress} -w {your_work_path} -p {port}启动。其中-i参数指定当前使用的服务器的ip地址。-w参数指定工作路径,程序运行时的中间文件将存储在该目录下,请使用绝对路径。-p参数指定推理服务器端口,启动推理服务器端口需要与创建集群时指定的端口一致,默认指定8888端口。其他参数的设置可查看该命令的帮助信息,一般情况下建议采用默认值。

使用MindStudio实现AutoML模型自动生成_第22张图片

 图23

  • 四、模型自动生成实操以及截图

  1. 启动MindStudio,点击Ascend Training,新建一个Project。

CANN Version:连接到的远程服务器上的CANN版本。

Templates:选择你将生成MindSpore/Tensorflow/Pytorch框架下的模型。

Samples:官方给出的各个框架下的ResNet50模型样例(可不选)。

使用MindStudio实现AutoML模型自动生成_第23张图片

图24

  1. 点击Next,更改项目名与项目存放地址后成功创建项目。

图25

使用MindStudio实现AutoML模型自动生成_第24张图片

 图26

  1. 上方工具栏Ascend-AutoML-Cluster Manager,设置集群信息(本部分内容参考网址集群管理-AutoML(Beta)-用户指南-5.0.RC3-MindStudio-文档首页-昇腾社区 (hiascend.com)

使用MindStudio实现AutoML模型自动生成_第25张图片

图27

Evaluation Service(Port):用户名@评估服务器IP地址:端口

Evaluation Service Port:评估服务器端口

Training Service Primary:用户名@训练服务器IP地址:端口

Workspace:工作目录文件存放地址(目录下需要有数据集)

使用MindStudio实现AutoML模型自动生成_第26张图片

图28

  1. 上方工具栏Ascend-AutoML-Start Task,新建任务

使用MindStudio实现AutoML模型自动生成_第27张图片

 图29

1)第一步基本设置,设置完点击Next

Task Name:任务名

AI Framework:任务所用到的AI框架

Hardware Platform:跑任务所在的硬件平台

Compute Nodes Cluster:集群选择上一步所新建的集群

使用MindStudio实现AutoML模型自动生成_第28张图片

图30

(2)第二步模型配置,完成后点击Next

Application Field应用领域目前仅有CV

Application Scenarios应用场景目前仅有Classification分类

Optimizing Method:Fine-Tune微调;Auto-Tun自动调优e;Nas神经结构搜索

Algorithm:默认算法

Batch Size:批处理批数

使用MindStudio实现AutoML模型自动生成_第29张图片

 图31

(3)第三步数据集配置,完成后点击Finish则可开始训练

Devices:硬件平台(单卡则是0)(八卡0-7)

Dataset Type:数据集格式

Dataset Path:数据集文件夹路径

Class nums:数据集类别数(某些数据集无该选项)

Image size:图片统一大小(某些数据集无该选项)

使用MindStudio实现AutoML模型自动生成_第30张图片

 图32

  1. 单击启动模型自动生成任务。本部分内容参考网址模型自动生成和调优-AutoML(Beta)-用户指南-5.0.RC3-MindStudio-文档首页-昇腾社区 (hiascend.com)

使用MindStudio实现AutoML模型自动生成_第31张图片

 图33

Nas会有大概160个work,每个准确率都不一样

使用MindStudio实现AutoML模型自动生成_第32张图片

 图34

会选中nas中五个准确率最高的work进行fully_train完整的训练流程。

使用MindStudio实现AutoML模型自动生成_第33张图片

 图35

经过160次的迭代,准确率逐渐提高。

使用MindStudio实现AutoML模型自动生成_第34张图片

 图36

使用MindStudio实现AutoML模型自动生成_第35张图片

 图37

最后经过fully_train生成效果最好的四个work对应的模型。

使用MindStudio实现AutoML模型自动生成_第36张图片

 图38

五、FAQ

1. 出现vega-progress:command not found时

大概率是vega环境变量出现了问题,在安装vega的过程中,会提示vega以及vega-progress所在目录,也可以通过whereis vega-progress等命令寻找vega所在目录,然后修改用户目录下的.bashrc文件,添加如图39所示命令配置用户变量,进而问题得到解决。

 图39

  1. 关于evaluate-service评估服务的具体配置细节

配置评估服务需要编译msame,参考网址https://gitee.com/ascend/tools/tree/master/msame,在评估服务启动时,需要保证评估服务器端口可访问,可以使用telnet x.x.x.x port来检查服务。

六、关于MindStudio更多的内容

如果需要了解关于MindStudio更多的信息,请查阅昇腾社区中MindStudio的[用户手册](https://www.hiascend.com/document/detail/zh/mindstudio/304/progressiveknowledge/index.html),里面模型训练、脚本转换、模型开发、算子开发、精度对比、AI Core Error分析工具、AutoML工具(Beta)、Benchmark工具、专家系统工具等各种使用安装操作的详细介绍。

如果在使用MindStudio过程中遇到任何问题,也可以在昇腾社区中的[昇腾论坛](https://www.huaweicloud.com)进行提问,会有华为内部技术人员对其进行解答,如下图。

使用MindStudio实现AutoML模型自动生成_第37张图片

 

图40

你可能感兴趣的:(pytorch,深度学习,人工智能,ai,python)