更新时间:2024-10-23 GMT+08:00
分享

创建训练作业

功能介绍

创建训练作业。

调试

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

URI

POST /v2/{project_id}/training-jobs

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

kind

String

训练作业类型。默认使用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

对训练作业的描述,默认为“NULL”,字符串的长度限制为[0, 256]。

annotations

Map<String,String>

训练作业高级功能配置,可选取值如下:

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

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

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

表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对环境变量。变量名应该仅包含字母、数字、下划线(),且以字母或下划线()开头。

表5 Parameters

参数

是否必选

参数类型

描述

name

String

参数名称。

value

String

参数值。

description

String

参数描述信息。

constraint

ParametersConstraint object

参数属性。

i18n_description

I18nDescription object

国际化描述。

表6 ParametersConstraint

参数

是否必选

参数类型

描述

type

String

参数种类。

editable

Boolean

是否可编辑。

required

Boolean

是否必须。

sensitive

Boolean

是否敏感。该功能暂未实现。

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,则此参数无需填写。

engine_version

String

训练作业选择的引擎版本名称。如果已填写engine_id,则此参数无需填写。

image_url

String

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

install_sys_packages

Boolean

是否需要安装训练平台指定的 moxing 版本。true为需要。只有填写了engine_name,engine_version,image_url参数时支持该设置。

表15 Task

参数

是否必选

参数类型

描述

role

String

任务角色,该功能暂未支持。

algorithm

algorithm object

算法管理算法配置。

task_resource

task_resource object

训练作业资源规格信息。

表16 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兼容模式下,当前字段不生效。

表17 job_config

参数

是否必选

参数类型

描述

parameters

Array of Parameter objects

算法的运行参数。

inputs

Array of Input objects

算法的数据输入。

outputs

Array of Output objects

算法的数据输出。

engine

engine object

算法的引擎。

表18 Parameter

参数

是否必选

参数类型

描述

name

String

参数名称。

value

String

参数值。

description

String

参数描述信息。

constraint

constraint object

参数属性。

i18n_description

i18n_description object

国际化描述。

表19 constraint

参数

是否必选

参数类型

描述

type

String

参数种类。

editable

Boolean

是否可编辑。

required

Boolean

是否必须。

sensitive

Boolean

是否敏感。该功能暂未实现。

valid_type

String

有效种类。

valid_range

Array of strings

有效范围。

表20 i18n_description

参数

是否必选

参数类型

描述

language

String

国际语种,可选值如下:

  • zh-cn(中文)

  • en-us(英文)

description

String

国际化语种的描述信息。

表21 Input

参数

是否必选

参数类型

描述

name

String

数据输入通道名称。

description

String

数据输入通道描述信息。

local_dir

String

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

remote

InputDataInfo object

数据实际输入信息。枚举值:

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

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

remote_constraint

Array of remote_constraint objects

数据输入约束。

表22 InputDataInfo

参数

是否必选

参数类型

描述

dataset

dataset object

数据输入信息为数据集。

obs

obs object

数据输入输出信息为OBS方式。

表23 dataset

参数

是否必选

参数类型

描述

id

String

训练作业的数据集ID。

version_id

String

训练作业的数据集版本ID。

表24 obs

参数

是否必选

参数类型

描述

obs_url

String

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

表25 remote_constraint

参数

是否必选

参数类型

描述

data_type

String

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

attributes

String

数据输入为数据集时的相关属性。枚举值:

  • data_format 数据格式;

  • data_segmentation 数据切分方式;

  • dataset_type 标注类型。

表26 Output

参数

是否必选

参数类型

描述

name

String

数据输出通道名称。

description

String

数据输出通道描述信息。

local_dir

String

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

remote

Remote object

数据实际输出信息。

表27 Remote

参数

是否必选

参数类型

描述

obs

RemoteObs object

数据实际输出到OBS。

表28 RemoteObs

参数

是否必选

参数类型

描述

obs_url

String

数据实际输出到OBS的路径。

表29 engine

参数

是否必选

参数类型

描述

engine_id

String

算法选择的引擎规格ID。

engine_name

String

算法选择的引擎版本名称。若填入engine_id则无需填写。

engine_version

String

算法选择的引擎版本名称。若填入engine_id则无需填写。

image_url

String

算法选择的自定义镜像地址。

表30 engine

参数

是否必选

参数类型

描述

engine_id

String

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

engine_name

String

异构作业引擎规格的名称。如“Caffe”。

engine_version

String

异构作业引擎规格的版本。

image_url

String

算法选择的自定义镜像地址。

表31 inputs

参数

是否必选

参数类型

描述

name

String

数据输入通道名称。

description

String

数据输入通道描述信息。

local_dir

String

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

remote

remote object

数据实际输入信息。枚举值:

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

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

表32 remote

参数

是否必选

参数类型

描述

obs

obs object

数据输入输出信息为OBS方式。

表33 obs

参数

是否必选

参数类型

描述

obs_url

String

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

表34 outputs

参数

是否必选

参数类型

描述

name

String

数据输出通道名称。

description

String

数据输出通道描述信息。

local_dir

String

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

remote

remote object

数据实际输出信息。

表35 remote

参数

是否必选

参数类型

描述

obs

obs object

数据实际输出到OBS。

表36 obs

参数

是否必选

参数类型

描述

obs_url

String

数据实际输出到OBS的路径。

表37 task_resource

参数

是否必选

参数类型

描述

flavor_id

String

训练作业选择的资源规格ID。

node_count

Integer

训练作业选择的资源副本数。

表38 Spec

参数

是否必选

参数类型

描述

resource

SpecResource object

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

volumes

Array of SpecVolumes objects

训练作业挂载卷信息。

log_export_path

LogExportPath object

训练作业日志输出信息。

auto_stop

AutoStop object

训练作业的自动停止配置。

schedule_policy

SchedulePolicy object

训练作业调度策略

表39 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卡)

node_count

Integer

资源池创建训练作业使用节点数。默认单节点。

pool_id

String

专属资源池id。

表40 SpecVolumes

参数

是否必选

参数类型

描述

nfs

Nfs object

训练作业nfs挂载卷信息。

pfs

Pfs object

训练作业obsfs挂载卷信息。

表41 Nfs

参数

是否必选

参数类型

描述

nfs_server_path

String

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

local_path

String

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

read_only

Boolean

nfs挂载卷在容器中是否只读。

表42 Pfs

参数

是否必选

参数类型

描述

pfs_path

String

obsfs的地址。如:“/test-bucket/path”。

local_path

String

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

表43 LogExportPath

参数

是否必选

参数类型

描述

obs_url

String

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

host_path

String

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

表44 AutoStop

参数

是否必选

参数类型

描述

time_unit

String

时间单位。可选取值如下:

  • HOURS

duration

Integer

运行时长,最小值为1。

表45 SchedulePolicy

参数

是否必选

参数类型

描述

required_affinity

RequiredAffinity object

训练作业亲和要求

priority

Integer

训练作业优先级

表46 RequiredAffinity

参数

是否必选

参数类型

描述

affinity_type

String

亲和调度策略,可选取值如下:

  • cabinet 强整柜调度

表47 JobEndpointsReq

参数

是否必选

参数类型

描述

ssh

SSHReq object

SSH连接信息。

表48 SSHReq

参数

是否必选

参数类型

描述

key_pair_names

Array of strings

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

响应参数

状态码: 201

表49 响应Body参数

参数

参数类型

描述

kind

String

训练作业类型。默认使用job。枚举值:

  • job 训练作业。

metadata

JobMetadata object

训练作业元信息。

status

Status object

训练作业状态信息。创建作业无需填写。

algorithm

JobAlgorithmResponse object

训练作业算法。目前支持三种形式:

  • id:只取算法的id;

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

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

tasks

Array of TaskResponse objects

异构训练作业的任务列表。

spec

SpecResponce object

训练作业规格参数。

endpoints

JobEndpointsResp object

远程接入训练作业时需要的相关配置。

表50 JobMetadata

参数

参数类型

描述

id

String

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

name

String

训练作业名称。限制为1-64位只含数字、字母、下划线和中划线的名称。

workspace_id

String

指定作业所处的工作空间,默认值为“0”。

description

String

对训练作业的描述,默认为“NULL”,字符串的长度限制为[0, 256]。

create_time

Long

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

user_name

String

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

annotations

Map<String,String>

训练作业高级功能配置,可选取值如下:

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

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

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

表51 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

训练作业运行及故障恢复记录。

表52 TaskStatuses

参数

参数类型

描述

task

String

训练作业子任务名称。

exit_code

Integer

训练作业子任务退出码。

message

String

训练作业子任务错误消息。

表53 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。

表54 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 Parameter objects

训练作业的运行参数。

policies

policies 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

Array of Map<String,String> objects

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

表55 Parameter

参数

参数类型

描述

name

String

参数名称。

value

String

参数值。

description

String

参数描述信息。

constraint

constraint object

参数属性。

i18n_description

i18n_description object

国际化描述。

表56 constraint

参数

参数类型

描述

type

String

参数种类。

editable

Boolean

是否可编辑。

required

Boolean

是否必须。

sensitive

Boolean

是否敏感。该功能暂未实现。

valid_type

String

有效种类。

valid_range

Array of strings

有效范围。

表57 i18n_description

参数

参数类型

描述

language

String

国际语种,可选值如下:

  • zh-cn(中文)

  • en-us(英文)

description

String

国际化语种的描述信息。

表58 policies

参数

参数类型

描述

auto_search

auto_search object

超参搜索配置。

表60 reward_attrs

参数

参数类型

描述

name

String

指标名称。

mode

String

搜索方向。

  • max指定时表示指标值越大越好;

  • min指定时表示指标值越小越好。

regex

String

指标正则表达式。

表61 search_params

参数

参数类型

描述

name

String

超参名称。

param_type

String

参数类型。

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

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

lower_bound

String

超参下界。

upper_bound

String

超参上界。

discrete_points_num

String

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

discrete_values

Array of strings

离散型超参的取值列表。

表62 algo_configs

参数

参数类型

描述

name

String

搜索算法名称。

params

Array of AutoSearchAlgoConfigParameter objects

搜索算法参数。

表63 AutoSearchAlgoConfigParameter

参数

参数类型

描述

key

String

参数键。

value

String

参数值。

type

String

参数种类。

表64 Input

参数

参数类型

描述

name

String

数据输入通道名称。

description

String

数据输入通道描述信息。

local_dir

String

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

remote

InputDataInfo object

数据实际输入信息。枚举值:

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

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

remote_constraint

Array of remote_constraint objects

数据输入约束。

表65 InputDataInfo

参数

参数类型

描述

dataset

dataset object

数据输入信息为数据集。

obs

obs object

数据输入输出信息为OBS方式。

表66 dataset

参数

参数类型

描述

id

String

训练作业的数据集ID。

version_id

String

训练作业的数据集版本ID。

obs_url

String

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

表67 obs

参数

参数类型

描述

obs_url

String

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

表68 remote_constraint

参数

参数类型

描述

data_type

String

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

attributes

String

数据输入为数据集时的相关属性。枚举值:

  • data_format 数据格式;

  • data_segmentation 数据切分方式;

  • dataset_type 标注类型。

表69 Output

参数

参数类型

描述

name

String

数据输出通道名称。

description

String

数据输出通道描述信息。

local_dir

String

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

remote

Remote object

数据实际输出信息。

表70 JobEngine

参数

参数类型

描述

engine_id

String

训练作业选择的引擎规格ID。engine_id,engine_name+engine_version和image_url方式三选一。

engine_name

String

训练作业选择的引擎名称。如果已填写engine_id,则此参数无需填写。

engine_version

String

训练作业选择的引擎版本名称。如果已填写engine_id,则此参数无需填写。

image_url

String

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

install_sys_packages

Boolean

是否需要安装训练平台指定的 moxing 版本。true为需要。只有填写了engine_name,engine_version,image_url参数时支持该设置。

表71 TaskResponse

参数

参数类型

描述

role

String

任务角色,该功能暂未支持。

algorithm

TaskResponseAlgorithm object

算法管理算法配置。

task_resource

FlavorResponse object

训练作业、算法的规格信息。

表72 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兼容模式下,当前字段不生效。

表73 AlgorithmInput

参数

参数类型

描述

name

String

数据输入通道名称。

local_dir

String

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

remote

AlgorithmRemote object

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

表74 AlgorithmRemote

参数

参数类型

描述

obs

RemoteObs object

数据输入输出信息为OBS方式。

表75 AlgorithmOutput

参数

参数类型

描述

name

String

数据输出通道名称。

local_dir

String

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

remote

Remote object

数据实际输出信息。

mode

String

数据传输模式,默认为“upload_periodically”。

period

String

数据传输周期,默认为30s。

表76 Remote

参数

参数类型

描述

obs

RemoteObs object

数据实际输出到OBS。

表77 RemoteObs

参数

参数类型

描述

obs_url

String

数据实际输出到OBS的路径。

表78 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兼容模式。

run_user

String

引擎默认启动用户uid。

image_url

String

算法选择的自定义镜像地址。

表79 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>

其他规格属性。

表80 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

磁盘信息。

表81 DiskResponse

参数

参数类型

描述

size

Integer

磁盘大小。

unit

String

磁盘大小单位。

表82 SpecResponce

参数

参数类型

描述

resource

Resource object

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

volumes

Array of JobVolume objects

训练作业挂载卷信息。

log_export_path

LogExportPath object

训练作业日志输出信息。

表83 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

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

表84 FlavorDetail

参数

参数类型

描述

flavor_type

String

资源规格的类型。可选值如下:

  • CPU

  • GPU

  • Ascend

billing

BillingInfo object

资源规格计费信息。

flavor_info

FlavorInfo object

资源规格详细信息。

表85 BillingInfo

参数

参数类型

描述

code

String

计费码。

unit_num

Integer

计费单元。

表86 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

磁盘信息。

表87 Cpu

参数

参数类型

描述

arch

String

cpu架构。

core_num

Integer

核数。

表88 Gpu

参数

参数类型

描述

unit_num

Integer

gpu卡数。

product_name

String

产品名。

memory

String

内存。

表89 Npu

参数

参数类型

描述

unit_num

String

npu卡数。

product_name

String

产品名。

memory

String

内存。

表90 Memory

参数

参数类型

描述

size

Integer

内存大小。

unit

String

内存单元数。

表91 Disk

参数

参数类型

描述

size

String

磁盘大小。

unit

String

磁盘大小单位,一般为GB。

表92 JobVolume

参数

参数类型

描述

nfs

Nfs object

nfs方式的挂载卷。

表93 Nfs

参数

参数类型

描述

nfs_server_path

String

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

local_path

String

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

read_only

Boolean

nfs挂载卷在容器中是否只读。

表94 LogExportPath

参数

参数类型

描述

obs_url

String

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

host_path

String

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

表95 JobEndpointsResp

参数

参数类型

描述

ssh

SSHResp object

SSH连接信息。

jupyter_lab

JupyterLab object

JupyterLab连接信息。

表96 SSHResp

参数

参数类型

描述

key_pair_names

Array of strings

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

task_urls

Array of TaskUrls objects

SSH连接地址信息。

表97 TaskUrls

参数

参数类型

描述

task

String

训练作业的任务ID。

url

String

训练作业SSH连接地址。

表98 JupyterLab

参数

参数类型

描述

url

String

训练作业的JupyterLab地址。

token

String

训练作业的JupyterLab token。

状态码: 400

表99 响应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" : {
        "name" : "TestModelArtsJob",
        "description" : "This is a ModelArts job"
      },
      "algorithm" : {
        "id" : "3f5d6706-7b67-408d-8ba0-ec08048c45ed",
        "parameters" : [ {
          "name" : "input_dir",
          "value" : "obs://cn-north-4-rse/test/moxingtest-dir/"
        }, {
          "name" : "input_file",
          "value" : "obs://cn-north-4-rse/test/moxingtest/"
        }, {
          "name" : "large_file_method",
          "value" : "1"
        } ],
        "policies" : {
          "auto_search" : null
        },
        "environments" : { }
      },
      "spec" : {
        "resource" : {
          "flavor_id" : "modelarts.p3.large.public.free",
          "node_count" : 1
        },
        "log_export_path" : {
          "obs_url" : ""
        }
      }
    }
  • 使用自定义镜像创建训练作业。设置作业名称为“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"
          }
        }
      }
    },
    "log_export_path" : { }
  }
}

状态码: 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的算法未找到时的返回信息。

错误码

请参见错误码

相关文档