Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-14 GMT+08:00

Creación de un algoritmo

Función

Esta API se utiliza para crear un algoritmo.

URI

POST /v2/{project_id}/algorithms

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener más información, consulte Obtención de un ID de proyecto.

Parámetros de solicitud

Tabla 2 Parámetros del cuerpo 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.

Tabla 3 metadata

Parámetro

Obligatorio

Tipo

Descripción

id

No

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

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.

Tabla 4 job_config

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.

Tabla 5 Parámetro

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.

Tabla 6 constraint

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.

Tabla 7 i18n_description

Parámetro

Obligatorio

Tipo

Descripción

language

No

String

Internacionalización idioma.

description

No

String

Descripción.

Tabla 8 inputs

Parámetro

Obligatorio

Tipo

Descripción

name

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.

Tabla 9 remote_constraints

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:

  • data_format: Formato de datos
  • data_segmentation: Segmentación de datos
  • dataset_type: Tipo de etiquetado
Tabla 10 outputs

Parámetro

Obligatorio

Tipo

Descripción

name

String

Nombre del canal de salida de datos.

description

No

String

Descripción del canal de salida de datos.

Tabla 11 engine

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.

Tabla 12 resource_requirements

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].

Tabla 13 advanced_config

Parámetro

Obligatorio

Tipo

Descripción

auto_search

No

auto_search object

Política de búsqueda de hiperparámetros.

Tabla 15 reward_attrs

Parámetro

Obligatorio

Tipo

Descripción

name

No

String

Nombre de la métrica

mode

No

String

Dirección de búsqueda.

  • max: Un valor métrico mayor indica un mejor rendimiento.
  • min: Un valor métrico más pequeño indica un mejor rendimiento.

regex

No

String

Expresión regular de una métrica.

Tabla 16 search_params

Parámetro

Obligatorio

Tipo

Descripción

name

No

String

Nombre de hiperparámetro.

param_type

No

String

Tipo de parámetro.

  • continuous: El hiperparámetro es del tipo continuo.
  • discrete: El hiperparámetro es del tipo discreto.

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.

Tabla 17 algo_configs

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.

Tabla 18 AutoSearchAlgoConfigParameter

Parámetro

Obligatorio

Tipo

Descripción

key

No

String

Clave de parámetro.

value

No

String

Valor del parámetro.

type

No

String

Tipo de parámetro.

Parámetros de respuesta

Código de estado: 201

Tabla 19 Parámetros del cuerpo de respuesta

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.

Tabla 20 metadata

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.

Tabla 21 job_config

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.

Tabla 22 Parámetro

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.

Tabla 23 constraint

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.

Tabla 24 i18n_description

Parámetro

Tipo

Descripción

language

String

Internacionalización idioma.

description

String

Descripción.

Tabla 25 inputs

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.

Tabla 26 remote_constraints

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:

  • data_format: Formato de datos
  • data_segmentation: Segmentación de datos
  • dataset_type: Tipo de etiquetado
Tabla 27 outputs

Parámetro

Tipo

Descripción

name

String

Nombre del canal de salida de datos.

description

String

Descripción del canal de salida de datos.

Tabla 28 engine

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.

Tabla 29 code_tree

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.

Tabla 30 resource_requirements

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].

Tabla 31 advanced_config

Parámetro

Tipo

Descripción

auto_search

auto_search object

Política de búsqueda de hiperparámetros.

Tabla 33 reward_attrs

Parámetro

Tipo

Descripción

name

String

Nombre de la métrica

mode

String

Dirección de búsqueda.

  • max: Un valor métrico mayor indica un mejor rendimiento.
  • min: Un valor métrico más pequeño indica un mejor rendimiento.

regex

String

Expresión regular de una métrica.

Tabla 34 search_params

Parámetro

Tipo

Descripción

name

String

Nombre de hiperparámetro.

param_type

String

Tipo de parámetro.

  • continuous: El hiperparámetro es del tipo continuo.
  • discrete: El hiperparámetro es del tipo discreto.

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.

Tabla 35 algo_configs

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.

Tabla 36 AutoSearchAlgoConfigParameter

Parámetro

Tipo

Descripción

key

String

Clave de parámetro.

value

String

Valor del parámetro.

type

String

Tipo de parámetro.

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.