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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Especificaciones para editar un archivo de configuración de modelo

Actualización más reciente 2024-09-25 GMT+08:00

Un desarrollador de modelos necesita editar un archivo de configuración config.json al publicar un modelo. El archivo de configuración del modelo describe el uso del modelo, el marco de cómputo, la precisión, el paquete de dependencia del código de inferencia y la API del modelo.

Formato de archivo de configuración

El archivo de configuración está en formato JSON. Tabla 1 describe los parámetros.

Tabla 1 Parámetros

Parámetro

Obligatorio

Tipo de datos

Descripción

model_algorithm

String

Algoritmo del modelo, que es establecido por el desarrollador del modelo para ayudar a los usuarios del modelo a entender el uso del modelo. 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. Los algoritmos de modelos comunes incluyen image_classification (clasificación de imágenes), object_detection (detección de objetos) y predict_analysis (análisis de predicción).

model_type

String

Modelo de motor de IA, que indica el marco de cálculo utilizado por un modelo. Los motores comunes de IA e Image son compatibles.

runtime

No

String

Entorno de tiempo de ejecución del modelo. Python2.7 se usa por defecto. El valor de runtime depende del valor de model_type. Si model_type se establece en Image, no es necesario establecer runtime. Si model_type se establece en otro marco estándar, seleccione el motor y el entorno de tiempo de ejecución. Para obtener detalles sobre los entornos de ejecución soportados, véase Motores de IA compatibles para la inferencia de ModelArts.

Si el modelo debe ejecutarse en CPU o GPU especificadas, seleccione las CPU o GPU en función del sufijo de tiempo de ejecución. Si el tiempo de ejecución no contiene la información de la CPU o la GPU, compruebe la description del tiempo de ejecución en Motores de IA compatibles para Inferencia de ModelArts.

metrics

No

Object

Información de precisión del modelo, incluido el valor promedio, la tasa de recuperación, la precisión y la precisión. Para obtener más información sobre la estructura de objeto metrics, consulte Tabla 2.

El resultado se muestra en el área de precisión del modelo de la página de detalles de la aplicación de IA.

apis

No

api array

Formato de las solicitudes recibidas y devueltas por un modelo. El valor es dato de estructura.

Es la matriz de API de RESTful proporcionada por un modelo. Para obtener más información sobre la estructura de datos de la API, consulte Tabla 3. Para obtener más información sobre el ejemplo de código, véase Ejemplo de código de parámetros apis.

  • Si model_type se establece en Imagen, la aplicación de IA se crea con una imagen personalizada.
  • Cuando model_type no es Image, solo una API cuya ruta de solicitud es / puede declararse en apis porque el motor de IA preconfigurado expone solo una API de inferencia cuya ruta de solicitud es /.

dependencies

No

dependency array

Paquete del que depende el código de inferencia del modelo, que son datos de estructura.

Los desarrolladores de modelos deben proporcionar el nombre del paquete, el modo de instalación y las restricciones de versión. Solo se soporta el modo de instalación de pip. Tabla 6 describe la matriz de dependencias.

Si el paquete modelo no contiene el archivo customize_service.py, no es necesario establecer este parámetro. No se pueden instalar paquetes de dependencias para modelos de imágenes personalizados.

NOTA:

El parámetro dependencies admite múltiples matrices de estructura de dependencias en formato de lista y se aplica a escenarios en los que los paquetes de instalación tienen relaciones de dependencia. Los paquetes de la parte superior se instalan primero. El paquete de ruedas en las instalaciones se puede utilizar para la instalación. (El paquete de rueda debe almacenarse en el mismo directorio que el archivo de modelo). Para obtener más información, véase ¿Cómo edito los parámetros de dependencia del paquete de instalación en un archivo de configuración de modelo al importar un modelo?

health

No

health data structure

Configuración de una interfaz de mantenimiento de imagen. Este parámetro solo es obligatorio cuando model_type se establece en Image.

Si los servicios no se pueden interrumpir durante una actualización sucesiva, se debe proporcionar una API de comprobación de estado para que ModelArts invoque. Para obtener más información sobre la estructura de datos de mantenimiento, véase Tabla 8.

Tabla 2 Descripción del objeto metrics

Parámetro

Obligatorio

Tipo de datos

Descripción

f1

No

Number

Puntuación de F1. El valor se redondea a 17 decimales.

recall

No

Number

Tasa de rellamada. El valor se redondea a 17 decimales.

precision

No

Number

Precisión. El valor se redondea a 17 decimales.

accuracy

No

Number

Exactitud. El valor se redondea a 17 decimales.

Tabla 3 Matriz de api

Parámetro

Obligatorio

Tipo de datos

Descripción

url

No

String

Ruta de solicitud. El valor predeterminado es una barra diagonal (/). Para un modelo de imagen personalizado (model_type es Image), establezca este parámetro en la ruta de solicitud real expuesta en la imagen. Para un modelo de imagen no personalizado (model_type no es Image), la URL solo puede ser /.

method

No

String

Método de solicitud. El valor predeterminado es POST.

request

No

Object

Cuerpo de la solicitud. Para más detalles, véase Tabla 4.

response

No

Object

Cuerpo de respuesta. Para más detalles, véase Tabla 5.

Tabla 4 Descripción de request

Parámetro

Obligatorio

Tipo de datos

Descripción

Content-type

No para servicios en tiempo real

Sí para servicios por lotes

String

Los datos se envían en un formato de contenido especificado. El valor predeterminado es application/json.

Las opciones son las siguientes:

  • application/json: Se cargan los datos de JSON.
  • multipart/form-data: Se ha cargado un archivo.
NOTA:

Para los modelos de aprendizaje automático, solo se admite application/json.

data

No para servicios en tiempo real

Sí para servicios por lotes

String

El cuerpo de la solicitud se describe en el esquema JSON. Para obtener más información sobre la descripción de los parámetros, consulte la guía oficial.

Tabla 5 Descripción de response

Parámetro

Obligatorio

Tipo de datos

Descripción

Content-type

No para servicios en tiempo real

Sí para servicios por lotes

String

Los datos se envían en un formato de contenido especificado. El valor predeterminado es application/json.

NOTA:

Para los modelos de aprendizaje automático, solo se admite application/json.

data

No para servicios en tiempo real

Sí para servicios por lotes

String

El cuerpo de la respuesta se describe en el esquema JSON. Para obtener más información sobre la descripción de los parámetros, consulte la guía oficial.

Tabla 6 Matriz de dependency

Parámetro

Obligatorio

Tipo de datos

Descripción

installer

String

Método de instalación. Solo se admite pip.

packages

package array

Recolección de paquetes de dependencia. Para obtener más información sobre la matriz de estructura de paquetes, consulte Tabla 7.

Tabla 7 Matriz de package

Parámetro

Obligatorio

Tipo

Descripción

package_name

String

Nombre del paquete de dependencia. Los caracteres chinos y los caracteres especiales (&!'"<>=) no están permitidos.

package_version

No

String

Versión del paquete de dependencia. Si el paquete de dependencias no depende de las versiones del paquete, deje este campo en blanco. Los caracteres chinos y los caracteres especiales (&!'"<>=) no están permitidos.

restraint

No

String

Restricción de versión. Este parámetro es obligatorio solo cuando se configura package_version. Los valores posibles son EXACT, ATLEAST y ATMOST.

  • EXACT indica que se ha instalado una versión especificada.
  • ATLEAST indica que la versión del paquete de instalación no es anterior a la versión especificada.
  • ATMOST indica que la versión del paquete de instalación no es posterior a la versión especificada.
    NOTA:
    • Si hay requisitos específicos en la versión, utilice EXACT preferentemente. Si EXACT entra en conflicto con los paquetes de instalación del sistema, puede seleccionar ATLEAST.
    • Si no hay ningún requisito específico en la versión, conserve solo el parámetro package_name y deje restraint y package_version en blanco.
Tabla 8 Descripción de la estructura de datos health

Parámetro

Obligatorio

Tipo

Descripción

check_method

String

Método de comprobación de estado. El valor puede ser HTTP o EXEC.

  • HTTP: Utilice una solicitud de HTTP.
  • EXEC: Ejecute un comando.

command

No

String

Comando de control de estado. Este parámetro es obligatorio cuando check_method se establece en EXEC.

url

No

String

URL de solicitud de una API de comprobación de estado. Este parámetro es obligatorio cuando check_method se establece en HTTP.

protocol

No

String

Protocolo de solicitud de una API de comprobación de estado. El valor predeterminado es http. Este parámetro es obligatorio cuando check_method se establece en HTTP.

initial_delay_seconds

No

String

Retraso en la inicialización de la comprobación de estado.

timeout_seconds

No

String

Tiempo de espera de comprobación de estado.

period_seconds

String

Período de comprobación de estado, en segundos. Ingrese un número entero mayor que 0 y no mayor que 2147483647.

failure_threshold

String

Número máximo de errores de comprobación de estado. Ingrese un número entero mayor que 0 y no mayor que 2147483647.

Ejemplo de código de parámetros apis

[{
    "url": "/",
    "method": "post",
    "request": {
        "Content-type": "multipart/form-data",
        "data": {
            "type": "object",
            "properties": {
                "images": {
                    "type": "file"
                }
            }
        }
    },
    "response": {
        "Content-type": "applicaton/json",
        "data": {
            "type": "object",
            "properties": {
                "mnist_result": {
                    "type": "array",
                    "item": [
                        {
                            "type": "string"
                        }
                    ]
                }
            }
        }
    }
}]

Ejemplo del archivo de configuración del modelo de detección de objetos

El siguiente código utiliza el motor TensorFlow como ejemplo. Puede modificar el parámetro model_type en función del tipo de motor real.

  • Entrada de modelo

    Key: images

    Value: image files

  • Salida del modelo
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    {
        "detection_classes": [
            "face",
            "arm"
        ],
        "detection_boxes": [
            [
                33.6,
                42.6,
                104.5,
                203.4
            ],
            [
                103.1,
                92.8,
                765.6,
                945.7
            ]
        ],
        "detection_scores": [0.99, 0.73]
    }
    
  • Archivo de configuración
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    {
        "model_type": "TensorFlow",
        "model_algorithm": "object_detection",
        "metrics": {
            "f1": 0.345294,
            "accuracy": 0.462963,
            "precision": 0.338977,
            "recall": 0.351852
        },
        "apis": [{
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "images": {
                            "type": "file"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "application/json",
                "data": {
                    "type": "object",
                    "properties": {
                        "detection_classes": {
                            "type": "array",
                            "items": [{
                                "type": "string"
                            }]
                        },
                        "detection_boxes": {
                            "type": "array",
                            "items": [{
                                "type": "array",
                                "minItems": 4,
                                "maxItems": 4,
                                "items": [{
                                    "type": "number"
                                }]
                            }]
                        },
                        "detection_scores": {
                            "type": "array",
                            "items": [{
                                "type": "number"
                            }]
                        }
                    }
                }
            }
        }],
        "dependencies": [{
            "installer": "pip",
            "packages": [{
                    "restraint": "EXACT",
                    "package_version": "1.15.0",
                    "package_name": "numpy"
                },
                {
                    "restraint": "EXACT",
                    "package_version": "5.2.0",
                    "package_name": "Pillow"
                }
            ]
        }]
    }
    

Ejemplo del archivo de configuración del modelo de clasificación de imágenes

El siguiente código utiliza el motor TensorFlow como ejemplo. Puede modificar el parámetro model_type en función del tipo de motor real.

  • Entrada de modelo

    Clave: images

    Valor: image files

  • Salida del modelo
    1
    2
    3
    4
    5
    6
    7
    {
        "predicted_label": "flower",
        "scores": [
           ["rose", 0.99],
           ["begonia", 0.01]
        ]
    }
    
  • Archivo de configuración
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    {
        "model_type": "TensorFlow",
        "model_algorithm": "image_classification",
        "metrics": {
            "f1": 0.345294,
            "accuracy": 0.462963,
            "precision": 0.338977,
            "recall": 0.351852
        },
        "apis": [{
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "images": {
                            "type": "file"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "application/json",
                "data": {
                    "type": "object",
                    "properties": {
                        "predicted_label": {
                            "type": "string"
                        },
                        "scores": {
                            "type": "array",
                            "items": [{
                                "type": "array",
                                "minItems": 2,
                                "maxItems": 2,
                                "items": [
                                    {
                                        "type": "string"
                                    },
                                    {
                                        "type": "number"
                                    }
                                ]
                            }]
                        }
                    }
                }
            }
        }],
        "dependencies": [{
            "installer": "pip",
            "packages": [{
                    "restraint": "ATLEAST",
                    "package_version": "1.15.0",
                    "package_name": "numpy"
                },
                {
                    "restraint": "",
                    "package_version": "",
                    "package_name": "Pillow"
                }
            ]
        }]
    }
    

El código siguiente utiliza el motor de MindSpore como ejemplo. Puede modificar el parámetro model_type según el tipo de motor que utilice.

  • Entrada de modelo

    Key: images

    Value: image files

  • Salida del modelo
    1
    "[[-2.404526   -3.0476532  -1.9888215   0.45013925 -1.7018927   0.40332815\n  -7.1861157  11.290332   -1.5861531   5.7887416 ]]"
    
  • Archivo de configuración
    {
         "model_algorithm": "image_classification",
         "model_type": "MindSpore",
         "metrics": {
             "f1": 0.124555,
             "recall": 0.171875,
             "precision": 0.0023493892851938493,
             "accuracy": 0.00746268656716417
         },
         "apis": [{
                 "url": "/",
                 "method": "post",
                 "request": {
                     "Content-type": "multipart/form-data",
                     "data": {
                         "type": "object",
                         "properties": {
                             "images": {
                                 "type": "file"
                             }
                         }
                     }
                 },
                 "response": {
                     "Content-type": "applicaton/json",
                     "data": {
                         "type": "object",
                         "properties": {
                             "mnist_result": {
                                 "type": "array",
                                 "item": [{
                                     "type": "string"
                                 }]
                             }
                         }
                     }
                 }
             }
         ],
        "dependencies": []
     }

Ejemplo del archivo de configuración del modelo de análisis predictivo

El siguiente código utiliza el motor TensorFlow como ejemplo. Puede modificar el parámetro model_type en función del tipo de motor real.

  • Entrada de modelo
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    {
        "data": {
            "req_data": [
                {
                    "buying_price": "high",
                    "maint_price": "high",
                    "doors": "2",
                    "persons": "2",
                    "lug_boot": "small",
                    "safety": "low",
                    "acceptability": "acc"
                },
                {
                    "buying_price": "high",
                    "maint_price": "high",
                    "doors": "2",
                    "persons": "2",
                    "lug_boot": "small",
                    "safety": "low",
                    "acceptability": "acc"
                }
            ]
        }
    }
    
  • Salida del modelo
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    {
        "data": {
            "resp_data": [
                {
                    "predict_result": "unacc"
                },
                {
                    "predict_result": "unacc"
                }
            ]
        }
    }
    
  • Archivo de configuración
    NOTA:

    En el código, el parámetro data de las estructuras de solicitud y de respuesta se describe en el JSON Schema. El contenido de data y properties corresponde a la entrada y salida del modelo.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    {
        "model_type": "TensorFlow",
        "model_algorithm": "predict_analysis",
        "metrics": {
            "f1": 0.345294,
            "accuracy": 0.462963,
            "precision": 0.338977,
            "recall": 0.351852
        },
        "apis": [
            {
                "url": "/",
                "method": "post",
                "request": {
                    "Content-type": "application/json",
                    "data": {
                        "type": "object",
                        "properties": {
                            "data": {
                                "type": "object",
                                "properties": {
                                    "req_data": {
                                        "items": [
                                            {
                                                "type": "object",
                                                "properties": {}
                                            }
                                        ],
                                        "type": "array"
                                    }
                                }
                            }
                        }
                    }
                },
                "response": {
                    "Content-type": "application/json",
                    "data": {
                        "type": "object",
                        "properties": {
                            "data": {
                                "type": "object",
                                "properties": {
                                    "resp_data": {
                                        "type": "array",
                                        "items": [
                                            {
                                                "type": "object",
                                                "properties": {}
                                            }
                                        ]
                                    }
                                }
                           }
                        }
                    }
                }
            }
        ],
        "dependencies": [
            {
                "installer": "pip",
                "packages": [
                    {
                        "restraint": "EXACT",
                        "package_version": "1.15.0",
                        "package_name": "numpy"
                    },
                    {
                        "restraint": "EXACT",
                        "package_version": "5.2.0",
                        "package_name": "Pillow"
                    }
                ]
            }
        ]
    }
    

Ejemplo del archivo de configuración del modelo de imagen personalizado

Las entradas y salidas del modelo son similares a las de Ejemplo del archivo de configuración del modelo de detección de objetos.

  • Si la entrada es una imagen, el ejemplo de solicitud es el siguiente.

    En el ejemplo, se recibe una solicitud de predicción de modelo que contiene el parámetro images con el tipo de parámetro de file. En este ejemplo, el botón de carga de archivos se muestra en la página de inferencia y la inferencia se realiza en formato de archivo.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    {
        "Content-type": "multipart/form-data",
        "data": {
            "type": "object",
            "properties": {
                "images": {
                    "type": "file"
                }
            }
        }
    }
    
  • Si la entrada es datos JSON, el ejemplo de solicitud es el siguiente.

    En este ejemplo, se recibe el cuerpo de solicitud JSON de predicción de modelo. En la solicitud, solo hay una solicitud de predicción que contiene el parámetro input con el tipo de parámetro de string. En la página de inferencia, se muestra un cuadro de texto para que introduzca la solicitud de predicción.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    {
        "Content-type": "application/json",
        "data": {
            "type": "object",
            "properties": {
                "input": {
                    "type": "string"
                }
            }
        }
    }
    

Un ejemplo de solicitud completo es el siguiente:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
    "model_algorithm": "image_classification",
    "model_type": "Image",
    "metrics": {
        "f1": 0.345294,
        "accuracy": 0.462963,
        "precision": 0.338977,
        "recall": 0.351852
    },
    "apis": [{
        "url": "/",
        "method": "post",
        "request": {
            "Content-type": "multipart/form-data",
            "data": {
                "type": "object",
                "properties": {
                    "images": {
                        "type": "file"
                    }
                }
            }
        },
        "response": {
            "Content-type": "application/json",
            "data": {
                "type": "object",
                "required": [
                    "predicted_label",
                    "scores"
                ],
                "properties": {
                    "predicted_label": {
                        "type": "string"
                    },
                    "scores": {
                        "type": "array",
                        "items": [{
                            "type": "array",
                            "minItems": 2,
                            "maxItems": 2,
                            "items": [{
                                    "type": "string"
                                },
                                {
                                    "type": "number"
                                }
                            ]
                        }]
                    }
                }
            }
        }
    }]
}

Ejemplo del archivo de configuración del modelo de aprendizaje automático

El siguiente ejemplo utiliza XGBoost:

  • Entrada de modelo
{
    "req_data": [
        {
            "sepal_length": 5,
            "sepal_width": 3.3,
            "petal_length": 1.4,
            "petal_width": 0.2
        },
        {
            "sepal_length": 5,
            "sepal_width": 2,
            "petal_length": 3.5,
            "petal_width": 1
        },
        {
            "sepal_length": 6,
            "sepal_width": 2.2,
            "petal_length": 5,
            "petal_width": 1.5
        }
    ]
}
  • Salida del modelo
{
    "resp_data": [
        {
            "predict_result": "Iris-setosa"
        },
        {
            "predict_result": "Iris-versicolor"
        }
    ]
}
  • Archivo de configuración
{
    "model_type": "XGBoost",
    "model_algorithm": "xgboost_iris_test",
    "runtime": "python2.7",
    "metrics": {
        "f1": 0.345294,
        "accuracy": 0.462963,
        "precision": 0.338977,
        "recall": 0.351852
    },
    "apis": [
        {
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "application/json",
                "data": {
                    "type": "object",
                    "properties": {
                        "req_data": {
                            "items": [
                                {
                                    "type": "object",
                                    "properties": {}
                                }
                            ],
                            "type": "array"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "applicaton/json",
                "data": {
                    "type": "object",
                    "properties": {
                        "resp_data": {
                            "type": "array",
                            "items": [
                                {
                                    "type": "object",
                                    "properties": {
                                        "predict_result": {}
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        }
    ]
}

Ejemplo de un archivo de configuración de modelo que utiliza un paquete de dependencia personalizado

En el siguiente ejemplo se define el entorno de dependencia NumPy 1.16.4.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
{
    "model_algorithm": "image_classification",
    "model_type": "TensorFlow",
    "runtime": "python3.6",
    "apis": [
        {
            "url": "/",
            "method": "post",
            "request": {
                "Content-type": "multipart/form-data",
                "data": {
                    "type": "object",
                    "properties": {
                        "images": {
                            "type": "file"
                        }
                    }
                }
            },
            "response": {
                "Content-type": "applicaton/json",
                "data": {
                    "type": "object",
                    "properties": {
                        "mnist_result": {
                            "type": "array",
                            "item": [
                                {
                                    "type": "string"
                                }
                            ]
                        }
                    }
                }
            }
        }
    ],
    "metrics": {
        "f1": 0.124555,
        "recall": 0.171875,
        "precision": 0.00234938928519385,
        "accuracy": 0.00746268656716417
    },
    "dependencies": [
        {
            "installer": "pip",
            "packages": [
                {
                    "restraint": "EXACT",
                    "package_version": "1.16.4",
                    "package_name": "numpy"
                }
            ]
        }
    ]
}

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios