华为云AI开发平台ModelArts使用自定义镜像创建训练作业(GPU)_云淘科技

基于自定义镜像训练模型仅适用于旧版训练模块(仅对部分存量用户可见,新用户不可见),新版训练请参见使用自定义镜像训练模型(新版训练)。

用户将自定义镜像制作完成并上传至SWR后,可在ModelArts管理控制台,使用自定义镜像创建训练作业,完成模型训练操作。

前提条件

已按照ModelArts规范制作自定义镜像包,使用自定义镜像创建训练作业需遵守的规范请参见训练作业自定义镜像规范。
已将自定义镜像上传至SWR服务,详细操作指导请参见制作并上传自定义镜像。

创建训练作业

进入ModelArts管理控制台,创建训练作业。在使用自定义镜像创建作业时,需关注“算法来源”、“环境变量”和“资源池”参数的设置。

“算法来源”

选择“自定义”页签。

“镜像地址”:镜像上传到SWR后生成的地址。

图1 SWR镜像地址

“代码目录”:训练代码文件存储的OBS路径。
“运行命令”:镜像启动后的运行命令,基本格式如下所示:

bash /home/work/run_train.sh {UserCommand}

bash /home/work/run_train.sh [python/bash/..] {file_location} {file_parameter}

“run_train.sh”为训练启动引导脚本。执行该脚本后,ModelArts将“代码目录”下的所有内容递归下载到容器本地路径,下载后的容器本地路径为 “/home/work/user-job-dir/${“代码目录”的最后一级名称}/”。

例如,训练代码文件的OBS路径为“obs://obs-bucket/new/train.py”,“代码目录”选择“obs://obs-bucket/new/”时,则下载后的容器本地代码目录对应为“/home/work/user-job-dir/new/”。下载后的容器本地训练代码路径为“/home/work/user-job-dir/new/train.py”,运行命令可以设置为:bash /home/work/run_train.sh python /home/work/user-job-dir/new/train.py {python_file_parameter}

使用自定义镜像创建训练作业过程中,ModelArts 允许用户完全自定义“运行命令”。“运行命令”中提到以下两种基本格式:

bash /home/work/run_train.sh {UserCommand}

bash /home/work/run_train.sh [python/bash/..] {file_location} {file_parameter}

其中,“run_train.sh,”为训练启动引导脚本。用户在制作自定义镜像过程中,可以自主实现训练启动引导脚本,也可以提前将训练代码置于自定义镜像环境中,无需遵循上述两种格式,实现完全的自定义“运行命令”。

“环境变量”

容器启动后,除了用户在训练作业中自行增加的“环境变量”外,其它加载的环境变量如表1所示。用户可以根据需求来确认在自己训练脚本的python中是否要使用这些环境变量,也可以通过运行命令中的“{python_file_parameter}”传入相关参数。

表1 可选环境变量说明

环境变量

说明

DLS_TASK_INDEX

当前容器索引,容器从0开始编号。

DLS_TASK_NUMBER

容器总数。对应“计算节点个数”。

DLS_APP_URL

代码目录。对应界面上“代码目录”配置,会加上协议名。比如,可直接使用“$DLS_APP_URL/*.py”来读取OBS下的文件。

DLS_DATA_URL

数据集位置。对应界面上“数据来源”,会加上协议名。

DLS_TRAIN_URL

训练输出位置。对应界面上“训练输出位置”,会加上协议名。

BATCH_{jobName}.0_HOSTS(单机)

当选择单机时,即计算节点个数为1时,此环境变量为“BATCH_{jobName}.0_HOSTS”。

HOSTS环境变量的格式为“hostname:port”。一个容器可以看到同一个作业中所有容器的HOSTS,根据索引的不同,分别为“BATCH_CUSTOM0_HOSTS”、“BATCH_CUSTOM1_HOSTS”等。当资源池为8GPU规格的专属资源池时, 容器的网络类型为主机网络,并且可以使用主机IB网络加速通信。当使用其他资源池时为容器网络。

说明:

使用主机IB网络加速通信时,IPoIB特性需要ip_mapper.py工具获取ib0网卡IP地址。

“资源池”

当用户选择GPU类型的资源池时,ModelArts会挂载高速固态硬盘(NVME SSD)至“/cache”目录,用户可以使用此目录来储存临时文件。

图2 创建训练作业

运行自定义镜像训练作业

用户上传自定义镜像到SWR后,在创建自定义镜像作业时,默认已经授权ModelArts去获取镜像运行。自定义审核镜像第一次运行的时候,先审核镜像,审核内容请参见训练作业自定义镜像规范,审核失败的原因见于日志,用户根据日志做相应的修改。

图3 审核镜像失败

镜像审核成功后,后台就会开始启动用户自定义镜像容器,开始跑自定义镜像训练作业,用户可根据日志来查看训练情况。

审核成功后,再次使用相同镜像创建训练作业的时候,不会再次审核。

图4 运行日志

父主题: 用于训练模型(旧版即将下线)

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家