更新时间:2025-10-29 GMT+08:00

创建训练作业

功能介绍

创建训练作业接口用于在ModelArts平台上启动新的训练任务。

该接口适用于以下场景:当用户需要基于特定的数据集和算法模型进行机器学习训练时,可以通过此接口创建并配置训练作业。使用该接口的前提条件是用户已上传数据集和模型代码至ModelArts平台,并具有创建训练作业的权限。创建训练作业后,平台将根据配置的资源规格启动训练任务,用户可以通过作业ID监控训练进度和状态。若数据集或模型代码不存在、资源规格配置错误或用户无权限操作,接口将返回相应的错误信息。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/{project_id}/training-jobs

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:用户项目ID。获取方法请参见获取项目ID和名称

约束限制:1 - 64字符,字母、数字和中划线。

取值范围:不涉及。

默认取值:不涉及。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

kind

String

参数解释:训练作业类型。

约束限制:不涉及。

取值范围

  • job:普通作业

  • edge_job:边缘作业

  • hetero_job:异构作业

  • mrs_job:MRS作业

  • autosearch_job:自动化搜索作业

  • diag_job:诊断作业

  • visualization_job:可视化作业

默认取值:job。

metadata

JobMetadata object

参数解释:训练作业元信息。

约束限制:不涉及。

algorithm

JobAlgorithm object

参数解释:训练作业算法。

约束限制:目前支持三种形式:

  • id:只取算法的id;

  • subscription_id+item_version_id:取算法的订阅id和版本id;

  • code_dir+boot_file:取训练作业的代码目录和启动文件。

tasks

Array of Task objects

参数解释:任务列表。该功能暂未实现。

约束限制:不涉及。

spec

Spec object

参数解释:训练作业规格参数。有此字段时,无需填写tasks字段。

约束限制:不涉及。

endpoints

JobEndpointsReq object

参数解释:远程接入训练作业时需要的相关配置。

约束限制:不涉及。

表3 JobMetadata

参数

是否必选

参数类型

描述

name

String

参数解释:训练作业名称。

约束限制:不涉及。

取值范围:限制为1-64位只含数字、字母、下划线和中划线的名称。

默认取值:不涉及。

workspace_id

String

参数解释:指定作业所处的工作空间。

约束限制:不涉及。

取值范围:不涉及。

默认取值:默认值为“0”。

description

String

参数解释:对训练作业的描述。

约束限制:长度限制为[0, 256]。

取值范围:不涉及。

默认取值:默认为“NULL”。

annotations

Map<String,String>

参数解释:训练作业高级功能配置。

约束限制:可选取值如下:

  • "job_template": "Template RL"(异构作业)

  • "fault-tolerance/job-retry-num": "3"(故障自动重启次数)

  • "fault-tolerance/job-unconditional-retry": "true"(无条件重启)

  • "fault-tolerance/hang-retry": "true"(卡死重启)

  • "jupyter-lab/enable": "true"(JupyterLab训练应用程序)

  • "tensorboard/enable": "true"(TensorBoard训练应用程序)

  • "mindstudio-insight/enable": "true"(MindStudio Insight训练应用程序)

表4 JobAlgorithm

参数

是否必选

参数类型

描述

id

String

参数解释:算法管理的算法id。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

name

String

参数解释:算法名称。无需填写。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

subscription_id

String

参数解释:订阅算法的订阅ID。

约束限制:应与item_version_id一同出现。

取值范围:不涉及。

默认取值:不涉及。

item_version_id

String

参数解释:订阅算法的版本。

约束限制:应与subscription_id一同出现。

取值范围:不涉及。

默认取值:不涉及。

code_dir

String

参数解释:训练作业的代码目录。如:“/usr/app/”。

约束限制:应与boot_file一同出现,如果boot_file填入id或subscription_id+item_version_id,则此参数无需填写。

取值范围:不涉及。

默认取值:不涉及。

boot_file

String

参数解释:训练作业的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。

约束限制:应与code_dir一同出现,如果code_dir填入id或subscription_id+item_version_id,则此参数无需填写。

取值范围:不涉及。

默认取值:不涉及。

autosearch_config_path

String

参数解释:自动化搜索作业的yaml配置路径,需要提供一个OBS路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

autosearch_framework_path

String

参数解释:自动化搜索作业的框架代码目录,需要提供一个OBS路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

command

String

参数解释:自定义镜像场景下,训练作业的自定义镜像的容器的启动命令。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

parameters

Array of Parameters objects

参数解释:训练作业的运行参数。

约束限制:不涉及。

policies

JobPolicies object

参数解释:作业支持的策略,用于超参搜索。

约束限制:不涉及。

inputs

Array of Input objects

参数解释:训练作业的数据输入。

约束限制:不涉及。

outputs

Array of Output objects

参数解释:训练作业的结果输出。

约束限制:不涉及。

engine

JobEngine object

参数解释:训练作业的引擎。

约束限制:使用算法管理的算法id或订阅算法subscription_id+item_version_id创建作业时,无需填写。

local_code_dir

String

参数解释:算法的代码目录下载到训练容器内的本地路径。

约束限制

  • 必须为/home下的目录。

  • v1兼容模式下,当前字段不生效。

  • 当code_dir以file://为前缀时,当前字段不生效。

取值范围:不涉及。

默认取值:不涉及。

working_dir

String

参数解释:运行算法时所在的工作目录。

约束限制:v1兼容模式下,当前字段不生效。

取值范围:不涉及。

默认取值:不涉及。

environments

Map<String,String>

参数解释:训练作业的环境变量。格式:"key":"value"。

约束限制:其中key最大允许填写8192字符,value最大允许填写4096字符,最多允许100对环境变量。变量名应该仅包含字母、数字、下划线,且以字母或下划线开头。

注:不支持使用符号 $ 引用变量。

summary

Summary object

参数解释:可视化日志summary。

约束限制:不涉及。

表5 Parameters

参数

是否必选

参数类型

描述

name

String

参数解释:参数名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

value

String

参数解释:参数值。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:参数描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

constraint

ParametersConstraint object

参数解释:参数属性。

约束限制:不涉及。

i18n_description

I18nDescription object

参数解释:国际化描述。

约束限制:不涉及。

表6 ParametersConstraint

参数

是否必选

参数类型

描述

type

String

参数解释:参数种类。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

editable

Boolean

参数解释:是否可编辑。

约束限制:不涉及。

取值范围

  • true:可编辑

  • false:不可编辑

默认取值:不涉及。

required

Boolean

参数解释:是否必须。

约束限制:不涉及。

取值范围

  • true:必须

  • false:非必须

默认取值:不涉及。

sensitive

Boolean

参数解释:是否敏感。该功能暂未实现。

约束限制:不涉及。

取值范围

  • true:敏感

  • false:不敏感

默认取值:不涉及。

valid_type

String

参数解释:有效种类。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

valid_range

Array of strings

参数解释:有效范围。

约束限制:不涉及。

表7 I18nDescription

参数

是否必选

参数类型

描述

language

String

参数解释:国际语种。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表8 JobPolicies

参数

是否必选

参数类型

描述

auto_search

AutoSearch object

参数解释:超参搜索配置。

约束限制:不涉及。

表9 AutoSearch

参数

是否必选

参数类型

描述

skip_search_params

String

参数解释:需要排除的超参组合。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

reward_attrs

Array of RewardAttrs objects

参数解释:搜索指标列表。

约束限制:不涉及。

search_params

Array of SearchParams objects

参数解释:搜索参数。

约束限制:不涉及。

algo_configs

Array of AlgoConfigs objects

参数解释:搜索算法配置。

约束限制:不涉及。

表10 RewardAttrs

参数

是否必选

参数类型

描述

name

String

参数解释:指标名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

mode

String

参数解释:搜索方向。

约束限制:不涉及。

取值范围

  • max:表示指标值越大越好

  • min:表示指标值越小越好

默认取值:不涉及。

regex

String

参数解释:指标正则表达式。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表11 SearchParams

参数

是否必选

参数类型

描述

name

String

参数解释:超参名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

param_type

String

参数解释:参数类型。

约束限制:不涉及。

取值范围

  • continuous:表示这个超参是连续类型的。连续类型的超参在算法使用于训练作业时,控制台显示为输入框

  • discrete:表示这个超参是离散类型的。离散类型的超参在算法使用于训练作业时,控制台显示为下拉选择框架

默认取值:不涉及。

lower_bound

String

参数解释:超参下界。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

upper_bound

String

参数解释:超参上界。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

discrete_points_num

String

参数解释:连续型超参离散化取值个数。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

discrete_values

Array of strings

参数解释:离散型超参的取值列表。

约束限制:不涉及。

表12 AlgoConfigs

参数

是否必选

参数类型

描述

name

String

参数解释:搜索算法名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

params

Array of AutoSearchAlgoConfigParameter objects

参数解释:搜索算法参数。

约束限制:不涉及。

表13 AutoSearchAlgoConfigParameter

参数

是否必选

参数类型

描述

key

String

参数解释:参数键。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

value

String

参数解释:参数值。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

type

String

参数解释:参数种类。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表14 JobEngine

参数

是否必选

参数类型

描述

engine_id

String

参数解释:训练作业选择的引擎规格ID。

约束限制:engine_id,engine_name+engine_version和image_url方式三选一。

取值范围:不涉及。

默认取值:不涉及。

engine_name

String

参数解释:训练作业选择的引擎规格名称。

约束限制:如果已填写engine_id,则此参数无需填写。如果使用预置框架+自定义镜像的创建方式时需要同时传入此参数和image_url参数。

取值范围:不涉及。

默认取值:不涉及。

engine_version

String

参数解释:训练作业选择的引擎规格版本。

约束限制:如果已填写engine_id,则此参数无需填写。

取值范围:不涉及。

默认取值:不涉及。

image_url

String

参数解释:训练作业选择的自定义镜像地址,地址从swr服务获取。

约束限制:格式:组织名/镜像名:版本号 。

取值范围:不涉及。

默认取值:不涉及。

install_sys_packages

Boolean

参数解释:是否需要安装训练平台指定的 moxing 版本。

约束限制:只有填写了engine_name,engine_version,image_url参数时支持该设置。

取值范围

  • true:需要

  • false:不需要

默认取值:不涉及。

表15 Summary

参数

是否必选

参数类型

描述

log_type

String

参数解释:训练作业可视化日志类型,配置后训练作业可作为可视化作业数据源。

约束限制:不涉及。

取值范围

  • tensorboard:tensorboard类型

  • mindstudio-insight:mindstudio-insight类型

默认取值:不涉及。

log_dir

LogDir object

参数解释:训练作业可视化日志输出。

约束限制:log_type非空时必填。

data_sources

Array of DataSource objects

参数解释:可视化作业或训练作业调试模式的可视化日志输入。

约束限制:训练作业高级功能开启"tensorboard/enable": "true"或"mindstudio-insight/enable": "true"时必填。

表16 LogDir

参数

是否必选

参数类型

描述

pfs

PFSSummary object

参数解释:obs并行文件系统输出。

约束限制:不涉及。

表17 PFSSummary

参数

是否必选

参数类型

描述

pfs_path

String

参数解释:obs并行文件系统路径url。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表18 DataSource

参数

是否必选

参数类型

描述

job

JobSummary object

参数解释:作业数据源。

约束限制:不涉及。

表19 JobSummary

参数

是否必选

参数类型

描述

job_id

String

参数解释:训练作业id。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表20 Task

参数

是否必选

参数类型

描述

role

String

参数解释:任务角色,该功能暂未支持。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

algorithm

algorithm object

参数解释:算法管理算法配置。

约束限制:不涉及。

task_resource

task_resource object

参数解释:训练作业资源规格信息。

约束限制:不涉及。

表21 algorithm

参数

是否必选

参数类型

描述

job_config

job_config object

参数解释:算法配置信息,如启动文件等。

约束限制:不涉及。

code_dir

String

参数解释:算法的代码目录。如:“/usr/app/”。

约束限制:应与boot_file一同出现。

取值范围:不涉及。

默认取值:不涉及。

boot_file

String

参数解释:算法的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。

约束限制:应与code_dir一同出现。

取值范围:不涉及。

默认取值:不涉及。

engine

engine object

参数解释:异构作业算法的引擎。

约束限制:不涉及。

inputs

Array of inputs objects

参数解释:算法的数据输入。

约束限制:不涉及。

outputs

Array of outputs objects

参数解释:算法的数据输出。

约束限制:不涉及。

local_code_dir

String

参数解释:算法的代码目录下载到训练容器内的本地路径。

约束限制

  • 必须为/home下的目录;

  • v1兼容模式下,当前字段不生效;

  • 当code_dir以file://为前缀时,当前字段不生效。

取值范围:不涉及。

默认取值:不涉及。

working_dir

String

参数解释:运行算法时所在的工作目录。

约束限制:v1兼容模式下,当前字段不生效。

取值范围:不涉及。

默认取值:不涉及。

表22 job_config

参数

是否必选

参数类型

描述

parameters

Array of Parameter objects

参数解释:算法的运行参数。

约束限制:不涉及。

inputs

Array of Input objects

参数解释:算法的数据输入。

约束限制:不涉及。

outputs

Array of Output objects

参数解释:算法的数据输出。

约束限制:不涉及。

engine

engine object

参数解释:算法的引擎。

约束限制:不涉及。

表23 Parameter

参数

是否必选

参数类型

描述

name

String

参数解释:参数名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

value

String

参数解释:参数值。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:参数描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

constraint

constraint object

参数解释:参数属性。

约束限制:不涉及。

i18n_description

i18n_description object

参数解释:国际化描述。

约束限制:不涉及。

表24 constraint

参数

是否必选

参数类型

描述

type

String

参数解释:参数种类。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

editable

Boolean

参数解释:是否可编辑。

约束限制:不涉及。

取值范围

  • true:可编辑

  • false:不可编辑

默认取值:不涉及。

required

Boolean

参数解释:是否必须。

约束限制:不涉及。

取值范围

  • true:必须

  • false:非必须

默认取值:不涉及。

sensitive

Boolean

参数解释:是否敏感。

约束限制:该功能暂未实现。

取值范围

  • true:敏感

  • false:不敏感

默认取值:不涉及。

valid_type

String

参数解释:有效种类。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

valid_range

Array of strings

参数解释:有效范围。

约束限制:不涉及。

表25 i18n_description

参数

是否必选

参数类型

描述

language

String

参数解释:国际语种。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:国际化语种的描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表26 Input

参数

是否必选

参数类型

描述

name

String

参数解释:数据输入通道名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:数据输入通道描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_dir

String

参数解释:数据输入通道映射的容器本地路径。例如,“/home/ma-user/modelarts/inputs/data_url_0”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

access_method

String

参数解释:数据输入通道路径(local_dir)的下发方式。

约束限制:不涉及。

取值范围

  • parameter:超参形式

  • env:环境变量形式

默认取值:默认超参形式。

remote

InputDataInfo object

参数解释:数据实际输入信息。

约束限制:枚举值:

  • dataset:指定输入为数据集;

  • obs:指定输入为OBS路径。

remote_constraint

Array of remote_constraint objects

参数解释:数据输入约束。

约束限制:不涉及。

表27 InputDataInfo

参数

是否必选

参数类型

描述

dataset

dataset object

参数解释:数据输入信息为数据集。

约束限制:不涉及。

obs

obs object

参数解释:数据输入输出信息为OBS方式。

约束限制:不涉及。

表28 dataset

参数

是否必选

参数类型

描述

id

String

参数解释:训练作业的数据集ID。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

version_id

String

参数解释:训练作业的数据集版本ID。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表29 obs

参数

是否必选

参数类型

描述

obs_url

String

参数解释:训练作业需要的数据集OBS路径URL。如:“/usr/data/”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表30 remote_constraint

参数

是否必选

参数类型

描述

data_type

String

参数解释:数据输入类型,包括数据存储位置、数据集两种方式。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

attributes

String

参数解释:相关属性。

约束限制:不涉及。

取值范围

数据输入为数据集时:

  • data_format:数据格式

  • data_segmentation:数据切分方式

  • dataset_type:标注类型

默认取值:不涉及。

表31 Output

参数

是否必选

参数类型

描述

name

String

参数解释:数据输出通道名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:数据输出通道描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_dir

String

参数解释:数据输出通道映射的容器本地路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

access_method

String

参数解释:数据输出通道路径(local_dir)的下发方式。

约束限制:不涉及。

取值范围

  • parameter:超参形式

  • env:环境变量形式

默认取值:默认超参形式。

remote

Remote object

参数解释:数据实际输出信息。

约束限制:不涉及。

表32 Remote

参数

是否必选

参数类型

描述

obs

RemoteObs object

参数解释:数据实际输出到OBS。

约束限制:不涉及。

表33 RemoteObs

参数

是否必选

参数类型

描述

obs_url

String

参数解释:数据实际输出到OBS的路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表34 engine

参数

是否必选

参数类型

描述

engine_id

String

参数解释:算法选择的引擎规格ID。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

engine_name

String

参数解释:算法选择的引擎规格名称。

约束限制:若填入engine_id则无需填写。

取值范围:不涉及。

默认取值:不涉及。

engine_version

String

参数解释:算法选择的引擎规格版本。

约束限制:若填入engine_id则无需填写。

取值范围:不涉及。

默认取值:不涉及。

image_url

String

参数解释:算法选择的自定义镜像地址。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表35 engine

参数

是否必选

参数类型

描述

engine_id

String

参数解释:异构作业引擎规格的ID。如“caffe-1.0.0-python2.7”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

engine_name

String

参数解释:异构作业引擎规格的名称。如“Caffe”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

engine_version

String

参数解释:异构作业引擎规格的版本。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

image_url

String

参数解释:算法选择的自定义镜像地址。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表36 inputs

参数

是否必选

参数类型

描述

name

String

参数解释:数据输入通道名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:数据输入通道描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_dir

String

参数解释:数据输入通道映射的容器本地路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

remote

remote object

参数解释:数据实际输入信息。

约束限制:枚举值:

  • dataset:指定输入为数据集;

  • obs:指定输入为OBS路径。

表37 remote

参数

是否必选

参数类型

描述

obs

obs object

参数解释:数据输入输出信息为OBS方式。

约束限制:不涉及。

表38 obs

参数

是否必选

参数类型

描述

obs_url

String

参数解释:训练作业需要的数据集OBS路径URL。如:“/usr/data/”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表39 outputs

参数

是否必选

参数类型

描述

name

String

参数解释:数据输出通道名称。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

description

String

参数解释:数据输出通道描述信息。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_dir

String

参数解释:数据输出通道映射的容器本地路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

remote

remote object

参数解释:数据实际输出信息。

约束限制:不涉及。

表40 remote

参数

是否必选

参数类型

描述

obs

obs object

参数解释:数据实际输出到OBS。

约束限制:不涉及。

表41 obs

参数

是否必选

参数类型

描述

obs_url

String

参数解释:数据实际输出到OBS的路径。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表42 task_resource

参数

是否必选

参数类型

描述

flavor_id

String

参数解释:训练作业选择的资源规格ID。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

node_count

Integer

参数解释:训练作业选择的资源副本数。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表43 Spec

参数

是否必选

参数类型

描述

resource

SpecResource object

参数解释:训练作业资源规格信息。

约束限制:flavor_id和pool_id+[flavor_id]方式二选一。

  • 选择公共资源池时,仅上送flavor_id,选择训练作业需要的卡数、内存等资源规格,当公共资源池空闲资源满足选择的规格需求时,作业可被调度;

  • 选择专属资源池时,需上送pool_id与flavor_id,选择专属资源池下可选的实际规格,即满足训练作业条件的最小卡数,以便节省专属资源,提高利用率。

volumes

Array of SpecVolumes objects

参数解释:训练作业挂载卷信息。

约束限制:不涉及。

log_export_path

LogExportPath object

参数解释:训练作业日志输出信息。

约束限制:不涉及。

auto_stop

AutoStop object

参数解释:训练作业的自动停止配置。

约束限制:不涉及。

schedule_policy

SchedulePolicy object

参数解释:训练作业调度策略。

约束限制:不涉及。

notification

Notification object

参数解释:训练事件的消息通知。

约束限制:不涉及。

custom_metrics

Array of CustomMetrics objects

参数解释:指标采集配置。

表44 SpecResource

参数

是否必选

参数类型

描述

flavor_id

String

参数解释:训练作业资源规格id。

约束限制:不涉及。

取值范围:CPU规格专属资源池不支持指定flavor_id。GPU/Ascend规格专属资源池可选取值如下:

  • modelarts.pool.visual.xlarge(1卡)

  • modelarts.pool.visual.2xlarge(2卡)

  • modelarts.pool.visual.4xlarge(4卡)

  • modelarts.pool.visual.8xlarge(8卡)

  • modelarts.pool.visual.16xlarge(16卡,当前仅限Snt9b23超节点资源池)

默认取值:不涉及。

node_count

Integer

参数解释:资源池创建训练作业使用节点数。

约束限制:不涉及。

取值范围:不涉及。

默认取值:默认单节点。

pool_id

String

参数解释:专属资源池id。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表45 SpecVolumes

参数

是否必选

参数类型

描述

nfs

Nfs object

参数解释:训练作业nfs挂载卷信息。

约束限制:不涉及。

pfs

Pfs object

参数解释:训练作业obsfs挂载卷信息。

约束限制:不涉及。

obs

Obs object

参数解释:训练作业obs挂载卷信息。

约束限制:不涉及。

表46 Nfs

参数

是否必选

参数类型

描述

nfs_server_path

String

参数解释:nfs服务端路径,如:“10.10.10.10:/example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_path

String

参数解释:挂载到训练容器中的路径,如:“/example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

read_only

Boolean

参数解释:nfs挂载卷在容器中是否只读。

约束限制:不涉及。

取值范围

  • true:只读

  • false:非只读

默认取值:不涉及。

表47 Pfs

参数

是否必选

参数类型

描述

pfs_path

String

参数解释:obsfs的地址。如:“/test-bucket/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_path

String

参数解释:挂载到训练容器中的路径,如:“/example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表48 Obs

参数

是否必选

参数类型

描述

obs_path

String

参数解释:需要挂载的obs路径。如:“/test-bucket/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

local_path

String

参数解释:挂载到训练容器中的路径,如:“/example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表49 LogExportPath

参数

是否必选

参数类型

描述

obs_url

String

参数解释:训练作业日志保存的OBS地址,如:“obs://example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

host_path

String

参数解释:训练作业日志保存的宿主机的路径,如:“/example/path”。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

表50 AutoStop

参数

是否必选

参数类型

描述

time_unit

String

参数解释:时间单位。

约束限制:不涉及。

取值范围

  • HOURS:小时

默认取值:不涉及。

duration

Integer

参数解释:运行时长。

约束限制:不涉及。

取值范围:最小值为1。

默认取值:不涉及。

表51 SchedulePolicy

参数

是否必选

参数类型

描述

required_affinity

RequiredAffinity object

参数解释:训练作业亲和要求。

约束限制:不涉及。

priority

Integer

参数解释:训练作业优先级。

约束限制

  • 仅使用专属资源池训练时才支持设置训练作业优先级。

  • 作业优先级取值为1~3,默认优先级为1,最高优先级为3。

默认用户权限可选择优先级1和2,配置了“设置作业为高优先级权限”的用户可选择优先级1~3。

取值范围:0-3

默认取值:不涉及。

preemptible

Boolean

参数解释:是否可以被抢占。

约束限制:不涉及。

取值范围

  • true:可以被抢占

  • false:不可以被抢占

默认取值:不涉及。

表52 RequiredAffinity

参数

是否必选

参数类型

描述

affinity_type

String

参数解释:亲和调度策略。

约束限制:不涉及。

取值范围

  • cabinet:强整柜调度

  • hyperinstance:超节点亲和调度

默认取值:不涉及。

affinity_group_size

Integer

参数解释:亲和组大小。

约束限制:affinity_type为hyperinstance时必填,系统会将affinity_group_size个task调度到一个超节点内组成亲和组。

用户向超节点资源池投递训练作业,如果未设置亲和组大小,系统会默认赋值为1。

取值范围:不涉及。

默认取值:默认值1。

表53 Notification

参数

是否必选

参数类型

描述

topic_urn

String

参数解释:消息通知服务中所选主题的URN唯一资源标识。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

events

Array of strings

参数解释:触发消息通知的训练事件。

约束限制:枚举值:

  • JobStarted:作业开始

  • JobCompleted:作业结束

  • JobFailed:作业失败

  • JobTerminated:作业终止

  • JobRestarted:作业重启

  • JobHanged:作业卡死

  • JobPreempted:作业抢占

表54 CustomMetrics

参数

是否必选

参数类型

描述

exec

Exec object

参数解释:命令行方式采集指标。

http_get

HttpGet object

参数解释:http方式采集指标。

表55 Exec

参数

是否必选

参数类型

描述

command

Array of strings

参数解释: 命令行方式采集指标。

表56 HttpGet

参数

是否必选

参数类型

描述

path

String

参数解释: http获取指标的url路径,与下面的端口必须同时填或者不填。

取值范围: 不涉及。

port

Integer

参数解释: http获取指标的端口,与上面的url路径必须同时填或者不填。

取值范围: 不涉及。

表57 JobEndpointsReq

参数

是否必选

参数类型

描述

ssh

SSHReq object

参数解释:SSH连接信息。

约束限制:不涉及。

表58 SSHReq

参数

是否必选

参数类型

描述

key_pair_names

Array of strings

参数解释:SSH密钥对名称,可以在云服务器控制台(ECS)“密钥对”页面创建和查看。

约束限制:不涉及。

响应参数

状态码:201

表59 响应Body参数

参数

参数类型

描述

kind

String

参数解释:训练作业类型。

取值范围

  • job:普通作业

  • edge_job:边缘作业

  • hetero_job:异构作业

  • mrs_job:MRS作业

  • autosearch_job:自动化搜索作业

  • diag_job:诊断作业

  • visualization_job:可视化作业

metadata

JobMetadataResponse object

参数解释:训练作业元信息。

status

Status object

参数解释:训练作业状态信息。

algorithm

JobAlgorithmResponse object

参数解释:训练作业算法。

tasks

Array of TaskResponse objects

参数解释:异构训练作业的任务列表。

spec

SpecResponse object

参数解释:训练作业规格参数。

endpoints

JobEndpointsResp object

参数解释:远程接入训练作业时需要的相关配置。

表60 JobMetadataResponse

参数

参数类型

描述

id

String

参数解释:训练作业ID,创建成功后由ModelArts生成返回,无需填写。

取值范围:不涉及。

name

String

参数解释:训练作业名称。

取值范围:限制为1-64位只含数字、字母、下划线和中划线的名称。

workspace_id

String

参数解释:指定作业所处的工作空间。

取值范围:不涉及。

description

String

参数解释:对训练作业的描述。

取值范围:不涉及。

create_time

Long

参数解释:训练作业创建时间戳,单位为毫秒,创建成功后由ModelArts生成返回,无需填写。

取值范围:不涉及。

user_name

String

参数解释:训练作业创建用户的用户名,创建成功后由ModelArts生成返回,无需填写。

取值范围:不涉及。

annotations

Map<String,String>

参数解释:训练作业高级功能配置。

表61 Status

参数

参数类型

描述

phase

String

参数解释:训练作业一级状态。

取值范围

  • Creating:创建中

  • Pending:等待中

  • Running:运行中

  • Failed:运行失败

  • Completed:已完成

  • Terminating:停止中

  • Terminated:已停止

  • Abnormal:异常

secondary_phase

String

参数解释:训练作业二级状态为内部详细状态,可能会增加、修改、删除,不建议依赖。

取值范围

  • Creating:创建中

  • Queuing:排队中

  • Running:运行中

  • Failed:运行失败

  • Completed:已完成

  • Terminating:停止中

  • Terminated:已停止

  • CreateFailed:创建失败

  • TerminatedFailed:停止失败

  • Unknown:未知状态

  • Lost:异常

duration

Long

参数解释:训练作业运行时长,单位为毫秒。

取值范围:不涉及。

node_count_metrics

Array<Array<Integer>>

参数解释:训练作业运行时节点数变化指标。

tasks

Array of strings

参数解释:训练作业子任务名称。

start_time

Long

参数解释:训练作业开始时间,格式为时间戳。

取值范围:不涉及。

task_statuses

Array of TaskStatuses objects

参数解释:训练首个失败子任务状态信息。

running_records

Array of RunningRecord objects

参数解释:训练作业运行及故障恢复记录。

表62 TaskStatuses

参数

参数类型

描述

task

String

参数解释:训练作业子任务名称。

取值范围:不涉及。

exit_code

Integer

参数解释:训练作业子任务退出码。

取值范围:不涉及。

message

String

参数解释:训练作业子任务错误消息。

取值范围:不涉及。

表63 RunningRecord

参数

参数类型

描述

start_at

Integer

参数解释:本次运行开始时间的unix时间戳,单位为秒(s)。

取值范围:不涉及。

end_at

Integer

参数解释:本次运行结束时间的unix时间戳,单位为秒(s)。

取值范围:不涉及。

start_type

String

参数解释:本地运行的启动方式。

取值范围

  • init_or_rescheduled:代表本次启动为被调度后的首次运行,包括初次启动及调度恢复后的运行。

  • restarted:代表本次启动非被调度后的首次运行,为进程重启后的运行。

end_reason

String

参数解释:本次运行结束原因。

取值范围:不涉及。

end_related_task

String

参数解释:引发本次运行结束的task worker ID(如worker-0)。

取值范围:不涉及。

end_recover

String

参数解释:本次运行结束后所采取的故障容忍策略。

取值范围

  • npu_proc_restart: NPU原地热恢复

  • gpu_proc_restart: GPU原地热恢复

  • proc_restart: 进程原地重启

  • pod_reschedule: Pod级重调度

  • job_reschedule: Job级重调度

  • job_reschedule_with_taint: 隔离式Job重调度

end_recover_before_downgrade

String

参数解释:本次运行结束后在故障容忍策略降级前所采取的容忍策略。

取值范围:取值范围同end_recover。

recover_records

Array of RecoverRecord objects

参数解释:本次运行异常结束时采取的所有故障容忍策略详情。

表64 RecoverRecord

参数

参数类型

描述

recover_start_at

Integer

参数描述:本次故障容忍策略开始执行时间的unix时间戳,单位为秒(s),同时也是故障发生时间。

取值范围:不涉及。

recover_end_at

Integer

参数描述:本次故障容忍策略结束时间的unix时间戳,单位为秒(s)。

取值范围:不涉及。

recover

String

参数描述:本次故障容忍策略。

取值范围:枚举值如下:

  • npu_step_retry: Step重计算

  • npu_proc_restart: NPU原地热恢复

  • proc_restart: 进程原地重启

  • pod_reschedule: Pod级重调度

  • job_reschedule: Job级重调度

  • job_reschedule_with_taint: 隔离式Job重调度

fault_scenario

String

参数描述:本次故障场景。

取值范围:枚举值如下:

  • chip_fault: 芯片故障

  • node_fault: 节点故障

  • job_failed: 作业失败退出

  • job_hanged: 作业卡死

  • job_subhealth: 作业亚健康

  • error_in_log: 日志异常

reason

String

参数描述:本次故障原因。

取值范围:不涉及。

related_task

String

参数描述:引发本次运行结束的task worker ID(如worker-0)。

取值范围:不涉及。

recover_result

String

参数描述:本次故障执行结果。

取值范围:枚举值如下:

  • recovering: 执行中

  • success: 成功

  • failed: 失败

  • downgrade: 策略降级

表65 JobAlgorithmResponse

参数

参数类型

描述

id

String

参数解释:训练作业算法。

取值范围

  • id:只取算法的id

  • subscription_id+item_version_id:取算法的订阅id和版本id

  • code_dir+boot_file:取训练作业的代码目录和启动文件

name

String

参数解释:算法名称。

取值范围:不涉及。

subscription_id

String

参数解释:订阅算法的订阅ID。应与item_version_id一同出现。

取值范围:不涉及。

item_version_id

String

参数解释:订阅算法的版本。应与subscription_id一同出现。

取值范围:不涉及。

code_dir

String

参数解释:训练作业的代码目录。如:“/usr/app/”。应与boot_file一同出现,如果boot_file已经填入id或subscription_id+item_version_id,则无需填写此参数。

取值范围:不涉及。

boot_file

String

参数解释:训练作业的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。应与code_dir一同出现,如果code_dir已经填入id或subscription_id+item_version_id,则无需填写此参数。

取值范围:不涉及。

autosearch_config_path

String

参数解释:自动化搜索作业的yaml配置路径,需要提供一个OBS路径。如:“obs://bucket/file.yaml”。

取值范围:不涉及。

autosearch_framework_path

String

参数解释:自动化搜索作业的框架代码目录,需要提供一个OBS路径。如:“obs://bucket/files/”。

取值范围:不涉及。

command

String

参数解释:自定义镜像训练作业的自定义镜像的容器的启动命令。例如python train.py。

取值范围:不涉及。

parameters

Array of ParameterResp objects

参数解释:训练作业的运行参数。

policies

policies object

参数解释:作业支持的策略。

inputs

Array of InputResp objects

参数解释:训练作业的数据输入。

outputs

Array of OutputResp objects

参数解释:训练作业的结果输出。

engine

JobEngineResp object

参数解释:训练作业的引擎。使用算法管理的算法id或订阅算法subscription_id+item_version_id创建作业时,无需填写。

local_code_dir

String

参数解释:算法的代码目录下载到训练容器内的本地路径。规则如下:

  • 必须为/home下的目录;

  • v1兼容模式下,当前字段不生效;

  • 当code_dir以file://为前缀时,当前字段不生效。

取值范围:不涉及。

working_dir

String

参数解释:运行算法时所在的工作目录。规则:

v1兼容模式下,当前字段不生效。

取值范围:不涉及。

environments

Array of Map<String,String> objects

参数解释:训练作业的环境变量。格式:"key":"value",无需填写。

summary

SummaryResp object

参数解释:可视化日志summary。

表66 ParameterResp

参数

参数类型

描述

name

String

参数解释:参数名称。

取值范围:不涉及。

value

String

参数解释:参数值。

取值范围:不涉及。

description

String

参数解释:参数描述信息。

取值范围:不涉及。

constraint

constraint object

参数解释:参数属性。

i18n_description

i18n_description object

参数解释:国际化描述。

表67 constraint

参数

参数类型

描述

type

String

参数解释:参数种类。

取值范围:不涉及。

editable

Boolean

参数解释:是否可编辑。

取值范围

  • true:可编辑

  • false:不可编辑

required

Boolean

参数解释:是否必须。

取值范围

  • true:必须

  • false:非必须

sensitive

Boolean

参数解释:是否敏感。该功能暂未实现。

取值范围

  • true:敏感

  • false:不敏感

valid_type

String

参数解释:有效种类。

取值范围:不涉及。

valid_range

Array of strings

参数解释:有效范围。

表68 i18n_description

参数

参数类型

描述

language

String

参数解释:国际语种。可选值如下:

  • zh-cn(中文)

  • en-us(英文)

取值范围:不涉及。

description

String

参数解释:国际化语种的描述信息。

取值范围:不涉及。

表69 policies

参数

参数类型

描述

auto_search

auto_search object

参数解释:超参搜索配置。

表71 reward_attrs

参数

参数类型

描述

name

String

参数解释:指标名称。

取值范围:不涉及。

mode

String

参数解释:搜索方向。

取值范围

  • max:表示指标值越大越好

  • min:表示指标值越小越好

regex

String

参数解释:指标正则表达式。

取值范围:不涉及。

表72 search_params

参数

参数类型

描述

name

String

参数解释:超参名称。

取值范围:不涉及。

param_type

String

参数解释:参数类型。

取值范围

  • continuous:表示这个超参是连续类型的。连续类型的超参在算法使用于训练作业时,控制台显示为输入框。

  • discrete:表示这个超参是离散类型的。离散类型的超参在算法使用于训练作业时,控制台显示为下拉选择框架。

lower_bound

String

参数解释:超参下界。

取值范围:不涉及。

upper_bound

String

参数解释:超参上界。

取值范围:不涉及。

discrete_points_num

String

参数解释:连续型超参离散化取值个数。

取值范围:不涉及。

discrete_values

Array of strings

参数解释:离散型超参的取值列表。

表73 algo_configs

参数

参数类型

描述

name

String

参数解释:搜索算法名称。

取值范围:不涉及。

params

Array of AutoSearchAlgoConfigParameterResp objects

参数解释:搜索算法参数。

表74 AutoSearchAlgoConfigParameterResp

参数

参数类型

描述

key

String

参数解释:参数键。

取值范围:不涉及。

value

String

参数解释:参数值。

取值范围:不涉及。

type

String

参数解释:参数种类。

取值范围:不涉及。

表75 InputResp

参数

参数类型

描述

name

String

参数解释:数据输入通道名称。

取值范围:不涉及。

description

String

参数解释:数据输入通道描述信息。

取值范围:不涉及。

local_dir

String

参数解释:数据输入通道映射的容器本地路径。例如,“/home/ma-user/modelarts/inputs/data_url_0”。

取值范围:不涉及。

access_method

String

参数解释:数据输入通道路径(local_dir)的下发方式。

取值范围

  • parameter:超参形式

  • env:环境变量形式

remote

InputDataInfoResp object

参数解释:数据实际输入信息。

remote_constraint

Array of remote_constraint objects

参数解释:数据输入约束。

表76 InputDataInfoResp

参数

参数类型

描述

dataset

dataset object

参数解释:数据输入信息为数据集。

obs

obs object

参数解释:数据输入输出信息为OBS方式。

表77 dataset

参数

参数类型

描述

id

String

参数解释:训练作业的数据集ID。

取值范围:不涉及。

version_id

String

参数解释:训练作业的数据集版本ID。

取值范围:不涉及。

obs_url

String

参数解释:训练作业需要的数据集OBS路径URL,ModelArts会通过数据集ID和数据集版本ID自动解析生成。如:“/usr/data/”。

取值范围:不涉及。

表78 obs

参数

参数类型

描述

obs_url

String

参数解释:训练作业需要的数据集OBS路径URL。如:“/usr/data/”。

取值范围:不涉及。

表79 remote_constraint

参数

参数类型

描述

data_type

String

参数解释:数据输入类型,包括数据存储位置、数据集两种方式。

约束限制:不涉及。

取值范围:不涉及。

默认取值:不涉及。

attributes

String

参数解释:相关属性。

约束限制:不涉及。

取值范围

数据输入为数据集时:

  • data_format:数据格式

  • data_segmentation:数据切分方式

  • dataset_type:标注类型

默认取值:不涉及。

表80 OutputResp

参数

参数类型

描述

name

String

参数解释:数据输出通道名称。

取值范围:不涉及。

description

String

参数解释:数据输出通道描述信息。

取值范围:不涉及。

local_dir

String

参数解释:数据输出通道映射的容器本地路径。

取值范围:不涉及。

access_method

String

参数解释:数据输入通道路径(local_dir)的下发方式。

取值范围

  • parameter:超参形式

  • env:环境变量形式

remote

RemoteResp object

参数解释:数据实际输出信息。

表81 JobEngineResp

参数

参数类型

描述

engine_id

String

参数解释:训练作业选择的引擎规格ID。

取值范围:不涉及。

engine_name

String

参数解释:训练作业选择的引擎规格名称。

取值范围:不涉及。

engine_version

String

参数解释:训练作业选择的引擎规格版本。

取值范围:不涉及。

image_url

String

参数解释:训练作业选择的自定义镜像地址,地址从swr服务获取。

取值范围:不涉及。

install_sys_packages

Boolean

参数解释:是否需要安装训练平台指定的 moxing 版本。

取值范围

  • true:需要

  • false:不需要

表82 SummaryResp

参数

参数类型

描述

log_type

String

参数解释:训练作业可视化日志类型,配置后训练作业可作为可视化作业数据源。

取值范围

  • tensorboard:tensorboard类型

  • mindstudio-insight:mindstudio-insight类型

log_dir

LogDirResp object

参数解释:训练作业可视化日志输出。

data_sources

Array of DataSourceResp objects

参数解释:可视化作业或训练作业调试模式的可视化日志输入。

表83 LogDirResp

参数

参数类型

描述

pfs

PFSSummaryResp object

参数解释:obs并行文件系统输出。

表84 PFSSummaryResp

参数

参数类型

描述

pfs_path

String

参数解释:obs并行文件系统路径url。

取值范围:不涉及。

表85 DataSourceResp

参数

参数类型

描述

job

JobSummaryResp object

参数解释:作业数据源。

表86 JobSummaryResp

参数

参数类型

描述

job_id

String

参数解释:训练作业id。

取值范围:不涉及。

表87 TaskResponse

参数

参数类型

描述

role

String

参数解释:任务角色,该功能暂未支持。

取值范围:不涉及。

algorithm

TaskResponseAlgorithm object

参数解释:算法管理算法配置。

task_resource

FlavorResponse object

参数解释:训练作业、算法的规格信息。

表88 TaskResponseAlgorithm

参数

参数类型

描述

code_dir

String

参数解释:算法启动文件所在目录绝对路径。

取值范围:不涉及。

boot_file

String

参数解释:算法启动文件绝对路径。

取值范围:不涉及。

inputs

AlgorithmInput object

参数解释:算法输入通道信息。

outputs

AlgorithmOutput object

参数解释:算法输出通道信息。

engine

AlgorithmEngine object

参数解释:异构作业所依赖的引擎。

local_code_dir

String

参数解释:算法的代码目录下载到训练容器内的本地路径。规则如下:

  • 必须为/home下的目录;

  • v1兼容模式下,当前字段不生效;

  • 当code_dir以file://为前缀时,当前字段不生效。

取值范围:不涉及。

working_dir

String

参数解释:运行算法时所在的工作目录。规则:v1兼容模式下,当前字段不生效。

取值范围:不涉及。

表89 AlgorithmInput

参数

参数类型

描述

name

String

参数解释:数据输入通道名称。

取值范围:不涉及。

local_dir

String

参数解释:数据输入输出通道映射的容器本地路径。

取值范围:不涉及。

remote

AlgorithmRemote object

参数解释:数据实际输入信息,异构作业只支持OBS。

表90 AlgorithmRemote

参数

参数类型

描述

obs

RemoteObsResp object

参数解释:数据输入输出信息为OBS方式。

表91 AlgorithmOutput

参数

参数类型

描述

name

String

参数解释:数据输出通道名称。

取值范围:不涉及。

local_dir

String

参数解释:数据输出通道映射的容器本地路径。

取值范围:不涉及。

remote

RemoteResp object

参数解释:数据实际输出信息。

mode

String

参数解释:数据传输模式,默认为“upload_periodically”。

取值范围:不涉及。

period

String

参数解释:数据传输周期,默认为30s。

取值范围:不涉及。

表92 RemoteResp

参数

参数类型

描述

obs

RemoteObsResp object

参数解释:数据实际输出到OBS。

表93 RemoteObsResp

参数

参数类型

描述

obs_url

String

参数解释:数据实际输出到OBS的路径。

取值范围:不涉及。

表94 AlgorithmEngine

参数

参数类型

描述

engine_id

String

参数解释:引擎规格的ID。如“caffe-1.0.0-python2.7”。

取值范围:不涉及。

engine_name

String

参数解释:引擎规格的名称。如“Caffe”。

取值范围:不涉及。

engine_version

String

参数解释:引擎规格的版本。对一个引擎名称,有多个版本的引擎,如使用python2.7的"Caffe-1.0.0-python2.7"等。

取值范围:不涉及。

v1_compatible

Boolean

参数解释:是否为v1兼容模式。

取值范围

  • true:兼容v1

  • false:不兼容v1

run_user

String

参数解释:引擎默认启动用户uid。

取值范围:不涉及。

image_url

String

参数解释:算法选择的自定义镜像地址。

取值范围:不涉及。

表95 FlavorResponse

参数

参数类型

描述

flavor_id

String

参数解释:资源规格的ID。

取值范围:不涉及。

flavor_name

String

参数解释:资源规格的名称。

取值范围:不涉及。

max_num

Integer

参数解释:资源规格的最大节点数。

取值范围:不涉及。

flavor_type

String

参数解释:资源规格的类型。

取值范围

  • CPU

  • GPU

  • Ascend

billing

BillingInfo object

参数解释:资源规格计费信息。

flavor_info

FlavorInfoResponse object

参数解释:资源规格详细信息。

attributes

Map<String,String>

参数解释:其他规格属性。

取值范围:不涉及。

表96 FlavorInfoResponse

参数

参数类型

描述

max_num

Integer

参数解释:可以选择的最大节点数量(max_num,为1代表不支持分布式)。

取值范围:不涉及。

cpu

Cpu object

参数解释:cpu规格信息。

gpu

Gpu object

参数解释:gpu规格信息。

npu

Npu object

参数解释:Ascend规格信息。

memory

Memory object

参数解释:内存信息。

disk

DiskResponse object

参数解释:磁盘信息。

表97 DiskResponse

参数

参数类型

描述

size

Integer

参数解释:磁盘大小。

取值范围:不涉及。

unit

String

参数解释:磁盘大小单位。

取值范围:不涉及。

表98 SpecResponse

参数

参数类型

描述

resource

Resource object

参数解释:训练作业资源规格信息。flavor_id和pool_id+[flavor_id]方式二选一。

volumes

Array of JobVolumeResp objects

参数解释:训练作业挂载卷信息。

log_export_path

LogExportPathResp object

参数解释:训练作业日志输出信息。

schedule_policy

SchedulePolicyResp object

参数解释:训练作业调度策略。

custom_metrics

Array of CustomMetrics objects

参数解释:指标采集配置。

表99 Resource

参数

参数类型

描述

policy

String

参数解释:训练作业资源规格模式。

取值范围

  • regular:标准模式

flavor_id

String

参数解释:训练作业资源规格id。

取值范围:CPU规格专属资源池不支持指定flavor_id。GPU/Ascend规格专属资源池可选取值如下:

  • modelarts.pool.visual.xlarge(1卡)

  • modelarts.pool.visual.2xlarge(2卡)

  • modelarts.pool.visual.4xlarge(4卡)

  • modelarts.pool.visual.8xlarge(8卡)

flavor_name

String

参数解释:使用flavor_id时,由ModelArts返回的只读规格名称。

取值范围:不涉及。

node_count

Integer

参数解释:训练作业选择的资源副本数。

取值范围:不涉及。

pool_id

String

参数解释:训练作业选择的资源池ID。

取值范围:不涉及。

flavor_detail

FlavorDetail object

参数解释:训练作业、算法的规格信息(该字段只有公共资源池存在)。

main_container_allocated_resources

MainContainerAllocatedResources object

参数解释:训练作业训练容器实际到手的资源规格。

表100 FlavorDetail

参数

参数类型

描述

flavor_type

String

参数解释:资源规格的类型。

取值范围

  • CPU

  • GPU

  • Ascend

billing

BillingInfo object

参数解释:资源规格计费信息。

flavor_info

FlavorInfo object

参数解释:资源规格详细信息。

表101 BillingInfo

参数

参数类型

描述

code

String

参数解释:计费码。

取值范围:不涉及。

unit_num

Integer

参数解释:计费单元。

取值范围:不涉及。

表102 FlavorInfo

参数

参数类型

描述

max_num

Integer

参数解释:可以选择的最大节点数量(max_num,为1代表不支持分布式)。

取值范围:不涉及。

cpu

Cpu object

参数解释:cpu规格信息。

gpu

Gpu object

参数解释:gpu规格信息。

npu

Npu object

参数解释:Ascend规格信息。

memory

Memory object

参数解释:内存信息。

disk

Disk object

参数解释:磁盘信息。

表103 Cpu

参数

参数类型

描述

arch

String

参数解释:cpu架构。

取值范围:不涉及。

core_num

Integer

参数解释:核数。

取值范围:不涉及。

表104 Gpu

参数

参数类型

描述

unit_num

Integer

参数解释:gpu卡数。

取值范围:不涉及。

product_name

String

参数解释:产品名。

取值范围:不涉及。

memory

String

参数解释:内存。

取值范围:不涉及。

表105 Npu

参数

参数类型

描述

unit_num

String

参数解释:npu卡数。

取值范围:不涉及。

product_name

String

参数解释:产品名。

取值范围:不涉及。

memory

String

参数解释:内存。

取值范围:不涉及。

表106 Memory

参数

参数类型

描述

size

Integer

参数解释:内存大小。

取值范围:不涉及。

unit

String

参数解释:内存单元数。

取值范围:不涉及。

表107 Disk

参数

参数类型

描述

size

String

参数解释:磁盘大小。

取值范围:不涉及。

unit

String

参数解释:磁盘大小单位,一般为GB。

取值范围:不涉及。

表108 MainContainerAllocatedResources

参数

参数类型

描述

cpu_arch

String

参数解释: cpu架构。

取值范围: 不涉及。

cpu_core_num

Float

参数解释: 核数。

取值范围: 不涉及。

mem_size

Float

参数解释: 内存信息。

取值范围: 不涉及。

accelerator_num

Float

参数解释: 加速卡卡数。

取值范围: 不涉及。

accelerator_type

String

参数解释: 加速卡类型。

取值范围: 不涉及。

表109 JobVolumeResp

参数

参数类型

描述

nfs

NfsResp object

参数解释:nfs方式的挂载卷。

表110 NfsResp

参数

参数类型

描述

nfs_server_path

String

参数解释:nfs服务端路径,如:“10.10.10.10:/example/path”。

取值范围:不涉及。

local_path

String

参数解释:挂载到训练容器中的路径,如:“/example/path”。

取值范围:不涉及。

read_only

Boolean

参数解释:nfs挂载卷在容器中是否只读。

取值范围

  • true:只读

  • false:非只读

表111 LogExportPathResp

参数

参数类型

描述

obs_url

String

参数解释:训练作业日志保存的OBS地址,如:“obs://example/path”。

取值范围:不涉及。

host_path

String

参数解释:训练作业日志保存的宿主机的路径,如:“/example/path”。

取值范围:不涉及。

表112 SchedulePolicyResp

参数

参数类型

描述

required_affinity

RequiredAffinityResp object

参数解释:训练作业亲和要求。

priority

Integer

参数解释:训练作业优先级。

取值范围:0-3

preemptible

Boolean

参数解释:是否可以被抢占。

取值范围

  • true:可以被抢占

  • false:不可以被抢占

表113 RequiredAffinityResp

参数

参数类型

描述

affinity_type

String

参数解释:亲和调度策略。

取值范围

  • cabinet:强整柜调度

  • hyperinstance:超节点亲和调度

affinity_group_size

Integer

参数解释:亲和组大小。

取值范围:不涉及。

表114 CustomMetrics

参数

参数类型

描述

exec

Exec object

参数解释:命令行方式采集指标。

http_get

HttpGet object

参数解释:http方式采集指标。

表115 Exec

参数

参数类型

描述

command

Array of strings

参数解释: 命令行方式采集指标。

表116 HttpGet

参数

参数类型

描述

path

String

参数解释: http获取指标的url路径,与下面的端口必须同时填或者不填。

取值范围: 不涉及。

port

Integer

参数解释: http获取指标的端口,与上面的url路径必须同时填或者不填。

取值范围: 不涉及。

表117 JobEndpointsResp

参数

参数类型

描述

ssh

SSHResp object

参数解释:SSH连接信息。

jupyter_lab

JupyterLab object

参数解释:JupyterLab连接信息。

tensorboard

Tensorboard object

参数解释:Tensorboard连接信息。

mindstudio_insight

MindStudioInsight object

参数解释:MindStudio Insight连接信息。

表118 SSHResp

参数

参数类型

描述

key_pair_names

Array of strings

参数解释:SSH密钥对名称,可以在云服务器控制台(ECS)“密钥对”页面创建和查看。

取值范围:不涉及。

task_urls

Array of TaskUrls objects

参数解释:SSH连接地址信息。

表119 TaskUrls

参数

参数类型

描述

task

String

参数解释:训练作业的任务ID。

取值范围:不涉及。

url

String

参数解释:训练作业SSH连接地址。

取值范围:不涉及。

表120 JupyterLab

参数

参数类型

描述

url

String

参数解释:训练作业的JupyterLab地址。

取值范围:不涉及。

token

String

参数解释:训练作业的JupyterLab token。

取值范围:不涉及。

表121 Tensorboard

参数

参数类型

描述

url

String

参数解释:训练作业的Tensorboard地址。

取值范围:不涉及。

token

String

参数解释:训练作业的Tensorboard token。

取值范围:不涉及。

表122 MindStudioInsight

参数

参数类型

描述

url

String

参数解释:训练作业的MindStudio Insight地址。

取值范围:不涉及。

token

String

参数解释:训练作业的MindStudio Insight token。

取值范围:不涉及。

状态码:400

表123 响应Body参数

参数

参数类型

描述

error_msg

String

错误信息。

error_code

String

错误码。

error_solution

String

错误解决建议。

请求示例

  • 创建免费规格的训练作业。设置作业名称为“TestModelArtsJob”,描述为“This is a ModelArts job”。算法依赖的是id为3f5d6706-7b67-408d-8ba0-ec08048c45ed的算法,该算法未定义inputs与outputs,规格选用的是gpu免费规格。

    POST https://endpoint/v2/{project_id}/training-jobs
    
    {
      "kind" : "job",
      "metadata" : {
        "id" : "425b7087-83de-49ed-9e40-5bb642be956f",
        "name" : "TestModelArtsJob",
        "description" : "This is a ModelArts job",
        "create_time" : 1637045545982,
        "workspace_id" : "0",
        "user_name" : ""
      },
      "algorithm" : {
        "id" : "3f5d6706-7b67-408d-8ba0-ec08048c45ed",
        "name" : "ttt-obs-gpu",
        "code_dir" : "/cn-north-4-rse/test/moxingtest-code/",
        "boot_file" : "/cn-north-4-rse/test/moxingtest-code/test_obs_gpu.py",
        "parameters" : [ {
          "name" : "input_dir",
          "description" : "",
          "i18n_description" : null,
          "value" : "s://cn-north-4-rse/test/moxingtest-dir/",
          "constraint" : {
            "type" : "String",
            "editable" : true,
            "required" : true,
            "sensitive" : false,
            "valid_type" : "None",
            "valid_range" : [ ]
          }
        }, {
          "name" : "input_file",
          "description" : "",
          "i18n_description" : null,
          "value" : "obs://cn-north-4-rse/test/moxingtest/",
          "constraint" : {
            "type" : "String",
            "editable" : true,
            "required" : true,
            "sensitive" : false,
            "valid_type" : "None",
            "valid_range" : [ ]
          }
        }, {
          "name" : "large_file_method",
          "description" : "",
          "i18n_description" : null,
          "value" : "1",
          "constraint" : {
            "type" : "Integer",
            "editable" : true,
            "required" : true,
            "sensitive" : false,
            "valid_type" : "None",
            "valid_range" : [ ]
          }
        } ],
        "engine" : {
          "engine_id" : "horovod-cp36-tf-1.16.2",
          "engine_name" : "Horovod",
          "engine_version" : "0.16.2-TF-1.13.1-python3.6"
        },
        "policies" : { }
      },
      "spec" : {
        "resource" : {
          "flavor_id" : "modelarts.p3.large.public.free",
          "node_count" : 1
        },
        "log_export_path" : { },
        "custom_metrics" : [ {
          "http_get" : {
            "path" : "/raw_text",
            "port" : 10001
          }
        } ]
      }
    }
  • 使用自定义镜像创建训练作业。设置作业名称为“TestModelArtsJob2”,描述为“This is a ModelArts job2”的自定义镜像训练作业。使用专属资源池和nfs挂载。

    POST https://endpoint/v2/{project_id}/training-jobs
    
    {
      "kind" : "job",
      "metadata" : {
        "name" : "TestModelArtsJob2",
        "description" : "This is a ModelArts job2"
      },
      "algorithm" : {
        "engine" : {
          "image_url" : "xxxxxxxx/fastseq:1.2"
        },
        "command" : "cd /home/ma-user/ddp_demo && sh run_ddp.sh",
        "parameters" : [ ],
        "policies" : {
          "auto_search" : null
        },
        "environments" : {
          "NCCL_DEBUG" : "INFO",
          "NCCL_IB_DISABLE" : "0"
        }
      },
      "spec" : {
        "resource" : {
          "flavor_id" : "modelarts.pool.visual.xlarge",
          "node_count" : 1,
          "pool_id" : "poolfaf38d76"
        },
        "log_export_path" : {
          "obs_url" : "/cn-north-4-training-test/limou/ddp-demo-log/"
        },
        "volumes" : [ {
          "nfs" : {
            "nfs_server_path" : "192.168.0.82:/",
            "local_path" : "/home/ma-user/nfs/",
            "read_only" : false
          }
        } ]
      }
    }

响应示例

状态码:201

ok

{
  "kind" : "job",
  "metadata" : {
    "id" : "425b7087-83de-49ed-9e40-5bb642be956f",
    "name" : "TestModelArtsJob",
    "description" : "This is a ModelArts job",
    "create_time" : 1637045545982,
    "workspace_id" : "0",
    "user_name" : ""
  },
  "status" : {
    "phase" : "Creating",
    "secondary_phase" : "Creating",
    "duration" : 0,
    "start_time" : 0,
    "node_count_metrics" : null,
    "tasks" : [ "worker-0", "server-0" ]
  },
  "algorithm" : {
    "id" : "3f5d6706-7b67-408d-8ba0-ec08048c45ed",
    "name" : "ttt-obs-gpu",
    "code_dir" : "/cn-north-4-rse/test/moxingtest-code/",
    "boot_file" : "/cn-north-4-rse/test/moxingtest-code/test_obs_gpu.py",
    "parameters" : [ {
      "name" : "input_dir",
      "description" : "",
      "i18n_description" : null,
      "value" : "s://cn-north-4-rse/test/moxingtest-dir/",
      "constraint" : {
        "type" : "String",
        "editable" : true,
        "required" : true,
        "sensitive" : false,
        "valid_type" : "None",
        "valid_range" : [ ]
      }
    }, {
      "name" : "input_file",
      "description" : "",
      "i18n_description" : null,
      "value" : "obs://cn-north-4-rse/test/moxingtest/",
      "constraint" : {
        "type" : "String",
        "editable" : true,
        "required" : true,
        "sensitive" : false,
        "valid_type" : "None",
        "valid_range" : [ ]
      }
    }, {
      "name" : "large_file_method",
      "description" : "",
      "i18n_description" : null,
      "value" : "1",
      "constraint" : {
        "type" : "Integer",
        "editable" : true,
        "required" : true,
        "sensitive" : false,
        "valid_type" : "None",
        "valid_range" : [ ]
      }
    } ],
    "engine" : {
      "engine_id" : "horovod-cp36-tf-1.16.2",
      "engine_name" : "Horovod",
      "engine_version" : "0.16.2-TF-1.13.1-python3.6"
    },
    "policies" : { }
  },
  "spec" : {
    "resource" : {
      "policy" : "regular",
      "flavor_id" : "modelarts.p3.large.public.free",
      "flavor_name" : "Computing GPU(Vnt1) instance",
      "node_count" : 1,
      "flavor_detail" : {
        "flavor_type" : "GPU",
        "billing" : {
          "code" : "modelarts.vm.gpu.free",
          "unit_num" : 1
        },
        "flavor_info" : {
          "cpu" : {
            "arch" : "x86",
            "core_num" : 8
          },
          "gpu" : {
            "unit_num" : 1,
            "product_name" : "GP-Vnt1",
            "memory" : "32GB"
          },
          "memory" : {
            "size" : 64,
            "unit" : "GB"
          }
        }
      },
      "main_container_allocated_resources" : {
        "cpu_arch" : "x86",
        "cpu_core_num" : 5,
        "mem_size" : 44,
        "accelerator_num" : 1,
        "accelerator_type" : "nvidia-v100-pcie32"
      }
    },
    "log_export_path" : { },
    "custom_metrics" : [ {
      "exec" : {
        "command" : [ "cat", "/a/b/c.porm" ]
      }
    }, {
      "http_get" : {
        "path" : "/raw_text",
        "port" : 10001
      }
    } ]
  }
}

状态码:400

通用的错误应答消息体格式;如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的算法未找到时的返回信息。

{
  "error_msg" : "algorithm not found.",
  "error_code" : "ModelArts.2755",
  "error_solution" : "Check whether the training project information in the request is valid."
}

状态码

状态码

描述

201

ok

400

通用的错误应答消息体格式;如下为id是3f5d6706-7b67-408d-8ba0-ec08048c45ee的算法未找到时的返回信息。

错误码

请参见错误码