92 KiB
Creating an Algorithm
Function
This API is used to create an algorithm.
URI
POST /v2/{project_id}/algorithms
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID. For details, see Obtaining a Project ID. |
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. The value must contain 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 constraint. The options are as follows:- flavor_type: flavor type. The value can be CPU or GPU.- device_distributed_mode: whether to support multi-device training. The value can be multiple (supported) or singular (not supported).-host_distributed_mode: whether to support distributed training. The value can be multiple (supported) or singular (not supported). |
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. |
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. The value must contain 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 needs to be stored in the code directory, for example, /usr/app/boot.py. This parameter must be used together 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 constraint. Options:flavor_type: flavor type. The value can be CPU, Ascend, or GPU.device_distributed_mode: whether to support multi-device training. The value can be multiple (supported) or singular (not supported).host_distributed_mode: whether to support distributed training. The value can be multiple (supported) or singular (not supported). |
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. |
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", "tags" : [ ] }, "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" : [ ], "attr_list" : null, "version_num" : 0, "update_time" : 0 }, "share_info" : { }, "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", "v1_compatible" : true, "run_user" : "", "image_info" : { "cpu_image_url" : "modelarts-job-dev-image/pytorch-cpu-cp36:1.3.0", "gpu_image_url" : "modelarts-job-dev-image/pytorch-gpu-cuda10-cp36:1.3.0", "image_version" : "3.1.0" } }, "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.