Creación de un algoritmo
Función
Esta API se utiliza para crear un algoritmo.
URI
POST /v2/{project_id}/algorithms
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| project_id | Sí | String | ID del proyecto. Para obtener más información, consulte Obtención de un ID de proyecto. |
Parámetros de solicitud
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| metadata | No | metadata object | Metadatos de algoritmo, que describe la información básica del algoritmo. |
| job_config | No | job_config object | Configuración del algoritmo, como el archivo de arranque. |
| resource_requirements | No | Array of resource_requirements objects | Restricciones de recursos del algoritmo. Este parámetro se puede dejar en blanco para deshabilitar esta función. |
| advanced_config | No | advanced_config object | Configuración avanzada del algoritmo. Actualmente, se admite autosearch. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| id | No | Integer | UUID de algoritmo. No es necesario establecer este parámetro al crear un algoritmo. |
| name | Sí | String | Nombre del algoritmo. El valor debe contener de 1 a 64 caracteres que consisten solo en dígitos, letras, guiones bajos (_) y guiones (-). |
| description | No | String | Descripción del algoritmo. El valor debe contener de 0 a 256 caracteres. El valor predeterminado es NULL. |
| workspace_id | No | String | Espacio de trabajo donde se encuentra un algoritmo especificado. El valor predeterminado es 0. |
| ai_project | No | String | Proyecto de IA al que pertenece un algoritmo especificado. El valor predeterminado es default-ai-project. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| code_dir | No | String | Directorio de código de algoritmo, por ejemplo, /usr/app/. Este parámetro debe usarse junto con boot_file. |
| boot_file | No | String | Archivo de arranque de código del algoritmo, que debe almacenarse en el directorio de código, por ejemplo, /usr/app/boot.py. Este parámetro debe usarse junto con code_dir. |
| command | No | String | Comando de inicio del contenedor de un algoritmo de imagen personalizado. |
| parameters | No | Array of Parameter objects | Parámetro de ejecución de un algoritmo. |
| inputs | No | Array of inputs objects | Entrada de datos de un algoritmo. |
| outputs | No | Array of outputs objects | Salida de datos de un algoritmo. |
| engine | No | engine object | Motor de algoritmo. |
| parameters_customization | No | Boolean | Si el algoritmo permite la personalización de hiperparámetros durante la creación de trabajos de formación. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | No | String | Nombre del parámetro. |
| value | No | String | Valor del parámetro. |
| description | No | String | Descripción del parámetro. |
| constraint | No | constraint object | Restricción de parámetro. |
| i18n_description | No | i18n_description object | Descripción de la internacionalización. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| type | No | String | Tipo de parámetro. |
| editable | No | Boolean | Si el parámetro es editable. |
| required | No | Boolean | Si el parámetro es obligatorio. |
| sensitive | No | Boolean | Si el parámetro es sensible. |
| valid_type | No | String | Tipo válido. |
| valid_range | No | Array of strings | Rango válido. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| language | No | String | Internacionalización idioma. |
| description | No | String | Descripción. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | Sí | String | Nombre del canal de entrada de datos. |
| description | No | String | Descripción del canal de entrada de datos. |
| remote_constraints | No | Array of remote_constraints objects | Restricción de entrada de datos. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| data_type | No | String | Tipo de entrada de datos, incluida la ubicación de almacenamiento de datos y el conjunto de datos. |
| attributes | No | Array of Map<String,String> objects | Atributos si se utiliza un conjunto de datos como entrada de datos. Opciones:
|
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | Sí | String | Nombre del canal de salida de datos. |
| description | No | String | Descripción del canal de salida de datos. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| engine_id | No | String | ID del motor seleccionado para un algoritmo. |
| engine_name | No | String | Nombre de la versión del motor seleccionado para un algoritmo. Si se especifica engine_id, deje este parámetro en blanco. |
| engine_version | No | String | Nombre de la versión del motor seleccionado para un algoritmo. Si se especifica engine_id, deje este parámetro en blanco. |
| image_url | No | String | URL de imagen personalizada seleccionada por un algoritmo. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| key | No | String | Restricciones de recursos. Opciones:- flavor_type: tipo de variante, que puede ser CPU, GPU, o Ascend.- device_distributed_mode: si se admite la formación multi-tarjeta. El valor puede ser multiple (soportado) o singular (no soportado).- host_distributed_mode: si se admite la formación distribuida. El valor puede ser multiple (soportado) o singular (no soportado). |
| values | No | Array of strings | Valor de la clave de restricción de recurso. |
| operator | No | String | Relación entre claves y valores. Actualmente, solo in es compatible. Por ejemplo: flavor_type en [CPU,GPU]. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| auto_search | No | auto_search object | Política de búsqueda de hiperparámetros. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| skip_search_params | No | String | Parámetros hiperparamétricos que deben omitirse. |
| reward_attrs | No | Array of reward_attrs objects | Lista de métricas de búsqueda. |
| search_params | No | Array of search_params objects | Parámetros de búsqueda. |
| algo_configs | No | Array of algo_configs objects | Configuraciones de algoritmos de búsqueda. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | No | String | Nombre de la métrica |
| mode | No | String | Dirección de búsqueda.
|
| regex | No | String | Expresión regular de una métrica. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | No | String | Nombre de hiperparámetro. |
| param_type | No | String | Tipo de parámetro.
|
| lower_bound | No | String | Límite inferior del hiperparámetro. |
| upper_bound | No | String | Límite superior del hiperparámetro. |
| discrete_points_num | No | String | Número de puntos discretos de un hiperparámetro continuo. |
| discrete_values | No | String | Lista de valores de hiperparámetro discretos. |
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| name | No | String | Nombre del algoritmo de búsqueda. |
| params | No | Array of AutoSearchAlgoConfigParameter objects | Parámetros del algoritmo de búsqueda. |
Parámetros de respuesta
Código de estado: 201
| Parámetro | Tipo | Descripción |
|---|---|---|
| metadata | metadata object | Metadatos de algoritmo, que describe la información básica del algoritmo. |
| job_config | job_config object | Configuración del algoritmo, como el archivo de arranque. |
| resource_requirements | Array of resource_requirements objects | Restricción de recursos de algoritmo. Puede deshabilitar esta función si no establece este parámetro. |
| advanced_config | advanced_config object | Configuración avanzada del algoritmo. Actualmente, se admite autosearch. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| id | Integer | UUID de algoritmo. No es necesario establecer este parámetro al crear un algoritmo. |
| name | String | Nombre del algoritmo. El valor debe contener de 1 a 64 caracteres que consisten solo en dígitos, letras, guiones bajos (_) y guiones (-). |
| description | String | Descripción del algoritmo. El valor debe contener de 0 a 256 caracteres. El valor predeterminado es NULL. |
| workspace_id | String | Espacio de trabajo donde se encuentra un algoritmo especificado. El valor predeterminado es 0. |
| ai_project | String | Proyecto de IA al que pertenece un algoritmo especificado. El valor predeterminado es default-ai-project. |
| user_name | String | Nombre de usuario. |
| domain_id | String | ID de dominio de un usuario. |
| source | String | Fuente del algoritmo. |
| api_version | String | Versión de la API de algoritmos, que identifica las antiguas y las nuevas. |
| is_valid | String | Disponibilidad de algoritmos. |
| state | String | Estado del algoritmo. |
| tags | Array of Map<String,String> objects | Etiquetas de algoritmo. |
| attr_list | Array of strings | Lista de atributos de algoritmo. |
| version_num | Integer | Número de versiones de algoritmos. El valor predeterminado es 0. |
| size | Integer | Tamaño del algoritmo. |
| create_time | Long | Marca de tiempo cuando se crea el algoritmo. |
| update_time | Long | Marca de tiempo cuando se actualiza el algoritmo. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| code_dir | String | Directorio de código de algoritmo, por ejemplo, /usr/app/. Este parámetro debe usarse junto con boot_file. |
| boot_file | String | Archivo de arranque de código del algoritmo, que debe almacenarse en el directorio de código, por ejemplo, /usr/app/boot.py. Este parámetro debe usarse con code_dir. |
| command | String | Comando de inicio del contenedor de un algoritmo de imagen personalizado. |
| parameters | Array of Parameter objects | Parámetro de ejecución de un algoritmo. |
| inputs | Array of inputs objects | Entrada de datos de un algoritmo. |
| outputs | Array of outputs objects | Salida de datos de un algoritmo. |
| engine | engine object | Motor de algoritmo. |
| code_tree | Array of code_tree objects | Árbol de directorios de algoritmos. |
| parameters_customization | Boolean | Si el algoritmo permite la personalización de hiperparámetros durante la creación de trabajos de formación. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre del parámetro. |
| value | String | Valor del parámetro. |
| description | String | Descripción del parámetro. |
| constraint | constraint object | Restricción de parámetro. |
| i18n_description | i18n_description object | Descripción de la internacionalización. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| type | String | Tipo de parámetro. |
| editable | Boolean | Si el parámetro es editable. |
| required | Boolean | Si el parámetro es obligatorio. |
| sensitive | Boolean | Si el parámetro es sensible. |
| valid_type | String | Tipo válido. |
| valid_range | Array of strings | Rango válido. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| language | String | Internacionalización idioma. |
| description | String | Descripción. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre del canal de entrada de datos. |
| description | String | Descripción del canal de entrada de datos. |
| remote_constraints | Array of remote_constraints objects | Restricción de entrada de datos. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| data_type | String | Tipo de entrada de datos, incluida la ubicación de almacenamiento de datos y el conjunto de datos. |
| attributes | Array of Map<String,String> objects | Atributos si se utiliza un conjunto de datos como entrada de datos. Opciones:
|
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre del canal de salida de datos. |
| description | String | Descripción del canal de salida de datos. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| engine_id | String | ID del motor seleccionado para un algoritmo. |
| engine_name | String | Nombre de la versión del motor seleccionado para un algoritmo. Si se especifica engine_id, deje este parámetro en blanco. |
| engine_version | String | Nombre de la versión del motor seleccionado para un algoritmo. Si se especifica engine_id, deje este parámetro en blanco. |
| image_url | String | URL de imagen personalizada seleccionada por un algoritmo. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre del directorio actual en el árbol de directorios del algoritmo. |
| children | Object | Subarchivos y subdirectorios en el directorio actual del árbol de directorios del algoritmo. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| key | String | Restricción de recurso. Opciones:flavor_type: tipo de variante. El valor puede ser CPU, Ascend o GPU. device_distributed_mode: si se admite el entrenamiento multidispositivo. El valor puede ser multiple (soportado) o singular (no soportado). host_distributed_mode: si se admite la formación distribuida. El valor puede ser multiple (soportado) o singular (no soportado). |
| value | Array of strings | Valor de la clave de restricción de recurso. |
| operator | String | Relación entre claves y valores. Actualmente, solo in es compatible. Por ejemplo: flavor_type en [CPU,GPU]. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| auto_search | auto_search object | Política de búsqueda de hiperparámetros. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| skip_search_params | String | Parámetros hiperparamétricos que deben omitirse. |
| reward_attrs | Array of reward_attrs objects | Lista de métricas de búsqueda. |
| search_params | Array of search_params objects | Parámetros de búsqueda. |
| algo_configs | Array of algo_configs objects | Configuraciones de algoritmos de búsqueda. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre de la métrica |
| mode | String | Dirección de búsqueda.
|
| regex | String | Expresión regular de una métrica. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre de hiperparámetro. |
| param_type | String | Tipo de parámetro.
|
| lower_bound | String | Límite inferior del hiperparámetro. |
| upper_bound | String | Límite superior del hiperparámetro. |
| discrete_points_num | String | Número de puntos discretos de un hiperparámetro continuo. |
| discrete_values | String | Lista de valores de hiperparámetro discretos. |
| Parámetro | Tipo | Descripción |
|---|---|---|
| name | String | Nombre del algoritmo de búsqueda. |
| params | Array of AutoSearchAlgoConfigParameter objects | Parámetros del algoritmo de búsqueda. |
Example Requests
A continuación se muestra cómo crear un algoritmo cuyo nombre es TestModelArtsalgorithm y la descripción es 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"
}
}
} Ejemplo de las respuestas
Código de estado: 201
Aceptar
{
"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 | Descripción |
|---|---|
| 201 | Aceptar |
Códigos de error
Consulte Códigos de error.