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