创建算法
功能介绍
创建算法接口用于在ModelArts平台上创建一个新的算法。
该接口适用于以下场景:当用户需要将自定义的算法模型上传至平台并进行管理时,可以通过此接口创建算法。使用该接口的前提条件是用户已准备好算法代码和相关配置文件,并上传至ModelArts平台,或用户已构建好自定义的镜像并上传至ModelArts平台。平台将在验证代码路径及相关配置正确后,将其添加到算法列表中。若算法代码路径或相关配置不完整、格式错误或用户无权限操作,接口将返回相应的错误信息。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v2/{project_id}/algorithms
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
参数解释:用户项目ID。获取方法请参见获取项目ID和名称。 约束限制:1 - 64字符,字母、数字和中划线。 取值范围:不涉及。 默认取值:不涉及。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
metadata |
否 |
AlgorithmMetadata object |
参数解释:算法的元数据,描述算法基本信息。 约束限制:不涉及。 |
job_config |
否 |
AlgorithmJobConfig object |
参数解释:算法配置信息,如启动文件等。 约束限制:不涉及。 |
resource_requirements |
否 |
Array of ResourceRequirement objects |
参数解释:算法资源约束。可不设置。设置后,在算法使用于训练作业时,控制台会过滤可用的公共资源池。 约束限制:不涉及。 |
advanced_config |
否 |
AlgorithmAdvancedConfig object |
参数解释:算法高级策略:
约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
id |
否 |
Integer |
参数解释:算法uuid,创建算法时无需填写。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
name |
是 |
String |
参数解释:算法名称。 约束限制:限制为1-64位只含数字、字母、下划线和中划线的名称。 取值范围:不涉及。 默认取值:不涉及。 |
description |
否 |
String |
参数解释:对算法的描述。 约束限制:字符串的长度限制为[0, 256]。 取值范围:不涉及。 默认取值:默认为“NULL”。 |
workspace_id |
否 |
String |
参数解释:指定算法所处的工作空间。 约束限制:不涉及。 取值范围:不涉及。 默认取值:默认值为“0”。“0” 为默认的工作空间。 |
ai_project |
否 |
String |
参数解释:指定算法所属的ai项目。ai项目已下线,无需关注。 约束限制:不涉及。 取值范围:不涉及。 默认取值:默认值为"default-ai-project"。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
code_dir |
否 |
String |
参数解释:算法的代码目录。如:“/usr/app/”。 约束限制:应与boot_file一同出现。 取值范围:不涉及。 默认取值:不涉及。 |
boot_file |
否 |
String |
参数解释:算法的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。 约束限制:应与code_dir一同出现。 取值范围:不涉及。 默认取值:不涉及。 |
command |
否 |
String |
参数解释:自定义镜像算法的容器启动命令。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
parameters |
否 |
Array of Parameters objects |
参数解释:算法的运行参数。 约束限制:不涉及。 |
inputs |
否 |
Array of AlgorithmCreateInput objects |
参数解释:算法的数据输入。 约束限制:不涉及。 |
outputs |
否 |
Array of AlgorithmCreateOutput objects |
参数解释:算法的数据输出。 约束限制:不涉及。 |
engine |
否 |
AlgorithmCreateEngine object |
参数解释:算法的引擎。 约束限制:不涉及。 |
parameters_customization |
否 |
Boolean |
参数解释:算法是否允许创建训练作业时自定义超参。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释:参数名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
value |
否 |
String |
参数解释:参数值。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
description |
否 |
String |
参数解释:参数描述信息。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
constraint |
否 |
ParametersConstraint object |
参数解释:参数属性。 约束限制:不涉及。 |
i18n_description |
否 |
I18nDescription object |
参数解释:国际化描述。 约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
否 |
String |
参数解释:参数种类。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
editable |
否 |
Boolean |
参数解释:是否可编辑。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
required |
否 |
Boolean |
参数解释:是否必须。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
sensitive |
否 |
Boolean |
参数解释:是否敏感。该功能暂未实现。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
valid_type |
否 |
String |
参数解释:有效种类。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
valid_range |
否 |
Array of strings |
参数解释:有效范围。 约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
language |
否 |
String |
参数解释:国际语种。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
description |
否 |
String |
参数解释:描述信息。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释:数据输入通道名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
description |
否 |
String |
参数解释:数据输入通道描述信息。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
remote_constraints |
否 |
Array of RemoteConstraint objects |
参数解释:数据输入约束。 约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
data_type |
否 |
String |
参数解释:数据输入类型,支持数据存储位置(OBS)、ModelArts数据集两种方式。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
attributes |
否 |
Array of Map<String,String> objects |
参数解释:数据输入为数据集时的相关属性。枚举值:
约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
参数解释:数据输出通道名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
description |
否 |
String |
参数解释:数据输出通道描述信息。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
engine_id |
否 |
String |
参数解释:算法选择的引擎规格ID。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
engine_name |
否 |
String |
参数解释:算法选择的引擎版本名称。 约束限制:若填入engine_id则无需填写。 取值范围:不涉及。 默认取值:不涉及。 |
engine_version |
否 |
String |
参数解释:算法选择的引擎版本名称。 约束限制:若填入engine_id则无需填写。 取值范围:不涉及。 默认取值:不涉及。 |
image_url |
否 |
String |
参数解释:算法选择的自定义镜像地址。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
key |
否 |
String |
参数解释:资源约束。 约束限制:不涉及。 取值范围:可选键值如:
默认取值:不涉及。 |
values |
否 |
Array of strings |
参数解释:资源约束键对应值。 约束限制:不涉及。 |
operator |
否 |
String |
参数解释:键与值关系。 约束限制:当前只支持in。例如flavor_type in [CPU,GPU]。 取值范围:不涉及。 默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
skip_search_params |
否 |
String |
参数解释:需要排除的超参组合。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
reward_attrs |
否 |
Array of RewardAttrs objects |
参数解释:搜索指标列表。 约束限制:不涉及。 |
search_params |
否 |
Array of SearchParams objects |
参数解释:搜索参数。 约束限制:不涉及。 |
algo_configs |
否 |
Array of AlgoConfigs objects |
参数解释:搜索算法配置。 约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释:指标名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
mode |
否 |
String |
参数解释:搜索方向。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
regex |
否 |
String |
参数解释:指标正则表达式。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释:超参名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
param_type |
否 |
String |
参数解释:参数类型。 约束限制:不涉及。 取值范围:
默认取值:不涉及。 |
lower_bound |
否 |
String |
参数解释:超参下界。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
upper_bound |
否 |
String |
参数解释:超参上界。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
discrete_points_num |
否 |
String |
参数解释:连续型超参离散化取值个数。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
discrete_values |
否 |
Array of strings |
参数解释:离散型超参的取值列表。 约束限制:不涉及。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
参数解释:搜索算法名称。 约束限制:不涉及。 取值范围:不涉及。 默认取值:不涉及。 |
params |
否 |
Array of AutoSearchAlgoConfigParameter objects |
参数解释:搜索算法参数。 约束限制:不涉及。 |
响应参数
状态码:201
参数 |
参数类型 |
描述 |
---|---|---|
metadata |
metadata object |
参数解释:算法的元数据,描述算法基本信息。 |
job_config |
job_config object |
参数解释:算法配置信息,如启动文件等。 |
resource_requirements |
Array of resource_requirements objects |
参数解释:算法资源约束,可不设置。设置后,在算法使用于训练作业时,控制台会过滤可用的公共资源池。 |
advanced_config |
advanced_config object |
参数解释:算法高级策略:
|
参数 |
参数类型 |
描述 |
---|---|---|
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 |
参数解释:算法更新时间戳。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
code_dir |
String |
参数解释:算法的代码目录。如:“/usr/app/”。应与boot_file一同出现。 取值范围:不涉及。 |
boot_file |
String |
参数解释:算法的代码启动文件,需要在代码目录下。如:“/usr/app/boot.py”。应与code_dir一同出现。 取值范围:不涉及。 |
command |
String |
参数解释:自定义镜像算法的容器启动命令。 取值范围:不涉及。 |
parameters |
Array of ParameterResp objects |
参数解释:算法的运行参数。 |
inputs |
Array of inputs objects |
参数解释:算法的数据输入。 |
outputs |
Array of outputs objects |
参数解释:算法的数据输出。 |
engine |
engine object |
参数解释:算法的引擎。 |
code_tree |
Array of code_tree objects |
参数解释:算法的目录结构树。 |
parameters_customization |
Boolean |
参数解释:算法是否允许创建训练作业时自定义超参。 取值范围:
|
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:参数名称。 取值范围:不涉及。 |
value |
String |
参数解释:参数值。 取值范围:不涉及。 |
description |
String |
参数解释:参数描述信息。 取值范围:不涉及。 |
constraint |
constraint object |
参数解释:参数属性。 |
i18n_description |
i18n_description object |
参数解释:国际化描述。 |
参数 |
参数类型 |
描述 |
---|---|---|
type |
String |
参数解释:参数种类。 取值范围:不涉及。 |
editable |
Boolean |
参数解释:是否可编辑。 取值范围:
|
required |
Boolean |
参数解释:是否必须。 取值范围:
|
sensitive |
Boolean |
参数解释:是否敏感。该功能暂未实现。 取值范围:
|
valid_type |
String |
参数解释:有效种类。 取值范围:不涉及。 |
valid_range |
Array of strings |
参数解释:有效范围。 |
参数 |
参数类型 |
描述 |
---|---|---|
language |
String |
参数解释:国际语种。可选值如下:
取值范围:不涉及。 |
description |
String |
参数解释:国际化语种的描述信息。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:数据输入通道名称。 取值范围:不涉及。 |
description |
String |
参数解释:数据输入通道描述信息。 取值范围:不涉及。 |
remote_constraints |
Array of remote_constraints objects |
参数解释:数据输入约束。 |
参数 |
参数类型 |
描述 |
---|---|---|
data_type |
String |
参数解释:数据输入类型,包括数据存储位置、数据集两种方式。 取值范围:不涉及。 |
attributes |
Array of Map<String,String> objects |
参数解释:数据输入为数据集时的相关属性。枚举值:
|
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:数据输出通道名称。 取值范围:不涉及。 |
description |
String |
参数解释:数据输出通道描述信息。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
engine_id |
String |
参数解释:算法选择的引擎规格ID。 取值范围:不涉及。 |
engine_name |
String |
参数解释:算法选择的引擎版本名称。若填入engine_id则无需填写。 取值范围:不涉及。 |
engine_version |
String |
参数解释:算法选择的引擎版本名称。若填入engine_id则无需填写。 取值范围:不涉及。 |
image_url |
String |
参数解释:算法选择的自定义镜像地址。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:算法目录树当前层级目录名。 取值范围:不涉及。 |
children |
Object |
参数解释:算法目录树当前层级目录下子文件和子目录。 |
参数 |
参数类型 |
描述 |
---|---|---|
key |
String |
参数解释:资源约束。 取值范围:可选值如下:
|
value |
Array of strings |
参数解释:资源约束键对应值。 |
operator |
String |
参数解释:键与值关系,当前只支持in。例如flavor_type in [CPU,GPU]。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
skip_search_params |
String |
参数解释:需要排除的超参组合。 取值范围:不涉及。 |
reward_attrs |
Array of reward_attrs objects |
参数解释:搜索指标列表。 |
search_params |
Array of search_params objects |
参数解释:搜索参数。 |
algo_configs |
Array of algo_configs objects |
参数解释:搜索算法配置。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:指标名称。 取值范围:不涉及。 |
mode |
String |
参数解释:搜索方向。 取值范围:
|
regex |
String |
参数解释:指标正则表达式。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:超参名称。 取值范围:不涉及。 |
param_type |
String |
参数解释:参数类型。 取值范围:
|
lower_bound |
String |
参数解释:超参下界。 取值范围:不涉及。 |
upper_bound |
String |
参数解释:超参上界。 取值范围:不涉及。 |
discrete_points_num |
String |
参数解释:连续型超参离散化取值个数。 取值范围:不涉及。 |
discrete_values |
String |
参数解释:离散型超参的取值列表。 取值范围:不涉及。 |
参数 |
参数类型 |
描述 |
---|---|---|
name |
String |
参数解释:搜索算法名称。 取值范围:不涉及。 |
params |
Array of AutoSearchAlgoConfigParameterResp objects |
参数解释:搜索算法参数。 |
请求示例
创建算法。设置算法名称为“TestModelArtsalgorithm”,描述为“This is a ModelArts algorithm”。
POST https://endpoint/v2/{project_id}/algorithms { "metadata" : { "name" : "TestModelArtsalgorithm", "description" : "This is a ModelArts algorithm" }, "advanced_config" : { "auto_search" : { "algo_configs" : [ { "name" : "bayes_opt_search", "params" : [ { "key" : "kind", "value" : "ucb", "type" : "String" }, { "key" : "kappa", "value" : "2.5", "type" : "Float" }, { "key" : "xi", "value" : "0.0", "type" : "Float" }, { "key" : "num_samples", "value" : "20", "type" : "Integer" }, { "key" : "seed", "value" : "1", "type" : "Integer" } ] } ], "reward_attrs" : [ { "name" : "max_search", "mode" : "max", "regex" : "10.0" } ], "search_params" : [ { "name" : "test_search", "lower_bound" : "1", "upper_bound" : "10" } ] } }, "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 |
错误码
请参见错误码。