Compartir vía


Esquema YAML de la implementación por lotes 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/batchDeployment.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.
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.
type string Necesario. Tipo de implementación por lotes. Use model para implementaciones de modelos y pipeline para implementaciones de componentes de canalización.

Novedades de la versión 1.7.
model, pipeline model
settings object Configuración de la implementación. Consulte la referencia específica de YAML para el modelo y el componente de canalización para obtener los valores permitidos.

Novedades de la versión 1.7.

Sugerencia

La clave type se ha introducido en la versión 1.7 de la extensión de la CLI y versiones posteriores. Para admitir totalmente la compatibilidad con versiones anteriores, esta propiedad tiene model como valor predeterminado. Sin embargo, si no se indica explícitamente, la clave settings no se aplica y todas las propiedades de la configuración de implementación de modelo deben indicarse en la raíz de la especificación de YAML.

Sintaxis de YAML para las implementaciones de modelos

Cuando es type: model, se aplica la siguiente sintaxis:

Clave Tipo Descripción Valores permitidos Valor predeterminado
model cadena u objeto Necesario. 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>:<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í.
code_configuration object Configuración de la lógica de código de puntuación.

Esta propiedad no es necesaria si el modelo está en formato MLflow.
code_configuration.code string El directorio local que contiene todo el código fuente Python para puntuar el modelo.
code_configuration.scoring_script string El archivo Python en el directorio anterior. Este archivo debe tener una función init() y una función run(). Use la función init() para cualquier preparación costosa o común (por ejemplo, cargar el modelo en memoria). Solo se llama a init() una vez al principio del proceso. Use run(mini_batch) para puntuar cada entrada; el valor de mini_batch es una lista de rutas de acceso de archivo. La función run() debe devolver un dataframe de Pandas o una matriz. Cada elemento devuelto indica una ejecución correcta del elemento de entrada en mini_batch. Para obtener más información sobre cómo crear el script de puntuación, consulte Descripción del script de puntuación.
environment cadena u objeto 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.

Esta propiedad no es necesaria si el modelo está en formato MLflow.

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í.
compute string Necesario. Nombre del destino de proceso en el que se ejecutarán los trabajos de puntuación por lotes. Este valor debe ser una referencia a un proceso existente en el área de trabajo mediante la sintaxis azureml:<compute-name>.
resources.instance_count integer Número de nodos que se usarán para cada trabajo de puntuación por lotes. 1
settings object Configuración específica de la implementación de modelo.

Se ha cambiado en la versión 1.7.
settings.max_concurrency_per_instance integer Número máximo de ejecuciones de scoring_script paralelas por instancia. 1
settings.error_threshold integer Número de errores de archivo que se deben omitir. Si el recuento de errores de toda la entrada supera este valor, el trabajo de puntuación por lotes se termina. error_threshold es para toda la entrada y no para mini lotes individuales. Si se omite, se permite cualquier número de errores de archivo sin finalizar el trabajo. -1
settings.logging_level string Nivel de detalle del registro. warning, info, debug info
settings.mini_batch_size integer Número de archivos que code_configuration.scoring_script puede procesar en una llamada a run(). 10
settings.retry_settings object Vuelva a intentar la configuración para puntuar cada mini lote.
settings.retry_settings.max_retries integer Número máximo de reintentos para un mini lote con errores o con tiempo de espera. 3
settings.retry_settings.timeout integer Tiempo de espera en segundos para puntuar un solo minilote. Use valores mayores cuando el tamaño del minilote sea mayor o sea más costoso ejecutar el modelo. 30
settings.output_action string Indica cómo se debe organizar la salida en el archivo de salida. Use summary_only si va a generar los archivos de salida como se indica en Personalización de salidas en implementaciones de modelos. Use append_row si va a devolver predicciones como parte de la run() instrucción return de función. append_row, summary_only append_row
settings.output_file_name string Nombre del archivo de salida de puntuación por lotes. predictions.csv
settings.environment_variables object Diccionario de pares clave-valor de variable de entorno que se establecerán para cada trabajo de puntuación por lotes.

Sintaxis de YAML para las implementaciones de componentes de canalización

Cuando es type: pipeline, se aplica la siguiente sintaxis:

Clave Tipo Descripción Valores permitidos Valor predeterminado
component cadena u objeto Necesario. Componente de canalización usado para la implementación. Este valor puede ser una referencia a un componente de canalización con versiones existente en el área de trabajo o en un registro, o bien una especificación de canalización insertada.

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

Para definir un componente de canalización insertado, siga el esquema del componente de canalización.

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

Novedades de la versión 1.7.
settings object Configuración predeterminada del trabajo de canalización. Consulte Atributos de la clave de configuración para ver el conjunto de propiedades configurables.

Novedades de la versión 1.7.

Comentarios

Los comandos az ml batch-deployment se pueden usar para administrar las implementaciones de lotes de Azure Machine Learning.

Ejemplos

Hay ejemplos disponibles en el repositorio de GitHub de ejemplos. Se hace referencia a algunos de ellos a continuación:

YAML: implementación de modelo de MLflow

Una implementación de modelo que contiene un modelo de MLflow, que no requiere indicar code_configuration o environment:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300
  error_threshold: -1
  logging_level: info

YAML: implementación de modelos personalizados con script de puntuación

Una implementación de modelo que indica el script de puntuación que se va a usar y el entorno:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
  name: mnist-classifier-torch
  path: model
code_configuration:
  code: code
  scoring_script: batch_driver.py
environment:
  name: batch-torch-py38
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
  conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
  instance_count: 1
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 10
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 30
  error_threshold: -1
  logging_level: info

YAML: implementaciones de modelos heredados

Si el atributo type no se indica en YAML, se deduce una implementación de modelo. Sin embargo, la clave settings no estará disponible y las propiedades deben colocarse en la raíz de YAML, como se indica en este ejemplo. Es muy recomendable especificar siempre la propiedad type.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
  max_retries: 3
  timeout: 300
error_threshold: -1
logging_level: info

YAML: implementación de componentes de canalización

Una implementación sencilla de componentes de canalización:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
    default_compute: batch-cluster

Pasos siguientes