Esquema YAML de implementación en línea administrada de la CLI (v2)

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

El esquema JSON de origen se puede encontrar en https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.

Nota

La sintaxis de YAML que se detalla en este documento se basa en el esquema JSON de la versión más reciente de la extensión ML de la CLI v2. Se garantiza que esta sintaxis solo funciona con la versión más reciente de la extensión ML de la CLI v2. Dispone de los esquemas de las versiones de anteriores de la extensión en https://azuremlschemasprod.azureedge.net/.

Sintaxis de YAML

Clave Tipo Descripción Valores permitidos Valor predeterminado
$schema string Esquema de YAML. Si usa la extensión VS Code de Azure Machine Learning para crear el archivo YAML, la inclusión de $schema en la parte superior del archivo le permite invocar las finalizaciones del esquema y los recursos.
name string Necesario. Nombre de la implementación.

Las reglas de nomenclatura se definen aquí.
description string Descripción de la implementación.
tags object Diccionario de etiquetas para la implementación.
endpoint_name string Necesario. Nombre del punto de conexión en el que se creará la implementación.
model cadena u objeto Modelo que se usará para la implementación. Este valor puede ser una referencia a un modelo con versiones existente en el área de trabajo o una especificación de modelo en línea.

Para hacer referencia a un modelo existente, use la sintaxis azureml:<model-name>:<model-version>.

Para definir un modelo en línea, siga el Esquema del modelo.

Como procedimiento recomendado para escenarios de producción, debe crear el modelo por separado y hacerle referencia aquí.

Este campo es opcional para escenarios de implementación de contenedores personalizados.
model_mount_path string Ruta de acceso para montar el modelo en un contenedor personalizado. Aplicable solo para escenarios de implementación de contenedores personalizados. Si se especifica el campo model, se monta en esta ruta de acceso en el contenedor.
code_configuration object Configuración de la lógica de código de puntuación.

Este campo es opcional para escenarios de implementación de contenedores personalizados.
code_configuration.code string Ruta de acceso local al directorio de código fuente para la puntuación del modelo.
code_configuration.scoring_script string Ruta de acceso relativa al archivo de puntuación en el directorio de código fuente.
environment_variables object Diccionario de pares clave-valor de variable de entorno que se establecerán en el contenedor de implementación. Puede acceder a estas variables de entorno desde los scripts de puntuación.
environment cadena u objeto Necesario. El entorno que se usará para la implementación. Este valor puede ser una referencia a un entorno con versiones existente en el área de trabajo o una especificación de entorno en línea.

Para hacer referencia a un entorno existente, use la sintaxis azureml:<environment-name>:<environment-version>.

Para definir un entorno en línea, siga el Esquema de entorno.

Como procedimiento recomendado para escenarios de producción, debe crear el entorno por separado y hacerle referencia aquí.
instance_type string Necesario. Tamaño de máquina virtual que se usará para la implementación. Para la lista de tamaños admitidos, consulte Lista de SKU de puntos de conexión en línea administrados.
instance_count integer Necesario. El número de instancias que se usarán para la implementación. Especifique el valor en función de la carga de trabajo que espera. Para conseguir alta disponibilidad, Microsoft recomienda establecerlo en al menos 3.

instance_count se puede actualizar después de la creación de la implementación mediante el comando az ml online-deployment update.

Reservamos un 20 % adicional para realizar actualizaciones. Para más información, consulte Asignación de cuota de máquinas virtuales para la implementación.
app_insights_enabled boolean Si desea habilitar la integración con la instancia de Azure Application Insights asociada al área de trabajo. false
scale_settings object La configuración de escala para la implementación. Actualmente solo se admite el tipo de escala default, por lo que no es necesario especificar esta propiedad.

Con el tipo de escala default, puede escalar y reducir verticalmente de forma manual el recuento de instancias después de la creación de la implementación mediante la actualización de la propiedad instance_count o crear una directiva de escalado automático.
scale_settings.type string El tipo de escala. default default
data_collector object Configuración de la recopilación de datos para la implementación. Consulte DataCollector para ver el conjunto de propiedades configurables.
request_settings object Configuración de la solicitud de puntuación para la implementación. Consulte RequestSettings para el conjunto de propiedades configurables.
liveness_probe object Configuración del sondeo de ejecución para supervisar el estado del contenedor con regularidad. Consulte ProbeSettings para el conjunto de propiedades configurables.
readiness_probe object Configuración del sondeo de preparación para validar si el contenedor está listo para atender el tráfico. Consulte ProbeSettings para el conjunto de propiedades configurables.
egress_public_network_access cadena Nota: Esta clave es aplicable cuando se usa el método de aislamiento de red heredado para proteger la comunicación saliente de una implementación. Se recomienda encarecidamente proteger la comunicación saliente para las implementaciones con una red virtual administrada por el área de trabajo.

Esta marca protege la implementación mediante la restricción de la comunicación entre la implementación y los recursos de Azure que usa. Configure disabled para asegurarse de que la descarga del modelo, el código y las imágenes que necesita la implementación esté protegida con un punto de conexión privado. Esta marca solo se aplica a los puntos de conexión administrados en línea.
enabled, disabled enabled

RequestSettings

Clave Tipo Descripción Valor predeterminado
request_timeout_ms integer Tiempo de espera de la puntuación, en milisegundos. Tenga en cuenta que el valor máximo permitido es 180000 milisegundos. Consulte los límites de los puntos de conexión en línea para obtener más información. 5000
max_concurrent_requests_per_instance integer El número máximo de solicitudes simultáneas por instancia permitidas para la implementación.

Nota: Si usa el servidor de inferencia de Azure Machine Learning o las imágenes de inferencia de Azure Machine Learning, el modelo se debe configurar para controlar las solicitudes simultáneas. Para ello, pase WORKER_COUNT: <int> como una variable de entorno. Para obtener más información sobre WORKER_COUNT, consulte Parámetros del servidor de inferencia de Azure Machine Learning.

Nota: Se establece en el número de solicitudes que el modelo puede procesar simultáneamente en un solo nodo. Establecer este valor por encima de la simultaneidad real del modelo puede dar lugar a latencias más altas. Establecer este valor demasiado bajo podría dar lugar a nodos infrautilizados. Establecer demasiado bajo también podría dar lugar a que las solicitudes se rechacen con un código de estado HTTP 429, ya que el sistema optará por producir un error rápido. Para más información, consulte Solución de problemas de puntos de conexión en línea: códigos de estado HTTP.
1
max_queue_wait_ms integer (en desuso) La cantidad máxima de tiempo en milisegundos que una solicitud permanecerá en la cola. (Ahora aumente para tener en request_timeout_ms cuenta los retrasos de redes o colas) 500

ProbeSettings

Clave Tipo Descripción Valor predeterminado
initial_delay integer El número de segundos después de que se haya iniciado el contenedor y antes de que se inicie el sondeo. El valor mínimo es 1. 10
period integer Frecuencia (en segundos) con que se ejecutará el sondeo. 10
timeout integer El número de segundos después de los cuales se agota el tiempo de espera del sondeo. El valor mínimo es 1. 2
success_threshold integer El número mínimo de valores correctos consecutivos para que el sondeo se considere correcto después de que se haya producido un error. El valor mínimo es 1 para el sondeo de preparación. El valor del sondeo de ejecución se ha corregido como 1. 1
failure_threshold integer Cuando un sondeo genera un error, el sistema efectuará failure_threshold intentos antes de abandonar. La entrega en el caso de un sondeo de ejecución significa que se reiniciará el contenedor. En el caso de un sondeo de preparación, el contenedor se marcará como que no está listo. El valor mínimo es 1. 30

DataCollector

Clave Tipo Descripción Valor predeterminado
sampling_rate FLOAT Porcentaje, representado como una tasa decimal, de datos que se van a recopilar. Por ejemplo, el valor 1,0 representa la recopilación del 100 % de los datos. 1.0
rolling_rate string Velocidad para crear particiones de los datos en el almacenamiento. El valor puede ser: Minute, Hour, Day, Month o Year. Hour
collections object Conjunto de elementos collection_name individuales y sus respectivas opciones de configuración para esta implementación.
collections.<collection_name> object Agrupación lógica de datos de inferencia de producción que se van a recopilar (ejemplo: model_inputs). Hay dos nombres reservados: request y response, que corresponden respectivamente a la recopilación de datos de las solicitudes HTTP y las cargas de respuesta. Todos los demás nombres son arbitrarios y definibles por el usuario.

Nota: Cada elemento collection_name debe corresponder al nombre del objeto Collector usado en la implementación score.py para recopilar los datos de inferencia de producción. Para obtener más información sobre la recopilación de datos de carga y la recopilación de datos con el SDK de Python proporcionado, consulte Recopilación de datos de modelos en producción.
collections.<collection_name>.enabled boolean Indica si se va a habilitar la recopilación de datos para el elemento collection_name especificado. 'False''
collections.<collection_name>.data.name string Nombre del recurso de datos que se va a registrar con los datos recopilados. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Ruta de acceso completa del almacén de datos de Azure Machine Learning en la que se deben registrar los datos recopilados como recurso de datos. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Versión del recurso de datos que se va a registrar con los datos recopilados en Blob Storage. 1

Observaciones

El comando az ml online-deployment se puede usar para administrar implementaciones en línea administradas de Azure Machine Learning.

Ejemplos

Hay ejemplos disponibles en el repositorio de GitHub de ejemplos. A continuación se muestran varios.

YAML: básico

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
  path: ../../model-2/model/
code_configuration:
  code: ../../model-2/onlinescoring/
  scoring_script: score.py
environment:
  conda_file: ../../model-2/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

YAML: identidad asignada por el sistema

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment:
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"

YAML: identidad asignada por el usuario

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment: 
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"
  UAI_CLIENT_ID: "uai_client_id_place_holder"

YAML: data_collector

$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint 
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
       model_inputs:
           enabled: 'True' 
       model_outputs:
           enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
     request: 
         enabled: 'True'
         data: 
           name: my_request_data_asset 
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request 
           version: 1 
     response:
         enabled: 'True' 
         data: 
           name: my_response_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
           version: 1 
     model_inputs:
         enabled: 'True'
         data: 
           name: my_model_inputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
           version: 1 
     model_outputs:
         enabled: 'True'
         data: 
           name: my_model_outputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
           version: 1

Pasos siguientes