AIstation使用指南
整体介绍
-
软件介绍
AIStation 平台对集群资源统一管理和调度,实现无人干预自动优化调度资源,达到训练任务自动分配资源,训练完成后自动释放资源。该平台提供全业务流程管理,包括数据管理、模型开发、模型训练、模型导出整个业务场景。在集群监控方面提供细粒度的 GPU 资源监控,实现任务和资源性能监控实时视图查看,方便用户了解整个任务性能的全过程。
-
访问系统要求
PC 电脑浏览器要求:Chrome80 版本以上。
数据及应用程序上传
上传数据
将数据集保存在共享目录下,当普通用户运行开发环境或训练任务时:平台会将选择的数据集缓存到任务所在节点目录,提高任务的运行效率,且平台有清除缓存数据集的机制。 平台建议数据集保存的目录有三个:数据集目录、公共目录下的全局共享和组共享目录;当系统管理员没有开启数据集权限管理功能时:
数据集目录对平台所有用户可见;当开启数据集权限管理功能时,普通用户只能看到由系统管理员授权的数据集(详见用户手册)。 全局共享目录中设置为公共目录的文件夹对平台中所有用户可见,而组共享目录只有组内用户可见。
其中,数据集目录只能由系统管理员提供 xftp 工具通过后台上传;全局共享和组共享目录,系统管理员和普通用户都可以通过 web 页面的上传功能进行上传,但文件大小不能大于 1G;系统管理员还可通过 xftp 工具上传文件到共享目录,但普通用户没有此权限。
如果数据集有一定的安全性和保密性,可以将数据集放到个人用户目录下,当创建开发环境和训练任务时,数据集路径要选择个人用户目录下相应的数据集,平台会将此数据集缓存到节点的相应目录下,用于训练。 不建议用户直接使用个人目录下(共享存储)的数据集,影响训练效率。
数据解压操作
压缩文件的解压操作:系统管理员可以解压除数据集目录之外任一目录下的压缩文件;普通用户只能解压其个人用户目录下的压缩文件。
具体操作如下:
1. 进入【业务管理】->【文件管理】菜单,进入目录
2. 选中压缩文件,单击右键,弹出右键菜单,再单击解压到当前目录,则解压压缩文件,支持的解压文件格式:tar.gz、zip。
解压完成,则显示解压后的文件
开发环境创建
注意
-
创建任意框架的开发环境,进入 shell 终端后,默认目录为当前用户目录;平台自带的算例存放在/defaultShare/user-data目录下,可以通过文件管理中复制功能复制到用户目录。
以下以 inspur> 用户为例,所用的资源组是通用标签默认资源组(可根据实际情况选择);在/inspur/models> 目录下,包含所有框架的训练脚本信息;可以通过 README获取如何运行作业脚本和注意事项;
-
可以通过 aistation_DL_train.sh 脚本提交相应框架的作业脚本;如提交 caffe 单机单卡作业:./aistation_DL_train.sh caffe mnist 1
如提交 caffe 单机多卡作业:./aistation_DL_train.sh caffe mnist 2 (创建开发环境时,需要选择多卡 GPU 资源)
-
可以到具体框架脚本目录下,通过运行命令提交作业脚本(下文详细说明各框架单卡运行作业脚本)
由于所有作业脚本中路径以 inspur 为默认用户;如果是其他用户,首先,通过运行./user_path_change.shuser_name 修改作业脚本的中路径信息。
开发环境创建
创建开发环境步骤如下:
- 点击右上角创建按钮:
- 选择相应框架的镜像
-
开发环境参数说明
-
创建开发环境时,自动根据当前的日期和时间进行开发环境的名称的命名。用户可以修改开发环境名称。
-
用户可以选择开发环境要创建到的资源组。默认会选择到默认资源组。
-
右侧显示当前用户所属用户组和个人可用资源以及当前所选资源组下各节点可用资源情况,若选择具体的节点,开发环境将创建在选择的节点上,否则将由系统内部调度机制选择节点。
-
GPU 类型选项列出所选择资源组中所包含的 GPU 卡类型。选择 GPU 卡的类型之后,开发环境会调度到使用对应 GPU 卡的物理机。
-
用户可以配置开发环境所使用的 GPU 卡个数和 CPU 的核数。
-
点击数据集路径右侧的文件夹图标,可以选择要挂载的数据集路径。在弹出的路径选择窗口中选择要挂载的数据集,可以选择多个需要的数据集目录(如下图)。在创建开发环境时,会将选择的路径挂载到环境中。根据是否更新数据集的开关,可以选择是否会在本地已有缓存数据集的情况下,将数据集更新的部分缓存至本地。
点击更多选项,可以选择开发环境的更多设置。如下图。
内存:大小默认为 0,表明不限制内存。用户可以自行设置。
端口:可以让用户自行设置一个用户需要的端口。
shm_size:share memory size。默认为物理机内存一半。
挂载路径:用户可以挂载除数据集和启动脚本之外的路径。
副本数:一次创建多个开发环境。
在开发环境创建过程中,数据集在同步下载,会显示下载进度,等开发环境创建完成后,点击开发环境名称,进入开发环境页面。 -
-
开发环境五个标签页:
- Jupyter:用户可通过 Jupyter 工具进行代码的编写、调试等工作。
- Shell 终端:用户进到所创建的开发环境终端中,进行模型的开发与调试。
- 容器实例:展示开发环境具体的容器信息以及其资源监控信息(CPU、GPU、内存、磁盘网络)。
- 基本信息:展示开发环境的名称、创建时间、所用镜像等基本信息。
- 数据集:如果数据集过大,等开发创建完成之后,也可点击数据集页面查看数据集下载详情。
开发环境模型调试
参考 3.1 创建开发环境的步骤,选择对应框架的镜像,例如 Caffe 的镜像在Caffe标签页下;按需设置相应的参数,其中数据集路径需要选择训练脚本对应的数据集,其他参数可按需设置。
Caffe 框架
镜像:Caffe 的镜像在 Caffe 标签页下; 数据集路径:MNIST_caffe;
进入 Shell 终端,切换到 caffe/mnist 目录:
cd /inspur/models/caffe/mnist
启动命令:
caffe train solver=solver_lenet.prototxt -gpu all
注意:Caffe 框架不支持开启 GPU 共享的资源组。
Tensorflow 框架
镜像:TensorFlow 的镜像在 TensorFlow标签页下; 数据集路径:MNIST_data; 进入 Shell 终端,切换到 tensorflow/mnist 目录:
cd /inspur/models/tensorflow/mnist
启动命令:
python tf_mnist_single.py
Mxnet 框架
镜像:MxNet 的镜像在 MxNet 标签页下;
数据集路径:MNIST_data;
进入Shell 终端,切换到 mxnet/mnist 目录:
cd /inspur/models/mxnet
启动命令:
python mx_mnist_single.py
Pytorch 框架
镜像:Pytorch 的镜像在 Pytorch
标签页下;数据集路径:MNIST_pytorch;
进入 Shell 终端,切换到进入 pytorch/mnist 目录:
cd /inspur/models/pytorch/mnist
启动命令:
python pytorch_mnist_single.py
PaddlePaddle 框架
镜像:PaddlePaddle 的镜像在 PaddlePaddle
标签页下:数据集路径:MNIST_data;
进入 Shell 终端,切换到 paddle 目录:
cd /inspur/models/paddle
启动命令:
python paddle_mnist_single.py
Other 框架
通过相应的镜像创建环境,脚本及数据集需要与镜像一致。
远程连接开发环境
点击红框图标,会显示当前开发环境的连接命令。打开一个 Shell软件,复制命令就可以在 Shell 中登录本开发环境。
-
如果是本地xshell 直接登录的前提下需要把复制中的-p 参数去掉,比如ssh
[root@10.151.11.52]{.underline} 33234
-
如果是本地 xshell 通过已有的系统中登录,直接复制就可以连接,比如 ssh
[root@10.151.11.52]{.underline} -p 33234
-
其中密码用户可以按需设置成随机或者自定义密码:
管理员相关设置
系统管理员登录后,在系统设置中可以进行开发环境的资源上限设置和超时设置。
训练平台任务管理
训练任务创建
-
点击创建按钮,开始创建训练任务
-
设置训练任务相关参数,训练任务
训练任务参数意义:
- 名称:任务名字(只接受英文字母、数字和下划线,不能以下划线开头)。
- 镜像:在第一个窗口选择对应框架名称,在第二个窗口选择框架版本。
- 资源组:选择资源组(点击窗口后面的按钮会弹出 GPU 类型)。右侧显示当前用户所属用户组和个人可用资源以及当前所选资源组下各节点资源剩余情况;若选择具体的节点,训练任务将创建在选择的节点上,否则将由系统内部调度机制选择节点。
- GPU 类型:选择资源组内相应的 GPU 卡类型。
- CPU/GPU:选择worker节点的 CPU/GPU资源配置方案,当配额方案是"自定义"时,会弹出 GPU 和 CPU窗口,可以自定义设置资源配置方案。
- 脚本模式:点击窗口后第一个按钮,通过历史访问或者个人数据选择相应训练脚本,或者使用命令行模式。
- 执行目录:当选择脚本模式时,根据脚本需要,请指定相应的执行目录(一般为脚本所在目录)。
- 数据集:点击窗口后按钮可以弹出"选择数据集窗口",选定后点击确定。勾选下方"更新数据集"选项可以在进行训练前更新所选定的数据集。 点击"更多配置"可以显示以下信息选项:
- 内存:配置训练任务 worker 节点所需要的内存,当设置为 0 时表示无限制(需要小于 worker 所在主机目前剩余内存量)。
- 日志路径:可视化输出路径,点击窗口后的按钮,选择相应路径后点击确定。
- 目录挂载:如果设置了共享目录,可以选择要挂载的公共文件夹。
- shm_size:shm size 默认是物理机内存一半。
- 部署类型:根据所用框架及训练任务,可选择不同的部署类型(单机、分布式、MPI)。
- Worker 个数:根据不同的部署类型,显示或者设置不同的 Worker 个数。
-
创建任务成功后,任务状态进入"排队中";当资源分配完成后,任务状态进入"运行中",单击任务名称,可查看训练任务的输出日志;训练完成后任务自动进入"完成任务"内,训练成功时任务状态为"完成",训练失败时任务状态为"失败"。
注意:以下以inspur 用户为例,在/{用户名}/models目录下,包含所有框架的训练脚本信息;详细介绍见上一章。
单机任务创建
Caffe 单机任务
-
点击创建按钮,开始创建 Caffe 单机任务。
-
填写任务信息
镜像:选择 Caffe 镜像;
数据集:/MNIST_caffe;
启动文件:Caffe
单机训练脚本:/inspur/models/caffe/mnist/solver_lenet.prototxt
或者使用命令行模式:caffe train --solver=/inspur/models/caffe/mnist/solver_lenet.prototxt --gpu=all
其他参数按需设置。
Tensorflow 单机任务
-
点击创建按钮,开始创建 Tensorflow 单机任务。
-
填写任务信息
镜像:选择 Tensorflow 镜像;
数据集:/MNIST_data;
启动文件: Tensorflow
单机训练脚本,/inspur/models/tensorflow/mnist/tf_mnist_single.py
或者使用命令行模式: python /inspur/models/tensorflow/mnist/tf_mnist_single.py
其他参数按需选择。
Mxnet 单机任务
-
点击创建按钮,开始创建 Mxnet 单机任务。
-
填写任务信息
镜像:选择 Mxnet 镜像;
数据集:/MNIST_data;
启动文件:Mxnet
单机训练脚本,/inspur/models/mxnet/mx_mnist_single.py
或者使用命令行模式:python /inspur/models/mxnet/mx_mnist_single.py
其他参数按需选择。
Pytorch 单机任务
-
点击创建按钮,开始创建 Pytorch 单机任务。
-
填写任务信息
镜像:选择 Pytorch 镜像;
数据集:/MNIST_pytorch;
启动文件:Pytorch
单机训练脚本,/inspur/models/pytorch/mnist/pytorch_mnist_single.py
或者使用命令行模式:python /inspur/models/pytorch/mnist/pytorch_mnist_single.py
其他参数按需选择。
PaddlePaddle 单机任务
-
点击创建按钮,开始创建 PaddlePaddle 单机任务。
-
填写任务信息
镜像:选择 PaddlePaddle 镜像; 镜像:选择
数据集:/MNIST_data;启动文件:Paddlepaddle
单机训练脚本,/inspur/models/paddle/paddle_mnist_single.py
或者使用命令行模式:python /inspur/models/paddle/paddle_mnist_single.py
其他参数按需选择。
分布式任务创建
Tensorflow 分布式任务
-
点击创建按钮,开始创建 Tensorflow 分布式任务。
-
填写任务信息
镜像:选择 Tensorflow 镜像;
数据集:/MNIST_data;
启动文件:Tensorflow
分布式训练脚本,
/inspur/models/tensorflow/mnist/tf_mnist_dist.py
或者 Benchmark 分布式测试脚本:
inspur/models/tensorflow/benchmarks-cnn_tf_v1.15_compatible/scripts/tf_cnn_benchmarks/benchmark_cnn_distr> ibuted_test_runner.py;
部署类型:PS/Worker;PS 个数:1;Worker 个数:2;
其他参数按需设置。
Mxnet 分布式任务
-
点击创建按钮,开始创建 Mxnet 分布式任务。
-
填写任务信息
镜像:选择 Mxnet 镜像;
数据集:/MNIST_data;
启动文件:Mxnet 分布式训练脚本,/inspur/models/mxnet/mx_mnist_dist/mx_mnist_dist.py(注意:若使用 GPU,脚本中 84 行,gpus 需修改为 gpus:'0');
部署类型:Server/Worker;Server 个数:1;Worker 个数:2;
其他参数按需设置。
Pytorch 分布式任务
-
点击创建按钮,开始创建 Pytorch 分布式任务。
-
填写任务信息
镜像:选择 Pytorch 镜像;
数据集:/MNIST_pytorch;
启动文件:Pytorch 分布式训练脚本,/inspur/models/pytorch/mnist/pytorch_mnist_dist.py
部署类型:Master/Worker;Master 个数:1,Worker 个数:2;
其他参数按需设置。
MPI 任务创建
Caffe MPI 任务
-
点击创建按钮,开始创建 Caffe MPI 任务。
-
填写任务信息
镜像:选择 Caffe 镜像;
数据集:/MNIST_caffe;
部署类型:MPI;Worker 个数:2;
启动文件:Caffe MPI 训练脚本,/inspur/models/caffe/mnist/solver_lenet.prototxt
或者使用命令行模式:
mpirun -allow-run-as-root -np 2 caffe train solver=/inspur/models/caffe/mnist/solver_lenet.prototxt gpu all
其他参数按需选择。
Tensorflow MPI 任务
-
点击创建按钮,开始创建 Tensorflow MPI 任务。
-
填写任务信息
镜像:选择 Tensorflow 镜像;
数据集:/MNIST_data;
部署类型:MPI;Worker 个数:2;
此镜像只能使用命令行模式:
mpirun --oversubscribe --allow-run-as-root -np 2 -mca pml ob1 python /inspur/models/horovod/tensorflow_mnist.py --data_dir=/MNIST_data
其他参数按需设置。
Mxnet MPI 任务
-
点击创建按钮,开始创建 Mxnet MPI 任务。
-
填写任务信息
镜像:选择 Mxnet 镜像;
数据集:/MNIST_data;
此镜像只能使用命令行模式:
mpirun oversubscribe allow-run-as-root -np 2 -mca pml ob1 python /inspur/models/horovod/mxnet_mnist.py data_dir=/MNIST_data
部署类型:MPI;Worker 个数:2;
其他参数按需设置。
Pytorch MPI 任务
-
点击创建按钮,开始创建 Pytorch MPI 任务。
-
填写任务信息
镜像:选择 Pytorch 镜像;
数据集:/MNIST_pytorch;
部署类型:MPI;Worker 个数:2;
启动文件:Pytorch MPI
训练脚本,/inspur/models/horovod/pytorch_mnist.py
或者使用命令行模式:
mpirun -np 2 -allow-run-as-root python > /inspur/models/horovod/pytorch_mnist.py
任务的可视化
训练任务的可视化:可以在任务训练过程中查看或者任务训练完成后进行查看,下面通过选择完成的任务介绍可视化。
Caffe 可视化
网络结构可视化
-
可视化任务---创建
点击可视化按钮,打开 Netscope 标签页,开始创建Caffe 可视化任务。
-
Netscope
进入文件管理系统,打开 Caffe的网络结构文件(train_lenet.prototxt),复制全文;在左侧输入框内粘贴全文,键入shift+enter,得到网络结构。
训练过程可视化
训练过程可视化只支持单机任务:
-
可视化任务---创建
点击训练过程可视化按钮,开始创建 Caffe训练过程可视化。
-
可视化弹出训练过程可视化窗口,查看训练时间,损失率,学习率。
TensorFlow 可视化
-
可视化任务---创建
点击可视化按钮,开始创建 TensorFlow 可视化任务。
-
选择启动文件夹单击需要打开的可视化文件夹。
-
TensorBoard
打开 TensorBoard 标签页,展示 TensorFlow 可视化信息。
Mxnet 可视化
-
可视化任务---创建点击可视化按钮,开始创建 Mxnet 可视化任务。
-
选择启动文件夹单击需要打开的可视化文件夹。
-
TensorBoard
打开 TensorBoard 标签页,展示 Mxnet 可视化信息。
Pytorch 可视化
-
可视化任务---创建点击可视化按钮,开始创建 Pytorch 可视化任务。
-
选择启动文件夹单击需要打开的可视化文件夹。
-
TensorBoard
打开 TensorBoard 标签页,展示 Pytorch 可视化信息。
PaddlePaddle 可视化
-
可视化任务---创建
点击可视化按钮,开始创建 PaddlePaddle 可视化任务(其模型为自带的例子)。
-
选择启动文件夹
单击需要打开的可视化文件夹。
-
Visual DL
打开 VisualDL 标签页,展示 PaddlePaddle 可视化信息。
紧急任务
提交紧急任务
普通用户提交紧急任务,需要系统管理员开启此用户提交紧急任务的权限。
-
点击创建按钮,创建任务。
-
打开"紧急任务"开关。
-
点击"确定"按钮,提交一个紧急任务。
紧急任务重新排序
-
系统管理员进入"训练管理"业务模块,点击"重新排队"调整紧急任务顺序。
-
选中想要调整的紧急任务,可以执行置顶、置低、上移和下移操作
镜像管理
创建镜像
-
进入【业务管理】->【镜像管理】菜单,单击【创建】
-
弹出页面
选择dockerfile文件(普通用户的dockerfile需要在自己的用户目录下,系统管理员的dockerfile 文件需上传到 user-fs 目录下),设置镜像名称,标签,备注信息;
建议尽量将 dockerfile 放在空目录中或者当前目录下只包含用于dockerfile 制作镜像的文件/文件夹
注意:镜像名称和标签需要满足docker官方规范,只能包括小写字母、数字、下划线(_)、连接线(-)、反斜线(/),且只能使用小写字母或数字开头,并且特殊字符(下划线、连接线、反斜线)不能连续使用。
-
点击【确定】, 开始创建镜像, 点击传输列表,查看镜像制作进度
-
在传输列表上,点击日志图标,可以实时查看镜像的制作日志过程
导出镜像
只有普通用户有导出镜像的功能。
-
进入【镜像管理】菜单,选择要导出的镜像,点击导出图标
-
在【传输列表】中可以查看镜像导出进度和详细日志
-
导出成功,在用户的文件目录下可以看到导出镜像的 tar 包文件。
导入镜像
系统管理员和普通用户都有导入镜像的功能。
内部导入镜像
-
【镜像管理】菜单,单击【导入】
-
选择【内部导入】
内部导入是导入 tar、tgz 或者 tar.gz格式的镜像压缩包,选择压缩文件(压缩文件需要先上传到用户文件目录下),填写镜像名称、tag,备注。
注意:镜像名称和标签需要满足docker官方规范,只能包括小写字母、数字、下划线(_)、连接线(-)、反斜线(/),且只能使用小写字母或数字开头,并且特殊字符(下划线、连接线、反斜线)不能连续使用。
-
点击【确定】,在【传输列表】中可以查看导入进度和失败原因,也可点击日志图标查看详细日志。
-
导入成功后,在镜像列表中可以看到对应的镜像信息;导入失败,在【传输列表中】的【异常原因】中查看失败记录。
外部导入镜像
-
进入【镜像管理】菜单,单击【导入】
-
选择【外部导入】
外部导入指的是用户可以从 DockerHub 仓库和 NGC仓库拷贝镜像下载命令,输入
【下载命令】文本框内。
-
点击【确定】,在【传输列表】中可以查看镜像下载并推送到 harbor仓库的进度。
-
导入成功后,在镜像列表中可以看到对应的镜像信息;导入失败,在【传输列表中】的【异常原因】中查看失败记录。
删除镜像
系统管理员可以删除所有镜像;普通用户只能删除自己拥有的镜像。
-
进入【镜像管理】菜单,选择要删除的镜像,点击删除图标
-
在【传输列表】中可以查看镜像删除进度
镜像列表
-
进入【镜像管理】菜单,查看镜像列表
-
用户可以按照全部、个人、组、公共分类查看镜像信息
-
用户也可以将镜像按照【最近使用时间】和【镜像大小】排序查看
-
可以输入镜像名称和 tag 查询