Creating an Algorithm¶
Function¶
This API is used to create an algorithm.
Debugging¶
You can debug this API through automatic authentication in or use the SDK sample code generated by API Explorer.
URI¶
POST /v2/{project_id}/algorithms
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. For details, see Obtaining a Project ID and Name. |
Request Parameters¶
Parameter | Mandatory | Type | Description |
---|---|---|---|
metadata | No | metadata object | Algorithm metadata, which describes basic algorithm information. |
job_config | No | job_config object | Algorithm configuration, such as the boot file. |
resource_requirements | No | Array of resource_requirements objects | Algorithm resource constraint. You can disable this function by not setting this parameter. |
advanced_config | No | advanced_config object | Advanced algorithm configuration. Currently, autosearch is supported. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
id | No | Integer | Algorithm UUID. You do not need to set this parameter when creating an algorithm. |
name | Yes | String | Algorithm name. The value must contain 1 to 64 characters consisting of only digits, letters, underscores (_), and hyphens (-). |
description | No | String | Algorithm description, which consists of 0 to 256 characters. The default value is NULL. |
workspace_id | No | String | Workspace where a specified algorithm is located. The default value is 0. |
ai_project | No | String | AI project to which a specified algorithm belongs. The default value is default-ai-project. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
code_dir | No | String | Algorithm code directory, for example, /usr/app/. This parameter must be used together with boot_file. |
boot_file | No | String | Code boot file of the algorithm, which needs to be stored in the code directory, for example, /usr/app/boot.py. This parameter must be used together with code_dir. |
command | No | String | Container startup command of a custom image algorithm. |
parameters | No | Array of Parameter objects | Running parameter of an algorithm. |
inputs | No | Array of inputs objects | Data input of an algorithm. |
outputs | No | Array of outputs objects | Data output of an algorithm. |
engine | No | engine object | Algorithm engine. |
parameters_customization | No | Boolean | Whether the algorithm allows hyperparameter customization during training job creation. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Parameter name. |
value | No | String | Parameter value. |
description | No | String | Parameter description. |
constraint | No | constraint object | Parameter constraint. |
i18n_description | No | i18n_description object | Internationalization description. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
type | No | String | Parameter type. |
editable | No | Boolean | Whether the parameter is editable. |
required | No | Boolean | Whether the parameter is mandatory. |
sensitive | No | Boolean | Whether the parameter is sensitive. |
valid_type | No | String | Valid type. |
valid_range | No | Array of strings | Valid range. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
language | No | String | Internationalization language. |
description | No | String | Description. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | Yes | String | Name of the data input channel. |
description | No | String | Description of the data input channel. |
remote_constraints | No | Array of remote_constraints objects | Data input constraint. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
data_type | No | String | Data input type, including the data storage location and dataset. |
attributes | No | Array of Map<String,String> objects | Attributes if a dataset is used as the data input. Options:
|
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | Yes | String | Name of the data output channel. |
description | No | String | Description of the data output channel. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
engine_id | No | String | Engine ID selected for an algorithm. |
engine_name | No | String | Engine version name selected for an algorithm. If engine_id is specified, leave this parameter blank. |
engine_version | No | String | Engine version name selected for an algorithm. If engine_id is specified, leave this parameter blank. |
image_url | No | String | Custom image URL selected by an algorithm. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
key | No | String | Resource constraints. Options:
|
values | No | Array of strings | Value of the resource constraint key. |
operator | No | String | Relationship between keys and values. Currently, only in is supported. For example: flavor_type in [CPU,GPU]. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
auto_search | No | auto_search object | Hyperparameter search policy. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
skip_search_params | No | String | Hyperparameter parameters that need to be skipped. |
reward_attrs | No | Array of reward_attrs objects | List of search metrics. |
search_params | No | Array of search_params objects | Search parameters. |
algo_configs | No | Array of algo_configs objects | Search algorithm configurations. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Metric name. |
mode | No | String | Search direction.
|
regex | No | String | Regular expression of a metric. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Hyperparameter name. |
param_type | No | String | Parameter type.
|
lower_bound | No | String | Lower bound of the hyperparameter. |
upper_bound | No | String | Upper bound of the hyperparameter. |
discrete_points_num | No | String | Number of discrete points of a continuous hyperparameter. |
discrete_values | No | String | List of discrete hyperparameter values. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
name | No | String | Name of the search algorithm. |
params | No | Array of AutoSearchAlgoConfigParameter objects | Search algorithm parameters. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
key | No | String | Parameter key. |
value | No | String | Parameter value. |
type | No | String | Parameter type. |
Response Parameters¶
Status code: 201
Parameter | Type | Description |
---|---|---|
metadata | metadata object | Algorithm metadata, which describes basic algorithm information. |
job_config | job_config object | Algorithm configuration, such as the boot file. |
resource_requirements | Array of resource_requirements objects | Algorithm resource constraint. You can disable this function by not setting this parameter. |
advanced_config | advanced_config object | Advanced algorithm configuration. Currently, autosearch is supported. |
Parameter | Type | Description |
---|---|---|
id | Integer | Algorithm UUID. You do not need to set this parameter when creating an algorithm. |
name | String | Algorithm name. The value must contain 1 to 64 characters consisting of only digits, letters, underscores (_), and hyphens (-). |
description | String | Algorithm description, which consists of 0 to 256 characters. The default value is NULL. |
workspace_id | String | Workspace where a specified algorithm is located. The default value is 0. |
ai_project | String | AI project to which a specified algorithm belongs. The default value is default-ai-project. |
user_name | String | Username. |
domain_id | String | Domain ID of a user. |
source | String | Algorithm source. |
api_version | String | Algorithm API version, which identifies the old and new ones. |
is_valid | String | Algorithm availability. |
state | String | Algorithm state. |
tags | Array of Map<String,String> objects | Algorithm tags. |
attr_list | Array of strings | Algorithm attribute list. |
version_num | Integer | Number of algorithm versions. The default value is 0. |
size | Integer | Algorithm size. |
create_time | Long | Timestamp when the algorithm is created. |
update_time | Long | Timestamp when the algorithm is updated. |
Parameter | Type | Description |
---|---|---|
code_dir | String | Algorithm code directory, for example, /usr/app/. This parameter must be used together with boot_file. |
boot_file | String | Code boot file of the algorithm, which must be stored in the code directory, for example, /usr/app/boot.py. This parameter must be used with code_dir. |
command | String | Container startup command of a custom image algorithm. |
parameters | Array of Parameter objects | Running parameter of an algorithm. |
inputs | Array of inputs objects | Data input of an algorithm. |
outputs | Array of outputs objects | Data output of an algorithm. |
engine | engine object | Algorithm engine. |
code_tree | Array of code_tree objects | Algorithm directory tree |
parameters_customization | Boolean | Whether the algorithm allows hyperparameter customization during training job creation. |
Parameter | Type | Description |
---|---|---|
name | String | Parameter name. |
value | String | Parameter value. |
description | String | Parameter description. |
constraint | constraint object | Parameter constraint. |
i18n_description | i18n_description object | Internationalization description. |
Parameter | Type | Description |
---|---|---|
type | String | Parameter type. |
editable | Boolean | Whether the parameter is editable. |
required | Boolean | Whether the parameter is mandatory. |
sensitive | Boolean | Whether the parameter is sensitive. |
valid_type | String | Valid type. |
valid_range | Array of strings | Valid range. |
Parameter | Type | Description |
---|---|---|
language | String | Internationalization language. |
description | String | Description. |
Parameter | Type | Description |
---|---|---|
name | String | Name of the data input channel. |
description | String | Description of the data input channel. |
remote_constraints | Array of remote_constraints objects | Data input constraint. |
Parameter | Type | Description |
---|---|---|
data_type | String | Data input type, including the data storage location and dataset. |
attributes | Array of Map<String,String> objects | Attributes if a dataset is used as the data input. Options:
|
Parameter | Type | Description |
---|---|---|
name | String | Name of the data output channel. |
description | String | Description of the data output channel. |
Parameter | Type | Description |
---|---|---|
engine_id | String | Engine ID selected for an algorithm. |
engine_name | String | Engine version name selected for an algorithm. If engine_id is specified, leave this parameter blank. |
engine_version | String | Engine version name selected for an algorithm. If engine_id is specified, leave this parameter blank. |
image_url | String | Custom image URL selected by an algorithm. |
Parameter | Type | Description |
---|---|---|
name | String | Name of the current directory in the algorithm directory tree. |
children | Object | Subfiles and subdirectories in the current directory of the algorithm directory tree. |
Parameter | Type | Description |
---|---|---|
key | String | Resource constraints. Options:
|
value | Array of strings | Value of the resource constraint key. |
operator | String | Relationship between keys and values. Currently, only in is supported. For example: flavor_type in [CPU,GPU]. |
Parameter | Type | Description |
---|---|---|
auto_search | auto_search object | Hyperparameter search policy. |
Parameter | Type | Description |
---|---|---|
skip_search_params | String | Hyperparameter parameters that need to be skipped. |
reward_attrs | Array of reward_attrs objects | List of search metrics. |
search_params | Array of search_params objects | Search parameters. |
algo_configs | Array of algo_configs objects | Search algorithm configurations. |
Parameter | Type | Description |
---|---|---|
name | String | Metric name. |
mode | String | Search direction.
|
regex | String | Regular expression of a metric. |
Parameter | Type | Description |
---|---|---|
name | String | Hyperparameter name. |
param_type | String | Parameter type.
|
lower_bound | String | Lower bound of the hyperparameter. |
upper_bound | String | Upper bound of the hyperparameter. |
discrete_points_num | String | Number of discrete points of a continuous hyperparameter. |
discrete_values | String | List of discrete hyperparameter values. |
Parameter | Type | Description |
---|---|---|
name | String | Name of the search algorithm. |
params | Array of AutoSearchAlgoConfigParameter objects | Search algorithm parameters. |
Parameter | Type | Description |
---|---|---|
key | String | Parameter key. |
value | String | Parameter value. |
type | String | Parameter type. |
Example Requests¶
The following shows how to create an algorithm whose name is TestModelArtsalgorithm and description is 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"
}
}
}
Example Responses¶
Status code: 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" : { }
}
Status Codes¶
Status Code | Description |
---|---|
201 | ok |
Error Codes¶
See Error Codes.