更新时间:2024-05-30 GMT+08:00

创建算法

功能介绍

创建一个算法。

调试

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

URI

POST /v2/{project_id}/algorithms

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

metadata

metadata object

算法的元数据,描述算法基本信息。

job_config

job_config object

算法配置信息,如启动文件等。

resource_requirements

Array of resource_requirements objects

算法资源约束。可不设置。设置后,在算法使用于训练作业时,控制台会过滤可用的公共资源池。

advanced_config

advanced_config object

算法高级策略:

  • auto_search

表3 metadata

参数

是否必选

参数类型

描述

id

Integer

算法uuid,创建算法时无需填写。

name

String

算法名称。限制为1-64位只含数字、字母、下划线和中划线的名称。

description

String

对算法的描述,默认为“NULL”,字符串的长度限制为[0, 256]。

workspace_id

String

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

ai_project

String

指定算法所属的ai项目,默认值为"default-ai-project"。ai项目已下线,无需关注。

表4 job_config

参数

是否必选

参数类型

描述

code_dir

String

算法的代码目录。如:“/usr/app/”。应与boot_file一同出现。

boot_file

String

算法的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。应与code_dir一同出现。

command

String

自定义镜像算法的容器启动命令。

parameters

Array of Parameter objects

算法的运行参数。

inputs

Array of inputs objects

算法的数据输入。

outputs

Array of outputs objects

算法的数据输出。

engine

engine object

算法的引擎。

parameters_customization

Boolean

算法是否允许创建训练作业时自定义超参。

表5 Parameter

参数

是否必选

参数类型

描述

name

String

参数名称。

value

String

参数值。

description

String

参数描述信息。

constraint

constraint object

参数属性。

i18n_description

i18n_description object

国际化描述。

表6 constraint

参数

是否必选

参数类型

描述

type

String

参数种类。

editable

Boolean

是否可编辑。

required

Boolean

是否必须。

sensitive

Boolean

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

valid_type

String

有效种类。

valid_range

Array of strings

有效范围。

表7 i18n_description

参数

是否必选

参数类型

描述

language

String

国际语种,可选值如下:

  • zh-cn(中文),

  • en-us(英文)。

description

String

对应描述。

表8 inputs

参数

是否必选

参数类型

描述

name

String

数据输入通道名称。

description

String

数据输入通道描述信息。

remote_constraints

Array of remote_constraints objects

数据输入约束。

表9 remote_constraints

参数

是否必选

参数类型

描述

data_type

String

数据输入类型,支持数据存储位置(OBS)、ModelArts数据集两种方式。

attributes

Array of Map<String,String> objects

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

  • data_format:数据格式。

  • data_segmentation:数据切分方式。

  • dataset_type:标注类型。

表10 outputs

参数

是否必选

参数类型

描述

name

String

数据输出通道名称。

description

String

数据输出通道描述信息。

表11 engine

参数

是否必选

参数类型

描述

engine_id

String

算法选择的引擎规格ID。

engine_name

String

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

engine_version

String

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

image_url

String

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

表12 resource_requirements

参数

是否必选

参数类型

描述

key

String

资源约束,可选键值如:

  • flavor_type(资源类型),对应值可选择CPU、GPU或Ascend;

  • device_distributed_mode(是否支持多卡训练),对应值可选择multiple(支持)、singular(不支持);

  • host_distributed_mode(是否支持分布式训练),对应值可选择multiple(支持)、singular(不支持)。

values

Array of strings

资源约束键对应值。

operator

String

键与值关系,当前只支持in。例如flavor_type in [CPU,GPU]。

表13 advanced_config

参数

是否必选

参数类型

描述

auto_search

auto_search object

超参搜索策略。

表15 reward_attrs

参数

是否必选

参数类型

描述

name

String

指标名称。

mode

String

搜索方向。

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

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

regex

String

指标正则表达式。

表16 search_params

参数

是否必选

参数类型

描述

name

String

超参名称。

param_type

String

参数类型。

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

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

lower_bound

String

超参下界。

upper_bound

String

超参上界。

discrete_points_num

String

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

discrete_values

String

离散型超参的取值列表。

表17 algo_configs

参数

是否必选

参数类型

描述

name

String

搜索算法名称。

params

Array of AutoSearchAlgoConfigParameter objects

搜索算法参数。

表18 AutoSearchAlgoConfigParameter

参数

是否必选

参数类型

描述

key

String

参数键。

value

String

参数值。

type

String

参数种类。

响应参数

状态码: 201

表19 响应Body参数

参数

参数类型

描述

metadata

metadata object

算法的元数据,描述算法基本信息。

job_config

job_config object

算法配置信息,如启动文件等。

resource_requirements

Array of resource_requirements objects

算法资源约束,可不设置。设置后,在算法使用于训练作业时,控制台会过滤可用的公共资源池。

advanced_config

advanced_config object

算法高级策略:

  • auto_search

表20 metadata

参数

参数类型

描述

id

Integer

算法uuid,创建算法时无需填写。

name

String

算法名称。限制为1-64位只含数字、字母、下划线和中划线的名称。

description

String

对算法的描述,默认为“NULL”,字符串的长度限制为[0, 256]。

workspace_id

String

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

ai_project

String

指定算法所属的ai项目,默认值为"default-ai-project"。ai项目已下线,无需关注。

user_name

String

用户名称。

domain_id

String

用户的domainID。

source

String

算法来源类型。

api_version

String

算法api版本,标识新旧版。

is_valid

String

算法可用性。

state

String

算法状态。

tags

Array of Map<String,String> objects

算法标签。

attr_list

Array of strings

算法属性列表。

version_num

Integer

算法版本数量,默认为0。

size

Integer

算法大小。

create_time

Long

算法创建时间戳。

update_time

Long

算法更新时间戳。

表21 job_config

参数

参数类型

描述

code_dir

String

算法的代码目录。如:“/usr/app/”。应与boot_file一同出现。

boot_file

String

算法的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。应与code_dir一同出现。

command

String

自定义镜像算法的容器启动命令。

parameters

Array of Parameter objects

算法的运行参数。

inputs

Array of inputs objects

算法的数据输入。

outputs

Array of outputs objects

算法的数据输出。

engine

engine object

算法的引擎。

code_tree

Array of code_tree objects

算法的目录结构树。

parameters_customization

Boolean

算法是否允许创建训练作业时自定义超参。

表22 Parameter

参数

参数类型

描述

name

String

参数名称。

value

String

参数值。

description

String

参数描述信息。

constraint

constraint object

参数属性。

i18n_description

i18n_description object

国际化描述。

表23 constraint

参数

参数类型

描述

type

String

参数种类。

editable

Boolean

是否可编辑。

required

Boolean

是否必须。

sensitive

Boolean

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

valid_type

String

有效种类。

valid_range

Array of strings

有效范围。

表24 i18n_description

参数

参数类型

描述

language

String

国际语种,可选值如下:

  • zh-cn(中文),

  • en-us(英文)。

description

String

对应描述。

表25 inputs

参数

参数类型

描述

name

String

数据输入通道名称。

description

String

数据输入通道描述信息。

remote_constraints

Array of remote_constraints objects

数据输入约束。

表26 remote_constraints

参数

参数类型

描述

data_type

String

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

attributes

Array of Map<String,String> objects

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

  • data_format数据格式。

  • data_segmentation数据切分方式。

  • dataset_type标注类型。

表27 outputs

参数

参数类型

描述

name

String

数据输出通道名称。

description

String

数据输出通道描述信息。

表28 engine

参数

参数类型

描述

engine_id

String

算法选择的引擎规格ID。

engine_name

String

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

engine_version

String

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

image_url

String

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

表29 code_tree

参数

参数类型

描述

name

String

算法目录树当前层级目录名。

children

Object

算法目录树当前层级目录下子文件和子目录。

表30 resource_requirements

参数

参数类型

描述

key

String

资源约束,可选值如下:

  • 资源类型(flavor_type),对应值可选择CPU、GPU或Ascend;

  • 是否支持多卡训练(device_distributed_mode),对应值可选择支持(multiple)、不支持(singular);

  • 是否支持分布式训练(host_distributed_mode),对应值可选择支持(multiple)、不支持(singular)。

value

Array of strings

资源约束键对应值。

operator

String

键与值关系,当前只支持in。例如flavor_type in [CPU,GPU]。

表31 advanced_config

参数

参数类型

描述

auto_search

auto_search object

超参搜索策略。

表33 reward_attrs

参数

参数类型

描述

name

String

指标名称。

mode

String

搜索方向。

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

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

regex

String

指标正则表达式。

表34 search_params

参数

参数类型

描述

name

String

超参名称。

param_type

String

参数类型。

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

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

lower_bound

String

超参下界。

upper_bound

String

超参上界。

discrete_points_num

String

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

discrete_values

String

离散型超参的取值列表。

表35 algo_configs

参数

参数类型

描述

name

String

搜索算法名称。

params

Array of AutoSearchAlgoConfigParameter objects

搜索算法参数。

表36 AutoSearchAlgoConfigParameter

参数

参数类型

描述

key

String

参数键。

value

String

参数值。

type

String

参数种类。

请求示例

创建算法。设置算法名称为“TestModelArtsalgorithm”,描述为“This is a ModelArts algorithm”。

POST https://endpoint/v2/{project_id}/algorithms

{
  "metadata" : {
    "name" : "TestModelArtsalgorithm",
    "description" : "This is a ModelArts algorithm"
  },
  "job_config" : {
    "code_dir" : "/algo-test/pytorch/work1/code/",
    "boot_file" : "/algo-test/pytorch/work1/code/test-pytorch.py",
    "parameters" : [ {
      "name" : "test-parameter",
      "value" : "10",
      "constraint" : {
        "type" : "String",
        "editable" : true,
        "required" : false,
        "sensitive" : false,
        "valid_type" : "None",
        "valid_range" : [ ]
      }
    } ],
    "parameters_customization" : true,
    "inputs" : [ {
      "name" : "data_url",
      "description" : "data source."
    } ],
    "outputs" : [ {
      "name" : "train_url",
      "description" : "model output."
    } ],
    "engine" : {
      "engine_name" : "PyTorch",
      "engine_version" : "PyTorch-1.3.0-python3.6"
    }
  }
}

响应示例

状态码: 201

ok

{
  "metadata" : {
    "id" : "2e5451fe-913f-4492-821a-2981031382f7",
    "name" : "TestModelArtsalgorithm",
    "description" : "This is a ModelArts algorithm",
    "create_time" : 1636600721742,
    "workspace_id" : "0",
    "ai_project" : "default-ai-project",
    "user_name" : "",
    "domain_id" : "xxxxxxxxxxxxxxxxxxxxxxxxxx",
    "source" : "custom",
    "api_version" : "",
    "is_valid" : true,
    "state" : "",
    "size" : 4791,
    "tags" : null,
    "attr_list" : null,
    "version_num" : 0,
    "update_time" : 0
  },
  "job_config" : {
    "code_dir" : "/algo-test/pytorch/work1/code/",
    "boot_file" : "/algo-test/pytorch/work1/code/test-pytorch.py",
    "command" : "",
    "parameters" : [ {
      "name" : "test-parameter",
      "description" : "",
      "i18n_description" : null,
      "value" : "10",
      "constraint" : {
        "type" : "String",
        "editable" : true,
        "required" : false,
        "sensitive" : false,
        "valid_type" : "None",
        "valid_range" : [ ]
      }
    } ],
    "parameters_customization" : true,
    "inputs" : [ {
      "name" : "data_url",
      "description" : "name to translate"
    } ],
    "outputs" : [ {
      "name" : "train_url",
      "description" : "name to translate"
    } ],
    "engine" : {
      "engine_id" : "pytorch-cp36-1.3.0",
      "engine_name" : "PyTorch",
      "engine_version" : "PyTorch-1.3.0-python3.6"
    },
    "code_tree" : {
      "name" : "code/",
      "children" : [ {
        "name" : "test-pytorch.py"
      } ]
    }
  },
  "resource_requirements" : null,
  "advanced_config" : { }
}

状态码

状态码

描述

201

ok

错误码

请参见错误码