华为云用户手册

  • ModelArts的预置镜像使用场景 ModelArts给用户提供了一组预置镜像,用户可以直接使用预置镜像创建Notebook实例,在实例中进行依赖安装与配置后,保存为 自定义镜像 ,可直接用于ModelArts训练,而不需要做适配。同时也可以使用预置镜像直接提交训练作业、创建AI应用等。 ModelArts提供的预置镜像版本是依据用户反馈和版本稳定性决定的。当用户的功能开发基于ModelArts提供的版本能够满足的时候,比如用户开发基于MindSpore1.X,建议用户使用预置镜像,这些镜像经过充分的功能验证,并且已经预置了很多常用的安装包,用户无需花费过多的时间来配置环境即可使用。 ModelArts默认提供了一组预置镜像供开发使用,这些镜像有以下特点: 零配置,即开即用,面向特定的场景,将AI开发过程中常用的依赖环境进行固化,提供合适的软件、操作系统、网络等配置策略,通过在硬件上的充分测试,确保其兼容性和性能最合适。 方便自定义,预置镜像已经在SWR仓库中,通过对预置镜像的扩展完成自定义镜像注册。 安全可信,基于安全加固最佳实践,访问策略、用户权限划分、开发软件 漏洞扫描 、操作系统安全加固等方式,确保镜像使用的安全性。
  • 自定义镜像功能关联服务介绍 容器镜像服务 容器 镜像服务 (Software Repository for Container,SWR)是一种支持镜像全生命周期管理的服务, 提供简单易用、安全可靠的镜像管理功能,帮助您快速部署容器化服务。您可以通过界面、社区CLI和原生API上传、下载和管理容器镜像。 您制作的自定义镜像需要上传至SWR服务。ModelArts开发环境、训练和创建AI应用使用的自定义镜像需要从SWR服务管理列表获取。 图1 获取镜像列表 对象存储服务 对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。 在使用ModelArts时存在与OBS的数据交互,您需要使用的数据可以存储至OBS。 弹性云服务器 弹性云服务器(Elastic Cloud Server,E CS )是由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,使用弹性云服务器。 在制作自定义镜像时,您可以在本地环境或者ECS上完成自定义镜像制作。
  • Step3 准备训练脚本并上传至OBS 准备本案例所需的训练脚本mnist.py,并上传至OBS桶的“obs://test-modelarts/tensorflow/code/”文件夹下。 mnist.py文件内容如下: import argparse import tensorflow as tf parser = argparse.ArgumentParser(description='TensorFlow quick start') parser.add_argument('--data_url', type=str, default="./Data", help='path where the dataset is saved') args = parser.parse_args() mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data(args.data_url) x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) model.compile(optimizer='adam', loss=loss_fn, metrics=['accuracy']) model.fit(x_train, y_train, epochs=5)
  • Step1 创建OBS桶和文件夹 在OBS服务中创建桶和文件夹,用于存放样例数据集以及训练代码。需要创建的文件夹列表如表1所示,示例中的桶名称“test-modelarts” 和文件夹名称均为举例,请替换为用户自定义的名称。 创建OBS桶和文件夹的操作指导请参见创建桶和新建文件夹。 请确保您使用的OBS与ModelArts在同一区域。 表1 OBS桶文件夹列表 文件夹名称 用途 “obs://test-modelarts/tensorflow/code/” 用于存储训练脚本文件。 “obs://test-modelarts/tensorflow/data/” 用于存储数据集文件。 “obs://test-modelarts/tensorflow/log/” 用于存储训练日志文件。
  • 场景介绍 ModelArts含有许多“作业”类型(作业为统称,并非单指训练作业),其中有一部分是可以运行在专属资源池上的,包括“训练”、“推理”服务及“Notebook”开发环境。 专属资源池提供了动态设置作业类型的功能,您可以在创建资源池时、创建完成后,对资源池支持的作业类型进行编辑(新增或减少)。当前支持的“作业类型”有“训练作业”、“推理服务”和“开发环境”,用户可按需自行选择。 设置某一作业类型后,即可在此专属资源池中下发此种类型的作业,没有设置的作业类型不能下发。 为了支持不同的作业类型,后台需要在专属资源池上进行不同的初始化操作,例如安装插件、设置网络环境等。其中部分操作需要占据资源池的资源,导致用户实际可用资源减少。因此建议用户按需设置,避免不必要的资源浪费。
  • 如何提高训练作业资源利用率 适当增大batch_size:较大的batch_size可以让GPU/NPU计算单元获得更高的利用率,但是也要根据实际情况来选择batch_size,防止batch_YLLsize过大导致内存溢出。 提升数据读取的效率:如果读取一个batch数据的时间要长于GPU/NPU计算一个batch的时间,就有可能出现GPU/NPU利用率上下浮动的情况。建议优化数据读取和数据增强的性能,例如将数据读取并行化,或者使用NVIDIA Data Loading Library(DALI)等工具提高数据增强的速度。 模型保存不要太频繁:模型保存操作一般会阻塞训练,如果模型较大,并且较频繁地进行保存,就会影响GPU/NPU利用率。同理,其他非GPU/NPU操作尽量不要阻塞训练主进程太多的时间,如日志打印,保存训练指标信息等。
  • 如何判断训练作业资源利用率高低 在模型训练的训练作业列表页可以查看作业资源利用率情况。当作业worker-0实例的GPU/NPU的平均利用率低于50%时,在训练作业列表中会进行告警提示。 图2 作业列表显示作业资源利用率情况 此处的作业资源利用率只涉及GPU和NPU资源。作业worker-0实例的GPU/NPU平均利用率计算方法:将作业worker-0实例的各个GPU/NPU加速卡每个时间点的利用率汇总取平均值。
  • API对应关系 Python:指本地使用Python对本地文件的操作接口。支持一键切换为对应的MoXing文件操作接口(mox.file)。 mox.file:指MoXing框架中用于文件操作的接口,其与python接口一一对应关系。 tf.gfile:指MoXing文件操作接口一一对应的TensorFlow相同功能的接口,在MoXing中,无法自动将文件操作接口自动切换为TensorFlow的接口,下表呈现内容仅表示功能类似,帮助您更快速地了解MoXing文件操作接口的功能。 表1 API对应关系 Python(本地文件操作接口) mox.file(MoXing文件操作接口) tf.gfile(TensorFlow文件操作接口) glob.glob mox.file.glob tf.gfile.Glob os.listdir mox.file.list_directory(..., recursive=False) tf.gfile.ListDirectory os.makedirs mox.file.make_dirs tf.gfile.MakeDirs os.mkdir mox.file.mk_dir tf.gfile.MkDir os.path.exists mox.file.exists tf.gfile.Exists os.path.getsize mox.file.get_size - os.path.isdir mox.file.is_directory tf.gfile.IsDirectory os.remove mox.file.remove(..., recursive=False) tf.gfile.Remove os.rename mox.file.rename tf.gfile.Rename os.scandir mox.file.scan_dir - os.stat mox.file.stat tf.gfile.Stat os.walk mox.file.walk tf.gfile.Walk open mox.file.File tf.gfile.FastGFile(tf.gfile.Gfile) shutil.copyfile mox.file.copy tf.gfile.Copy shutil.copytree mox.file.copy_parallel - shutil.rmtree mox.file.remove(..., recursive=True) tf.gfile.DeleteRecursively
  • 步骤四:发布Workflow至运行态 发布Workflow至运行态完成后需要进行配置,详细参考2。更多发布方式请参考发布Workflow。 Workflow开发完成后,执行如下代码发布Workflow至运行态。日志打印显示发布成功,则可前往ModelArts的Workflow页面中查看新发布的工作流。 workflow.release() 图3 发布成功 前往ModelArts控制台去查看新发布的Workflow,进入Workflow详情,单击“配置”进行参数配置。工作流相关的配置执行操作可参考如何使用Workflow。 图4 发布工作流
  • 启动团队标注任务 登录到console标注页面后在“我参与的”页签下,可查看到分配的标注任务,单击任务名称,可进入标注页面。不同类型的标注作业,标注方式不同,详细请参见: 标注图片(图像分类) 标注图片(物体检测) 标注文本(文本分类) 标注文本(命名实体) 标注文本(文本三元组) 标注音频(语音分割) 在标注页面中,每个成员可查看“未标注”、“待确认”、“已驳回”、“待审核”、“审核通过”、“验收通过”的图片信息。请及时关注管理员驳回以及待修正的图片。 当团队标注任务中,分配了Reviewer角色,则需要对标注结果进行审核,审核完成后,再提交给管理员验收。 图7 成员标注平台
  • 操作步骤 将本地命令复制至ECS服务器请参考如下方法: 在ECS桌面单击“复制粘贴”,使用快捷键“Ctrl+V”将命令粘贴至窗口中并单击“发送”,将复制的命令发送至命令行窗口,如下图所示。 图3 复制粘贴按钮 图4 粘贴并发送安装命令 登录弹性云服务器。根据需要选择登录方式,具体操作请参考登录弹性云服务器 。 执行如下命令安装libfontconfig1。 sudo apt-get install -y adduser libfontconfig1 回显如下代表执行成功: 执行如下命令下载Grafana安装包。 wget https://dl.grafana.com/oss/release/grafana_9.3.6_amd64.deb --no-check-certificate 下载完成: 执行如下命令安装Grafana。 sudo dpkg -i grafana_9.3.6_amd64.deb 执行命令启动Grafana。 sudo /bin/systemctl start grafana-server 在本地PC访问Grafana配置。 确保ECS绑定了弹性公网IP,且对应配置正确(入方向放开TCP协议的3000端口,出方向全部放通)。设置如下: 单击ECS服务器名称进入详情页,单击“安全组”页签,单击“配置规则”。 单击“入方向规则”,入方向放开TCP协议的3000端口,出方向默认全部放通。 在浏览器中输入“http://{弹性公网IP}:3000”,即可进行访问。首次登录用户名和密码为admin,登录成功后请根据提示修改密码。
  • 操作步骤 在新版自动学习页面,单击项目名称进入运行总览页面,单击“数据标注”节点的“实例详情”进入数据标注页面,完成数据标注。 图1 完成数据标注 返回新版自动学习页面,单击数据标注节点的“继续运行”,然后等待工作流按顺序进入训练节点。 模型将会自动进入训练,无需人工介入,训练时间相对较长,建议您耐心等待。如果关闭或退出此页面,系统仍然在执行训练操作。 在“物体检测”节点中,待训练状态由“运行中”变为“运行成功”,即完成模型的自动训练。 图2 运行成功 训练完成后,您可以单击物体检测节点上方的按钮,查看相关指标信息,如“准确率”、“评估结果”等。评估结果参数说明请参见表1。 图3 模型评估报告 表1 评估结果参数说明 参数 说明 recall:召回率 被用户标注为某个分类的所有样本中,模型正确预测为该分类的样本比率,反映模型对正样本的识别能力。 precision:精确率 被模型预测为某个分类的所有样本中,模型正确预测的样本比率,反映模型对负样本的区分能力。 accuracy:准确率 所有样本中,模型正确预测的样本比率,反映模型对样本整体的识别能力。 f1:F1值 F1值是模型精确率和召回率的加权调和平均,用于评价模型的好坏,当F1较高时说明模型效果较好。 同一个自动学习项目可以训练多次,每次训练会注册一个新的AI应用一个版本。如第一次训练版本号为“0.0.1”,下一个版本为“0.0.2”。基于训练版本可以对训练模型进行管理。当训练的模型达到目标后,再执行部署上线的操作。
  • 训练基础镜像列表 ModelArts中预置的训练基础镜像如下表所示。 表1 ModelArts训练基础镜像列表 引擎类型 版本名称 PyTorch pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 TensorFlow tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 Horovod horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 MPI mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_1804-x86_64 不同区域支持的AI引擎有差异,请以实际环境为准。
  • 引擎版本:pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region}.myhuaweicloud.com/aip/pytorch_1_8:train-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-roma-20220309171256-40adcc1 镜像构建时间:20220309171256 (yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:10.2.89 cudnn:7.6.5.32 Python解释器路径及版本:/home/ma-user/anaconda3/envs/PyTorch-1.8/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/PyTorch-1.8/lib/python3.7/site-packages 部分三方包版本信息列表: Cython 0.27.3 dask 2022.2.0 easydict 1.9 enum34 1.1.10 torch 1.8.0 Flask 1.1.1 grpcio 1.44.0 gunicorn 20.1.0 idna 3.3 torchtext 0.5.0 imageio 2.16.0 imgaug 0.4.0 lxml 4.8.0 matplotlib 3.5.1 torchvision 0.9.0 mmcv 1.2.7 numba 0.47.0 numpy 1.21.5 opencv-python 4.1.2.30 toml 0.10.2 pandas 1.1.5 Pillow 9.0.1 pip 21.2.2 protobuf 3.19.4 scikit-learn 0.22.1 psutil 5.8.0 PyYAML 6.0 requests 2.27.1 scikit-image 0.19.2 ... 历史版本:无
  • 引擎版本二: horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region}.myhuaweicloud.com/aip/horovod_pytorch:train-horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d 镜像构建时间:20210912152543(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:11.1.1 cudnn:8.0.5.39 Python解释器路径及版本:/home/ma-user/anaconda3/envs/horovod-0.22.1-pytorch-1.8.0/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/horovod-0.22.1-pytorch-1.8.0/lib/python3.7/site-packages 部分三方包版本信息列表: Cython 0.27.3 dask 2021.9.0 easydict 1.9 enum34 1.1.10 horovod 0.22.1 Flask 1.1.1 grpcio 1.40.0 gunicorn 20.1.0 idna 3.2 mmcv 1.2.7 imageio 2.9.0 imgaug 0.4.0 lxml 4.6.3 matplotlib 3.4.3 torch 1.8.0 tensorboardX 2.0 numba 0.47.0 numpy 1.17.0 opencv-python 4.1.2.30 torchtext 0.5.0 pandas 1.1.5 Pillow 6.2.0 pip 21.0.1 protobuf 3.17.3 scikit-learn 0.22.1 psutil 5.8.0 PyYAML 5.1 requests 2.26.0 scikit-image 0.18.3 torchvision 0.9.0 ... 历史版本:无
  • 引擎版本:mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_1804-x86_64 镜像地址:swr.{region}.myhuaweicloud.com/aip/mindspore_1_3_0:train-mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-roma-20211104202338-f258e59 镜像构建时间:20211104202338(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:10.1.243 cudnn:7.6.5.32 Python解释器路径及版本:/home/ma-user/anaconda3/envs/MindSpore-1.3.0-gpu/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/MindSpore-1.3.0-gpu/lib/python3.7/site-packages 部分三方包版本信息列表: requests 2.26.0 dask 2021.9.0 easydict 1.9 enum34 1.1.10 mindspore-gpu 1.3.0 Flask 1.1.1 grpcio 1.41.1 gunicorn 20.1.0 idna 3.3 PyYAML 5.1 imageio 2.10.1 imgaug 0.4.0 lxml 4.6.4 matplotlib 3.4.2 psutil 5.8.0 scikit-image 0.18.3 numba 0.47.0 numpy 1.17.0 opencv-python 4.5.2.54 tifffile 2021.11.2 pandas 1.1.5 Pillow 8.4.0 pip 21.0.1 protobuf 3.17.3 scikit-learn 0.22.1 ... 历史版本:无
  • 引擎版本一:horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region}.myhuaweicloud.com/aip/horovod_tensorflow:train-horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d 镜像构建时间:20210912152543(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:10.1.243 cudnn:7.6.5.32 Python解释器路径及版本:/home/ma-user/anaconda3/envs/horovod_0.20.0-tensorflow_2.1.0/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/horovod_0.20.0-tensorflow_2.1.0/lib/python3.7/site-packages 部分三方包版本信息列表: Cython 0.29.21 dask 2021.9.0 easydict 1.9 enum34 1.1.10 horovod 0.20.0 Flask 1.1.1 grpcio 1.40.0 gunicorn 20.1.0 idna 3.2 tensorboard 2.1.1 imageio 2.9.0 imgaug 0.4.0 lxml 4.6.3 matplotlib 3.4.3 tensorflow-gpu 2.1.0 tensorboardX 2.0 numba 0.47.0 numpy 1.17.0 opencv-python 4.1.2.30 toml 0.10.2 pandas 1.1.5 Pillow 6.2.0 pip 21.0.1 protobuf 3.17.3 scikit-learn 0.22.1 psutil 5.8.0 PyYAML 5.1 requests 2.26.0 scikit-image 0.18.3 ... 历史版本:无
  • 引擎版本:tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 镜像地址:swr.{region}.myhuaweicloud.com/aip/tensorflow_2_1:train-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64-20210912152543-1e0838d 镜像构建时间:20210912152543(yyyy-mm-dd-hh-mm-ss) 镜像系统版本:Ubuntu 18.04.4 LTS cuda:10.1.243 cudnn:7.6.5.32 Python解释器路径及版本:/home/ma-user/anaconda3/envs/TensorFlow-2.1/bin/python, python 3.7.10 三方包安装路径:/home/ma-user/anaconda3/envs/TensorFlow-2.1/lib/python3.7/site-packages 部分三方包版本信息列表: Cython 0.29.21 dask 2021.9.0 easydict 1.9 enum34 1.1.10 tensorflow 2.1.0 Flask 1.1.1 grpcio 1.40.0 gunicorn 20.1.0 idna 3.2 tensorflow-estimator 2.1.0 imageio 2.9.0 imgaug 0.4.0 lxml 4.6.3 matplotlib 3.4.3 termcolor 1.1.0 scikit-image 0.18.3 numba 0.47.0 numpy 1.17.0 opencv-python 4.1.2.30 tifffile 2021.8.30 pandas 1.1.5 Pillow 6.2.0 pip 21.0.1 protobuf 3.17.3 scikit-learn 0.22.1 psutil 5.8.0 PyYAML 5.1 requests 2.26.0 ... 历史版本:无
  • Step3 在TMS中根据资源类型查询ModelArts资源使用情况 登录TMS控制台,在资源标签页面根据资源类型和资源标签查询指定区域的资源任务。 区域:使用华为云的具体Region,区域概念请参见什么是区域、可用区?。 资源类型:ModelArts支持查询的资源类型如表1所示。 资源标签:不填写标签时,表示查询所有资源,无论此资源是否有配置标签。选择相应标签查询资源,用户可以通过多个标签组合查询资源使用情况。 表1 ModelArts的资源类型 资源类型 说明 ModelArts-Notebook ModelArts的开发环境Notebook对应的资源类型。 ModelArts-TrainingJob ModelArts的训练作业对应的资源类型。 ModelArts-RealtimeService ModelArts的推理在线服务对应的资源类型。 ModelArts-ResourcePool ModelArts的专属资源池对应的资源类型。 如您的组织已经设定ModelArts的相关标签策略,则需按照标签策略规则为资源添加标签。标签如果不符合标签策略的规则,则可能会导致资源创建失败,请联系组织管理员了解标签策略详情。
  • Step2 在ModelArts任务中添加标签 在ModelArts中创建Notebook、创建训练作业、创建推理在线服务时,对这些任务配置标签。 在ModelArts的Notebook中添加标签。 可以在创建Notebook页面添加标签,也可以在已经创建完成的Notebook详情页面的“标签”页签中添加标签。 在ModelArts的训练作业中添加标签。 可以在创建训练作业页面添加标签,也可以在已经创建完成的训练作业详情页面的“标签”页签中添加标签。 在ModelArts的在线服务中添加标签。 可以在创建在线服务页面添加标签,也可以在已经创建完成的在线服务详情页面的“标签”页签中添加标签。 图1 添加标签 用户也可以在ModelArts任务中添加标签时,创建新的标签,直接输入标签键和标签值即可。此处创建的标签仅当前的项目Project可见。不同的项目中查看不到。
  • Step2 上传Summary数据 在开发环境中使用MindInsight可视化功能,需要用到Summary数据。 Summary数据可以直接传到开发环境的这个路径下/home/ma-user/work/,也可以放到OBS并行文件系统中。 Summary数据上传到Notebook路径/home/ma-user/work/下的方式,请参见上传数据至Notebook。 Summary数据如果是通过OBS并行文件系统挂载到Notebook中,请将模型训练时产生的Summary文件先上传到OBS并行文件系统,并确保OBS并行文件系统与ModelArts在同一区域。在Notebook中启动MindInsight时,Notebook会自动从挂载的OBS并行文件系统目录中读取Summary数据。
  • 创建OBS操作步骤 登录OBS管理控制台,在桶列表页面右上角单击“创建桶”,创建OBS桶。例如,创建名称为“c-flowers”的OBS桶。 图2 创建桶 创建桶的区域需要与ModelArts所在的区域一致。例如:当前ModelArts在华北-北京一区域,在对象存储服务创建桶时,请选择华北-北京一。 如何查看OBS桶与ModelArts的所处区域,请参见查看OBS桶与ModelArts是否在同一区域。 请勿开启桶加密,ModelArts不支持加密的OBS桶,会导致ModelArts读取OBS中的数据失败。 在桶列表页面,单击桶名称,进入该桶的概览页面。 图3 桶列表 单击左侧导航的“对象”,在对象页面单击新建文件夹,创建OBS文件夹。例如,在已创建的OBS桶“c-flowers”中新建一个文件夹“flowers”。具体请参见新建文件夹章节。 图4 新建文件夹
  • (可选)启用ranktable动态路由 如果训练作业需要使用ranktable动态路由算法进行网络加速,则可以联系技术支持开启集群的cabinet调度权限。同时,训练作业要满足如下要求才能正常实现ranktable动态路由加速。 训练使用的Python版本是3.7或3.9。 训练作业的任务节点数要大于或等于3。 路由加速的原理是改变rank编号,所以代码中对rank的使用要统一。 将训练作业完成如下修改后,启动训练作业即可实现网络加速。 将训练启动脚本中的“NODE_RANK="$VC_TASK_INDEX"”修改为“NODE_RANK="$RANK_AFTER_ACC"”。 将训练启动脚本中的“MASTER_ADDR="${VC_WORKER_HOSTS%%,*}"”修改为“MASTER_ADDR="${MA_VJ_NAME}-${MA_TASK_NAME}-${MA_MASTER_INDEX}.${MA_VJ_NAME}"”。 在创建训练作业页面配置环境变量“ROUTE_PLAN”,取值为“true”,具体操作请参见管理训练容器环境变量。
  • 创建训练作业 本案例创建训练作业时,需要配置如下参数。 表1 创建训练作业的配置说明 参数名称 说明 “创建方式” 选择“自定义算法”。 “启动方式” 选择“自定义”。 “镜像” 选择用于训练的自定义镜像。 “代码目录” 执行本次训练作业所需的代码目录。本文示例的代码目录为“obs://test-modelarts/ascend/code/”。 “启动命令” 镜像的Python启动命令。本文示例的启动命令为“bash ${MA_JOB_DIR}/code/run_torch_ddp_npu.sh”。其中,启动脚本的完整代码请参见代码示例。
  • MRS 导入数据到ModelArts数据集 ModelArts支持从MRS服务中导入存储在HDFS上的csv格式的数据,首先需要选择已有的MRS集群,并从HDFS文件列表选择文件名称或所在目录,导入文件的列数需与数据集schema一致。MRS的详细功能说明,请参考MRS用户指南。 图1 从MRS导入数据 集群名称:系统自动将当前账号下的MRS集群展现在此列表中,但是流式集群不支持导入操作。请在下拉框中选择您所需的集群。 文件路径:根据选择的集群,输入对应的文件路径,此文件路径为HDFS路径。 导入是否包含表头:开启表示导入时将表头同时导入。 父主题: 导入数据到ModelArts数据集
  • 查看AI应用详情 当AI应用创建成功后,您可以进入AI应用详情页查看AI应用的信息。 登录ModelArts管理控制台,在左侧菜单栏中选择“AI应用”,进入“自定义应用”列表页面。 单击目标AI应用名称,进入AI应用详情页面。 您可以查看AI应用的基本信息、模型精度,以及切换页签查看更多信息。 表3 AI应用基本信息 参数 说明 名称 AI应用的名称。 状态 AI应用当前状态。 版本 AI应用当前版本。 ID AI应用的ID。 描述 单击编辑按钮,可以添加AI应用的描述。 部署类型 AI应用支持部署的服务类型。 元模型来源 显示元模型的来源,主要有从训练中选择、从对象存储服务(OBS)中选择、从容器镜像中选择。不同来源的元模型,AI应用显示的参数会不同。 训练作业名称 如果元模型来源于训练作业,则显示关联的训练作业,单击训练作业名称可以直接跳转到训练作业详情页面。 训练作业版本 如果元模型来源于训练作业且为旧版训练作业,显示训练作业版本。 元模型存储路径 如果元模型来源于对象存储服务,显示元模型的存放路径。 容器镜像存储路径 如果元模型来源于容器镜像,显示容器镜像存储路径。 AI引擎 如果元模型来源于训练作业/对象存储服务,显示AI应用使用的AI引擎。 引擎包地址 如果元模型来源于对象存储服务(AI引擎为Custom),显示引擎包地址。 运行环境 如果元模型来源于训练作业/对象存储服务(AI引擎为预置引擎),显示元模型依赖的运行环境。 容器调用接口 如果元模型来源于对象存储服务(AI引擎为Custom)/容器镜像,显示AI应用启动的协议和端口号。 推理代码 如果元模型来源于训练作业且为旧版训练作业,则显示推理代码的存放路径。 镜像复制 如果元模型来源于对象存储服务/容器镜像,显示镜像复制功能状态。 动态加载 如果元模型来源于训练作业/对象存储服务,显示AI应用是否支持动态加载。 大小 AI应用的大小。 健康检查 如果元模型来源于对象存储服务/容器镜像,显示健康检查状态。当健康检查为开启时,会根据您启用的探针显示对应探针的参数设置情况。 启动探针:用于检测应用实例是否已经启动。如果提供了启动探针(startup probe),则禁用所有其他探针,直到它成功为止。如果启动探针失败,将会重启实例。如果没有提供启动探针,则默认状态为成功Success。 就绪探针:用于检测应用实例是否已经准备好接收流量。如果就绪探针失败,即实例未准备好,会从服务负载均衡的池中剔除该实例,不会将流量路由到该实例,直到探测成功。 存活探针:用于检测应用实例内应用程序的健康状态。如果存活探针失败,即应用程序不健康,将会自动重启实例。 每种探针下会显示以下字段:检查方式、健康检查URL(检查方式为“HTTP请求检查”时显示)、健康检查命令(检查方式为“执行命令检查”时显示)、健康检查周期、延迟时间、超时时间、最大失败次数。 AI应用说明 显示创建AI应用时添加的AI应用说明文档信息。 系统运行架构 显示系统运行架构。 推理加速卡类型 显示推理加速卡类型。 表4 AI应用页签详情 参数 说明 模型精度 显示该AI应用的模型召回率、精准率、准确率和F1值。 参数配置 可以查看AI应用的apis定义详情,以及AI应用的入参和出参。 运行时依赖 查看模型对环境的依赖。当构建任务失败后可以编辑运行时依赖,保存修改后将触发镜像重新构建。 事件 展示AI应用创建过程中的关键操作进展。 事件保存周期为3个月,3个月后自动清理数据。 查看AI应用的事件类型和事件信息,请参见查看ModelArts模型事件 使用约束 根据创建AI应用时的设置,显示部署服务的使用约束,如请求模式、启动命令、模型加密等。对于异步请求模式的AI应用,可显示输入模式、输出模式、服务启动参数和作业配置参数等参数。 关联服务 展示使用该AI应用部署的服务列表,单击服务名称可以直接跳转到服务详情页面。
  • 重试/停止/继续运行Workflow节点 重试 当单个节点运行失败时,用户可以通过重试按钮重新执行当前节点,无需重新启动工作流。在当前节点的运行状况页面,单击“重试”。在重试之前您也可以前往全局配置页面修改配置,节点重试启动后新修改的配置信息可以在当前执行中立即生效。 停止 单击指定节点查看详情,可以对运行中的节点进行停止操作。 继续运行 对于单个节点中设置了需要运行中配置的参数时,节点运行会处于“等待操作”状态,用户完成相关数据的配置后,可单击“继续运行”按钮并确认继续执行当前节点。
  • 部分运行Workflow节点 针对大型、复杂的Workflow,为节省重复运行消耗的时间,在运行业务场景时,用户可以选择其中的部分节点作为业务场景运行,工作流在执行时将会按顺序执行部分运行节点。 部分运行Workflow节点,首先在新开发Workflow时,需要预先定义好部分运行场景。具体流程如下: 通过SDK创建工作流时,预先定义好部分运行场景,具体可参考在Workflow中指定仅运行部分节点。 在配置工作流时,打开“部分运行”开关,选择需要执行的部分运行场景,并填写完善相关节点的参数。 图1 部分运行 保存上一步的配置后,单击“启动”按钮即可启动部分运行场景。
  • 构建自定义训练镜 当基础镜像里的软件无法满足您的程序运行需求时,您还可以基于这些基础镜像制作一个新的镜像并进行训练。镜像制作流程如图1所示。 图1 训练作业的自定义镜像制作流程 场景一:预置镜像满足ModelArts训练平台约束,但不满足代码依赖的要求,需要额外安装软件包。 具体案例参考使用预置镜像制作自定义镜像用于训练模型。 场景二:已有本地镜像满足代码依赖的要求,但是不满足ModelArts训练平台约束,需要适配。 具体案例参考已有镜像迁移至ModelArts用于训练模型。 场景三: 当前无可使用的镜像,需要从0制作镜像(既需要安装代码依赖,又需要制作出的镜像满足MAModelArts平台约束)。具体案例参考: 从0制作自定义镜像用于创建训练作业(PyTorch+CPU/GPU) 从0制作自定义镜像用于创建训练作业(MPI+CPU/GPU) 从0制作自定义镜像用于创建训练作业(Tensorflow+GPU) 从0制作自定义镜像用于创建训练作业(MindSpore+Ascend)
  • 训练作业的预置框架介绍 ModelArts中预置的训练基础镜像如下表所示。 表1 ModelArts训练基础镜像列表 引擎类型 版本名称 PyTorch pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 TensorFlow tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 Horovod horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 MPI mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_1804-x86_64
共100000条