创建生产训练作业(新版页面)

为了提升创建训练作业的效率,ModelArts对创建页面进行了一系列的易用性改进。现推出新版页面,旨在简化操作流程并增强界面的直观性。
在模型开发过程中,如何高效地优化模型性能是一个关键挑战。传统的模型训练方式往往需要反复尝试不同的模型结构、数据集和超参数组合,这不仅耗时耗力,还可能导致训练效果不理想。针对这一问题,ModelArts的训练模块提供了一套完整的解决方案。它支持创建训练作业、实时监控训练进展以及管理训练版本,帮助用户系统化地优化模型性能。通过ModelArts,用户可以轻松试验不同的模型结构、数据集和超参数组合,从而快速找到最优的模型配置和权重。
创建生产环境的训练作业有2种方式:
- 通过ModelArts Standard控制台的方式创建生产环境的训练作业。本文提供了新版页面的操作指导,默认页面(即旧版页面)的操作指导请参见创建生产训练作业。
- 通过ModelArts提供的API接口创建生产环境的训练作业,详细操作请参见使用API创建训练作业。
约束限制
默认支持创建10000条训练作业,剩余额度可以在训练作业列表页查看。

前提条件
- 由于训练作业运行需消耗资源,为了避免训练失败请确保账户未欠费。
- 已经将用于训练作业的数据上传至OBS目录。
- 已经在OBS目录下创建了至少1个空的文件夹,用于存储训练输出的内容。
ModelArts不支持加密的OBS桶,创建OBS桶时,请勿开启桶加密。
- 确保使用的OBS目录与ModelArts在同一区域。
- 检查是否配置了访问授权。如果未配置,请参见快速配置ModelArts委托授权完成操作。
计费影响
在ModelArts进行模型训练时,会产生计算资源和存储资源的累计值计费。计算资源为训练作业运行的费用。存储资源包括数据存储到OBS或SFS的费用。详见模型训练计费项。
操作流程介绍
创建训练作业的操作步骤如下所示。
步骤二:训练作业基础配置:配置基础信息。
步骤三:训练作业环境配置:配置环境信息。
步骤四:训练作业训练配置(可选):配置训练作业的输入、输出、超参、环境变量等参数。
步骤五:训练作业资源配置:配置资源池、实例规格等信息。
步骤六:容错与恢复配置:配置自动重启等信息。
步骤七:调度配置:调整作业优先级、是否允许被抢占、自动停止等。
步骤八:更多配置:配置日志、事件通知和标签等信息。
步骤一:进入创建训练作业页面
- 登录ModelArts管理控制台。
- 在左侧导航栏中,选择 进入训练作业列表。
- 单击“创建训练作业”,进入创建训练作业页面,默认进入新版页面,以下内容主要介绍新版创建训练页面操作。
步骤二:训练作业基础配置
参数名称 |
说明 |
---|---|
作业模式 |
选择生产模式。 训练作业支持在云上和本地对训练代码进行调试,调试完成的代码可直接创建生产训练作业。
|
作业名称 |
必填,训练作业的名称。 系统会自动生成一个名称,可以根据业务需求重新命名,命名规则如下:
|
描述(可选) |
训练作业的简介,便于在训练作业列表了解作业信息。 |
实验设置 |
勾选“实验设置”后,可以将训练作业放入实验中分类,并有序地进行管理,常用于多任务的版本管理等场景。 实验功能有助于管理和优化训练作业,如通过重建作业时微调超参得到的新作业,可在实验中有序归纳与比较作业结果,从而有效地寻找最佳训练配置。
不勾选实验设置,表示训练作业不在实验中进行统一管理。 |
步骤三:训练作业环境配置
- 使用自定义算法创建:使用平台预置的训练常用框架、镜像或自定义镜像的方式创建训练作业。
表2 环境配置(自定义算法) 参数名称
说明
创建方式
必选,选择“自定义算法”。
启动方式
创建方式选择自定义算法时,启动方式参数必选。启动方式有以下两种:
- “预置框架”:通过平台预置的训练常用框架和镜像创建训练作业。
- “自定义”:通过自定义镜像创建训练作业。
当平台预置的基础镜像中的软件无法满足实际程序运行需求时,支持自定义镜像进行训练,所需镜像需提前上传到SWR容器镜像服务上,详细镜像制作指导请参见准备模型训练镜像。
引擎及版本
当“启动方式”选择“预置框架”时,需要选择训练作业要使用的预置框架引擎和引擎版本。
选择的AI引擎和编写算法代码时使用的框架必须一致。例如编写算法代码使用的是PyTorch,则在创建作业时也要选择PyTorch。
镜像
选择训练需要的容器镜像,训练镜像制作要求请参见准备模型训练镜像。
- 当“启动方式”选择“预置框架”,且引擎版本选择“自定义”时,需要从容器镜像中选择合适的镜像。
- 当“启动方式”选择“自定义”时,需要从容器镜像中选择合适的镜像。
容器镜像地址的填写支持如下方式。- 选择自有镜像或他人共享的镜像:单击右边的“选择”,从容器镜像中选择用于训练的容器镜像。所需镜像需要提前上传到SWR服务中。
- 选择公开镜像:直接输入SWR服务中公开镜像的地址。地址直接填写“组织名称/镜像名称:版本名称”,不需要带域名信息(swr.<region>.myhuaweicloud.com),系统会自动拼接域名地址。例如:某公开镜像的SWR地址为“swr.<region>.myhuaweicloud.com/test-image/tensorflow2_1_1:1.1.1”,则此处填写“test-images/tensorflow2_1_1:1.1.1”。
代码来源
选择代码来源。默认是“对象存储服务OBS”。
- “OBS对象存储”:如果训练代码存放在OBS中,则选择“对象存储服务OBS”。
代码目录
仅当“代码来源”选择“对象存储服务OBS”时显示该参数。
选择训练代码文件所在的OBS目录。当“启动方式”选择“预置框架”时,该参数必填;当“启动方式”选择“自定义”时,该参数可选。
- 需要提前将代码上传至OBS桶中,目录内文件总大小必须小于或等于5GB,文件数必须小于或等于1000个,文件深度必须小于或等于32。如果有预训练模型也请放置在代码目录下。
- 训练代码文件会在训练作业启动的时候被系统自动下载到训练容器的“${MA_JOB_DIR}/demo-code”目录中,“demo-code”为存放代码目录的最后一级OBS目录。例如,“代码目录”选择的是“/test/code”,则训练代码文件会被下载到训练容器的“${MA_JOB_DIR}/code”目录中。
启动文件
选择或输入代码目录中训练作业的Python启动脚本。当“启动方式”选择“预置框架”时,该参数必填;当“启动方式”选择“自定义”时,不涉及该参数。
ModelArts只支持使用Python语言编写的启动文件,因此启动文件必须以“.py”结尾。
启动命令
镜像的启动命令。当“启动方式”选择“预置框架”时不涉及该参数;当“启动方式”选择“自定义”时,该参数必填。
运行训练作业时,当“代码目录”下载完成后,“启动命令”会被自动执行。- 如果训练启动脚本用的是py文件,例如“train.py”,则启动命令如下所示。
python ${MA_JOB_DIR}/demo-code/train.py
- 如果训练启动脚本用的是sh文件,例如“main.sh”,则启动命令如下所示。
bash ${MA_JOB_DIR}/demo-code/main.sh
启动命令支持使用“;”和“&&”拼接多条命令,命令中的“demo-code”为存放代码目录的最后一级OBS目录,以实际情况为准。
当存在输入管道、输出管道、或是超参的情况下,请保证启动命令的最后一条命令是运行训练脚本。
原因:系统会将输入管道、输出管道、以及超参添加到启动命令的末尾,如果最后一条命令不是运行训练脚本则会报错。
例如:启动命令的最后一条是python train.py,且存在--data_url超参,系统正常运行会执行python train.py --data_url=/input。但是当启动命令python train.py后面有其他命令时,如下所示:
python train.py pwd #反例,启动命令的最后一条命令不是运行训练脚本,而是pwd
此时,如果拼接了输入管道、输出管道、以及超参,系统运行实际执行的是python train.py pwd --data_url=/input,就会报错。
说明:为保证数据安全,请勿输入敏感信息,例如明文密码。
运行用户ID
容器运行时的用户ID。当“启动方式”选择“预置框架”时不涉及该参数;当“启动方式”选择“自定义”时,该参数可选。
如果需要指定uid,则uid数值需要在规定范围内,不同资源池的uid范围如下:
- 公共资源池:1000-65535
- 专属资源池:0-65535
建议使用默认值1000。
如果运行用户ID配置为0,则训练容器中的运行用户是root。
本地代码目录
仅当“代码来源”选择“对象存储服务OBS”时才显示该参数。可选参数。
用于指定训练容器的本地目录,启动训练时系统会将代码目录下载至此目录,默认本地代码目录为“/home/ma-user/modelarts/user-job-dir”。
单击页面右上角的“运行环境预览”,可以查看训练作业的工作目录。
容器运行目录
指定训练容器的本地目录,训练时系统会自动cd到此目录下执行启动文件。
容器运行目录是训练作业运行过程中执行启动命令的本地目录,可用于存储生成的一些临时文件。为确保该目录存在,容器运行目录必须是启动文件本地目录的父目录。
- 使用我的算法创建:使用算法管理中的算法创建训练作业。
如果选择使用已有算法创建训练作业,则“创建方式”选择“我的算法”,在算法列表中选择算法。如果没有满足条件的算法,也可以新建算法,具体操作请参见创建算法。
步骤四:训练作业训练配置(可选)
创建训练作业时,需要配置训练作业的输入、输出、超参和环境变量。
参数名称 |
说明 |
---|---|
输入 |
单击“添加”,配置训练作业输入信息。
|
输出 |
单击“添加”,配置训练作业输出信息。
|
超参 |
超参用于训练调优。此参数由选择的算法决定,如果在算法中已经定义了超参,则此处会显示算法中所有的超参。 超参支持修改和删除,状态取决于算法中的超参“约束”设置,详情请参见表6。
说明:
为保证数据安全,请勿输入敏感信息,例如明文密码。 |
环境变量 |
根据业务需求增加环境变量。训练容器中预置的环境变量请参见管理训练容器环境变量。
说明:
为保证数据安全,请勿输入敏感信息,例如明文密码。 |
超参自动搜索 |
当训练作业的创建方式选择“我的算法”且所选择的算法“支持的策略”为“自动搜索(S)”时,单击“更多配置”会显示“超参自动搜索”参数。 勾选此参数后,训练作业运行时会开启自动超参搜索能力,可能会导致训练时长延长。 具体介绍请参见自动模型优化介绍。 |
步骤五:训练作业资源配置
创建训练作业时,需要选择训练资源。资源池分为公共资源池与专属资源池。根据需要选择不同的资源池用于训练作业,推荐使用专属资源池,两者的具体差异说明请参见专属资源池和公共资源池的能力差异。
参数名称 |
说明 |
---|---|
资源池类型 |
|
资源池 |
选择“专属资源池”后,在服务资源池中单击“选择资源池”,在右侧弹窗中选择要使用的专属资源池。此时,支持查看当前专属资源池的状态、节点规格、空闲/碎片节点数、可用节点/总节点数以及卡数信息。单击“空闲/碎片节点数”列的“查看”可以查看碎片详情,确认资源池是否满足训练需求。 |
规格类型 |
当选择“专属资源池”时,会显示此参数。支持以下2种规格类型:
图2 实例规格
![]() |
实例规格 |
当规格类型选择“预置规格”时必选,选择资源规格,规格名称中体现了服务器类型、型号等信息。
须知:
实例规格为“GPU:n*tnt004”(n表示具体数字)的资源不支持多进程的训练作业。 |
实例数 |
必填,根据需要选择实例数的个数。默认值为“1”。
|
存储挂载 |
资源规格选择“专属资源池”时,支持添加多种存储挂载方式,以提高数据的访问效率。
图3 存储挂载
![]()
|
超节点亲和组实例数 |
|
模式选择 |
当训练作业的“预置框架”选择的是MindSpore类镜像、“实例规格”选择的是Ascend资源时,ModelArts提供多种训练模式,支持根据实际训练场景选择模式。
|
步骤六:容错与恢复配置
创建训练作业时,支持设置训练作业自动重启。
参数名称 |
说明 |
---|---|
自动重启 |
设置训练作业是否设置自动重启。 |
最大重启次数 |
当勾选“自动重启”时可配置。 当训练作业的自动重启次数达到最大重启次数,且训练作业依旧异常,则直接停止作业。
提交创建训练作业后不支持修改重启次数,请合理设置次数。 |
无条件自动重启 |
当勾选“自动重启”时可配置。勾选无条件自动重启后,只要系统检测到训练异常,就无条件重启训练作业。为了避免无效重启浪费算力资源,系统最多只支持连续无条件重启3次。 |
作业卡死重启 |
当勾选“自动重启”时可配置。系统支持自动监控作业进程的状态和资源利用率来判定作业是否卡死,开启此开关后,支持将标记为卡死的作业进行进程级自动重启,以提高资源使用率。 因系统无法核实代码逻辑且检测存在周期性,卡死检测存在一定的误报概率,开启开关即表示接受误报率。为了避免无效重启浪费算力资源,系统最多只支持连续作业卡死重启3次。 |
步骤七:调度配置
创建训练作业时,支持配置作业调度策略,例如提高作业调度优先级、允许被抢占、自动停止等,用于提高作业调度效率。
参数名称 |
说明 |
---|---|
提高作业调度优先级 |
|
允许被抢占 |
使用专属资源池创建训练作业时,允许设置训练作业被抢占。使用公共资源池时,不支持此参数配置。 开启后,当资源池剩余资源不足时,允许被抢占的作业可能会被终止并重新排队。为避免训练进度丢失,请在开启此功能前完成断点续训的设置,操作指导请参考设置断点续训练。 |
自动停止 |
选择是否启用训练作业自动停止。
|
步骤八:更多配置
参数名称 |
说明 |
---|---|
永久保存日志 |
当实例规格选择Ascend资源时,默认开启“永久保存日志”,不允许允许修改。 当实例规格选择CPU或GPU资源时,支持选择是否打开“永久保存日志”开关。
|
日志路径 |
当开启“永久保存日志”时,必须配置“日志路径”,用于存放训练作业产生的日志文件。 建议选择一个空的OBS文件目录存放运行中产生的日志文件,同时需要OBS文件目录的读写权限。 |
事件通知 |
选择是否启用训练作业的事件通知。
说明:
|
生成节点间SSH免密互信文件 |
选择是否生成节点间SSH免密互信文件。
|
标签 |
当需要使用同一标签标识多种云资源时,即所有服务均可在标签输入框下拉选择同一标签,则建议在TMS中创建预定义标签。标签详细用法请参见使用TMS标签实现资源分组管理。 最多支持添加20条标签。 |