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 2024-06-25 GMT+08:00

Importación de un modelo

Función

Puedes usar la API para importar un modelo.

Asegúrese de que el código de ejecución y el modelo se han cargado en OBS. De forma predeterminada, los modelos generados por un trabajo de entrenamiento se almacenan en OBS.

URI

POST /v1/{project_id}/models

Tabla 1 describe los parámetros requeridos.
Tabla 1 Parámetros

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener más información sobre cómo obtener un ID de proyecto, consulte Obtención de un ID y un nombre de proyecto.

Cuerpo de la solicitud

Tabla 2 describe los parámetros de solicitud.
Tabla 2 Parámetros

Parámetro

Obligatorio

Tipo

Descripción

model_name

String

Nombre del modelo. Introduzca de 1 a 64 caracteres. Solo se permiten letras, dígitos, guiones medios (-) y guiones bajos (_).

model_version

String

Versión del modelo en el formato de Digit.Digit.Digit. El rango de valores de los dígitos es [1, 99]. Tenga en cuenta que ninguna parte del número de versión puede comenzar con 0. Por ejemplo, 01.01.01 no está permitido.

source_location

String

Ruta OBS donde se encuentra el modelo o la ubicación de la imagen de SWR

source_job_id

No

String

ID del trabajo de entrenamiento de origen. Si el modelo se genera a partir de un trabajo de entrenamiento, introduzca este parámetro para el seguimiento de origen. Si el modelo se importa desde un metamodelo de terceros, deje este parámetro en blanco. De forma predeterminada, este parámetro se deja en blanco.

source_job_version

No

String

Versión del trabajo de entrenamiento de origen. Si el modelo se genera a partir de un trabajo de entrenamiento, introduzca este parámetro para el seguimiento de origen. Si el modelo se importa desde un metamodelo de terceros, deje este parámetro en blanco. De forma predeterminada, este parámetro se deja en blanco.

source_type

No

String

Tipo de origen del modelo. El valor solo puede ser auto, lo que indica modelos ExeML (la descarga del modelo no es compatible).If a model is deployed through a training job, this parameter is left blank by default.

model_type

String

Tipo de modelo. El valor puede ser TensorFlow, MXNet, Caffe, Spark_MLlib, Scikit_Learn, XGBoost, Image, PyTorch, o Template, que se lee desde el archivo de configuración.

runtime

No

String

Entorno de tiempo de ejecución del modelo. Las opciones de runtime varían dependiendo del valor especificado para model_type.

description

No

String

Observaciones de modelo. El valor contiene un máximo de 100 caracteres y no puede contener los siguientes caracteres especiales ni más: &!'\<>=

model_algorithm

No

String

Algoritmo de modelo. Si el algoritmo se lee desde el archivo de configuración, este parámetro se puede dejar en blanco. Por ejemplo, el valor puede ser predict_analysis, object_detection o image_classification. El valor debe comenzar con una letra y no contener más de 36 caracteres. Los caracteres chinos y los caracteres especiales (&!'\"<>=) no están permitidos.

execution_code

No

String

Ruta OBS para almacenar el código de ejecución. De forma predeterminada, este parámetro se deja en blanco. El nombre del archivo de código de ejecución se fija en customize_service.py. El archivo de código de inferencia debe almacenarse en el directorio de model. Si este parámetro se deja en blanco, el sistema puede identificar automáticamente el código de inferencia en el directorio del model.

input_params

No

params array

Recopilación de parámetros de entrada de un modelo. De forma predeterminada, este parámetro se deja en blanco. Para más detalles, consulte Tabla 3. Si la colección de parámetros de entrada se lee de apis en el archivo de configuración, solo necesita proporcionar el campo initial_config y no necesita establecer input_params. input_params es opcional cuando existe el campo initial_config.

output_params

No

Matriz params

Recopilación de parámetros de salida de un modelo. De forma predeterminada, este parámetro se deja en blanco. Para más detalles, consulte Tabla 3. Si la colección de parámetros de salida se lee de apis en el archivo de configuración, solo tiene que proporcionar el campo initial_config y no necesita establecer output_params.

dependencies

No

dependency array

Paquete requerido para el código y el modelo de inferencia. De forma predeterminada, este parámetro se deja en blanco. Si el paquete se lee en el archivo de configuración, este parámetro se puede dejar en blanco. Tabla 4 muestra la estructura de dependencias.

model_metrics

No

String

Precisión del modelo, que se lee desde el archivo de configuración

apis

No

Matriz apis

Todos los parámetros de entrada y salida apis del modelo. Si los parámetros se leen del archivo de configuración, este parámetro se puede dejar en blanco. Para más detalles, consulte Tabla 10.

initial_config

No

String

Cadena de caracteres convertida desde el archivo de configuración del modelo final. Se recomienda utilizar el archivo initial_config para proporcionar información sobre los campos como apis, dependencies, input_params, y output_params.

workspace_id

No

String

ID del espacio de trabajo al que pertenece un servicio. El valor predeterminado es 0, que indica el espacio de trabajo predeterminado.

model_docs

No

doc array

Lista de documentos de descripción del modelo. Se admite un máximo de tres documentos. Para más detalles, consulte Tabla 7.

install_type

No

String array

Tipo de implementación. Solo se admiten letras minúsculas. El valor puede ser real-time, o batch. Valor predeterminado: [real-time, batch]

template

No

Template object

Elementos de configuración de plantilla. Este parámetro es obligatorio cuando model_type se establece en Template. Para más detalles, consulte Tabla 8.

Tabla 3 Parámetros params

Parámetro

Obligatorio

Tipo

Descripción

url

String

URL de la API

method

String

Método de solicitud. Los valores posibles son post y get.

protocol

String

Solicitud de protocolo

param_name

String

Nombre del parámetro. Se recomienda que el nombre del parámetro contenga un máximo de 64 caracteres.

param_type

String

Tipo de parámetro. El valor puede ser int, string, float, timestamp, date, o file.

min

No

Number

Este parámetro es opcional cuando param_type se establece en int o float. De forma predeterminada, este parámetro se deja en blanco.

max

No

Number

Este parámetro es opcional cuando param_type se establece en int o float. De forma predeterminada, este parámetro se deja en blanco.

param_desc

No

String

Descripción del parámetro. Se recomienda que la descripción del parámetro contenga un máximo de 100 caracteres. De forma predeterminada, este parámetro se deja en blanco.

Tabla 4 Parámetros dependency

Parámetro

Obligatorio

Tipo

Descripción

installer

String

Modo de instalación. Solo se admite pip.

packages

package array

Colección de paquetes de dependencias. Para más detalles, consulte Tabla 5.

Tabla 5 Parámetros package

Parámetro

Obligatorio

Tipo

Descripción

package_name

String

Nombre de un paquete de dependencias. Asegúrese de que el nombre del paquete es correcto y existe. Los caracteres chinos y los caracteres especiales (&!'"<>=) no están permitidos.

package_version

No

String

Versión de un paquete de dependencias. Si este parámetro se deja en blanco, la última versión se instala de forma predeterminada. Los caracteres chinos y los caracteres especiales (&!'"<>=) no están permitidos.

restraint

No

String

Restricción de versión. El valor puede ser EXACT, ATLEAST, o ATMOST. Este parámetro es obligatorio solo cuando existe package_version.

Tabla 6 Parámetros metric

Parámetro

Obligatorio

Tipo

Descripción

f1

No

Double

Puntuación de F1

recall

No

Double

Revocar

precision

No

Double

Precisión

accuracy

No

Double

Precisión

Tabla 7 Parámetros doc

Parámetro

Obligatorio

Tipo

Descripción

doc_name

String

Nombre del documento, que debe comenzar con una letra. Introduzca de 1 a 48 caracteres. Solo se permiten letras, dígitos, guiones medios (-) y guiones bajos (_).

doc_url

String

Enlace HTTP(S) del documento

Tabla 8 Parámetros Template

Parámetro

Obligatorio

Tipo

Descripción

infer_format

No

String

Modo de entrada y salida. Cuando se utiliza este parámetro, el modo de entrada y salida incorporado en la plantilla no tiene efecto.

template_id

String

ID de la plantilla utilizada. La plantilla tiene un modo de entrada y salida incorporado.

template_inputs

Array of TemplateInputs objects

Configuración de entrada de plantilla, especificando la ruta de origen para configurar un modelo. Para más detalles, consulte Tabla 9.

Tabla 9 Parámetros template_inputs

Parámetro

Obligatorio

Tipo

Descripción

input

String

Ruta de entrada de plantilla, que puede ser una ruta de archivo OBS o una ruta de directorio OBS. Cuando se utiliza una plantilla con varios elementos de entrada para crear un plantilla, si las rutas de destino input_properties especificadas en la plantilla son las mismas, el directorio OBS o el nombre de archivo OBS introducido aquí deben ser únicos para evitar que los archivos se sobrescriban.

input_id

String

ID de elemento de entrada, que se obtiene de los detalles de la plantilla.

Tabla 10 Parámetros apis

Parámetro

Obligatorio

Tipo

Descripción

input_params

No

Object

Parámetros de entrada en apis, descritos en formato de esquema JSON. Para más detalles, consulte Tabla 11.

method

No

String

Método de solicitud. Las opciones son POST y GET.

output_params

No

Object

Parámetros de salida en apis, descritos en formato de esquema JSON. Para más detalles, consulte Tabla 12.

protocol

No

String

Solicite el protocolo.

url

No

String

URL de solicitud de inferencia.

Tabla 11 Parámetros InputParams

Parámetro

Obligatorio

Tipo

Descripción

properties

No

Map<String,Object>

Propiedades de un elemento de objeto en el esquema JSON. Puede establecer parámetros, incluidos el nombre y el tipo de parámetro, en properties.

type

No

String

Escriba el esquema JSON, que puede ser object.

Tabla 12 Parámetros OutputParams

Parámetro

Obligatorio

Tipo

Descripción

properties

No

Map<String,Object>

Propiedades de un elemento de objeto en el esquema JSON. Puede establecer parámetros, incluidos el nombre y el tipo de parámetro, en properties.

type

No

String

Escriba el esquema JSON, que puede ser object.

Cuerpo de respuesta

Tabla 13 describe los parámetros de respuesta.
Tabla 13 Parámetros

Parámetro

Tipo

Descripción

model_id

String

ID del modelo

Muestras

A continuación se muestra cómo importar un modelo cuyo nombre es mnist, versión 1.0.0 y tipo TensorFlow. El archivo de modelo proviene de un bucket OBS.

  • Modelo de solicitud
    POST    https://endpoint/v1/{project_id}/models
    {
    "model_name": "mnist",
    "model_version": "1.0.0",
    "source_location": "https://models.obs.ap-southeast-1.myhuaweicloud.com/mnist",
    "source_job_id": "55",
    "source_job_version": "V100",
    "model_type": "TensorFlow",
    "runtime": "python2.7",
    "description": "mnist model",
    "execution_code": "https://testmodel.obs.ap-southeast-1.myhuaweicloud.com/customize_service.py",
    "input_params": [
    {
      "url": "/v1/xxx/image",
      "protocol": "http",
      "method": "post",
      "param_name": "image_url",
      "param_type": "string",
      "min": 0,
      "max": 9,
      "param_desc": "http://test/test.jpeg"
    }
    ],
    "output_params": [
    {
      "url": "/v1/xxx/image",
      "protocol": "http",
      "method": "post",
      "param_name": "face_location",
      "param_type": "box",
      "param_desc": "face_location param value description"
    }
    ],
    "dependencies": [
    {
      "installer": "pip",
      "packages": [
        {
          "package_name": "numpy",
          "package_version": "1.5.0",
          "restraint": "ATLEAST"
        }
      ]
    }
    ],
    "model_algorithm": "object_detection",
    "model_metrics":"{\"f1\":0.52381,\"recall\":0.666667,\"precision\":0.466667,\"accuracy\":0.625}",
    "apis": [
    {
      "url": "/v1/xxx/image",
      "protocol": "http",
      "method": "post",
      "input_params": {
        "type": "object",
        "properties": {
          "image_url": {
            "type": "string"
          }
        }
      },
      "output_params": {
        "type": "object",
        "properties": {
          "face_location": {
            "type": "box"
          }
        }
      }
    }
    ],
    }
  • Modelo de respuesta
    {
      "model_id": "10eb0091-887f-4839-9929-cbc884f1e20e"
    }

Código de estado

Para obtener más información sobre el código de estado, consulte Tabla 1.