Schema YAML per la distribuzione batch dell'interfaccia della riga di comando (v2)

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Lo schema JSON di origine è disponibile in https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json.

Nota

La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. Il funzionamento di questa sintassi è garantito solo con la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. È possibile trovare gli schemi per le versioni di estensione precedenti in https://azuremlschemasprod.azureedge.net/.

Sintassi YAML

Chiave Type Descrizione Valori consentiti Valore predefinito
$schema string Schema YAML. Se si usa l'estensione Azure Machine Learning per Visual Studio Code per creare il file YAML, l'inclusione di $schema nella parte superiore del file consente di richiamare i completamenti dello schema e delle risorse.
name string Obbligatorio. Nome della distribuzione.
description string Descrizione della distribuzione.
tags oggetto Dizionario dei tag per la distribuzione.
endpoint_name string Obbligatorio. Nome dell'endpoint in cui creare la distribuzione.
type string Obbligatorio. Tipo di distribuzione del bagno. Usare model per le distribuzioni di modelli e pipeline per le distribuzioni dei componenti della pipeline.

Novità nella versione 1.7.
model, pipeline model
settings oggetto Configurazione della distribuzione. Per i valori consentiti, vedere riferimento YAML specifico per il modello e il componente della pipeline.

Novità nella versione 1.7.

Suggerimento

La chiave type è stata introdotta nella versione 1.7 dell'estensione dell'interfaccia della riga di comando e versioni successive. Per supportare completamente la compatibilità con le versioni precedenti, per impostazione predefinita questa proprietà è model. Tuttavia, se non indicato in modo esplicito, la chiave settings non viene applicata e tutte le proprietà per le impostazioni di distribuzione del modello devono essere indicate nella radice della specifica YAML.

Sintassi YAML per le distribuzioni di modelli

Quando type: model, viene applicata la sintassi seguente:

Chiave Type Descrizione Valori consentiti Valore predefinito
model stringa o oggetto Obbligatorio. Modello da usare per la distribuzione. Questo valore può essere un riferimento a un modello con controllo delle versioni esistente nell'area di lavoro o a una specifica del modello inline.

Per fare riferimento a un modello esistente, usare la sintassi azureml:<model-name>:<version>.

Per definire un modello inline, seguire lo schema del modello.

Come procedura consigliata per gli scenari di produzione, è necessario creare il modello separatamente e farvi riferimento qui.
code_configuration oggetto Configurazione per la logica del codice di assegnazione dei punteggi.

Questa proprietà non è necessaria se il modello è in formato MLflow.
code_configuration.code string Directory locale che contiene tutto il codice sorgente Python per assegnare un punteggio al modello.
code_configuration.scoring_script string File Python nella directory precedente. Questo file deve avere una funzione init() e una funzione run(). Usare la funzione init() per qualsiasi preparazione dispendiosa o comune, ad esempio caricare il modello in memoria. init() viene chiamato una sola volta all'inizio del processo. Usare run(mini_batch) per assegnare un punteggio a ogni voce; il valore di mini_batch è un elenco di percorsi di file. La funzione run() deve restituire un dataframe Pandas o una matrice. Ogni elemento restituito indica un'esecuzione riuscita dell'elemento di input in mini_batch. Per altre informazioni su come creare lo script di assegnazione dei punteggi, vedere Informazioni sullo script di assegnazione dei punteggi.
environment stringa o oggetto Ambiente da usare per la distribuzione. Questo valore può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica dell'ambiente inline.

Questa proprietà non è necessaria se il modello è in formato MLflow.

Per fare riferimento a un ambiente esistente, usare la sintassi azureml:<environment-name>:<environment-version>.

Per definire un ambiente inline, seguire lo schema Ambiente.

Come procedura consigliata per gli scenari di produzione, è necessario creare l'ambiente separatamente e farvi riferimento qui.
compute string Obbligatorio. Nome della destinazione di calcolo in cui eseguire i processi di assegnazione dei punteggi batch. Questo valore deve essere un riferimento a un calcolo esistente nell'area di lavoro usando la azureml:<compute-name> sintassi .
resources.instance_count integer Numero di nodi da usare per ogni processo di assegnazione dei punteggi batch. 1
settings oggetto Configurazione specifica della distribuzione del modello.

Modificata nella versione 1.7.
settings.max_concurrency_per_instance integer Numero massimo di esecuzioni parallele scoring_script per istanza. 1
settings.error_threshold integer Numero di errori di file che devono essere ignorati. Se il numero di errori per l'intero input supera questo valore, il processo di assegnazione dei punteggi batch viene terminato. error_threshold è per l'intero input e non per singoli mini batch. Se omesso, è consentito un numero qualsiasi di errori di file senza terminare il processo. -1
settings.logging_level string Livello di dettaglio del log. warning, info, debug info
settings.mini_batch_size integer Numero di file che code_configuration.scoring_script può elaborare in una run() chiamata. 10
settings.retry_settings oggetto Impostazioni di ripetizione dei tentativi per l'assegnazione del punteggio a ogni mini batch.
settings.retry_settings.max_retries integer Numero massimo di tentativi per un mini batch non riuscito o timeout. 3
settings.retry_settings.timeout integer Timeout in secondi per assegnare un punteggio a un singolo mini batch. Usare valori più grandi quando le dimensioni del mini batch sono maggiori o il modello è più costoso da eseguire. 30
settings.output_action string Indica la modalità di organizzazione dell'output nel file di output. Usare summary_only se si generano i file di output come indicato in Personalizzare gli output nelle distribuzioni del modello. Usare append_row se si restituiscono stime come parte dell'istruzione run() della funzione return . append_row, summary_only append_row
settings.output_file_name string Nome del file di output di assegnazione dei punteggi batch. predictions.csv
settings.environment_variables oggetto Dizionario delle coppie chiave-valore della variabile di ambiente da impostare per ogni processo di assegnazione dei punteggi batch.

Sintassi YAML per le distribuzioni dei componenti della pipeline

Quando type: pipeline, viene applicata la sintassi seguente:

Chiave Type Descrizione Valori consentiti Valore predefinito
component stringa o oggetto Obbligatorio. Componente della pipeline usato per la distribuzione. Questo valore può essere un riferimento a un componente della pipeline con controllo delle versioni esistente nell'area di lavoro o in un registro o a una specifica della pipeline inline.

Per fare riferimento a un componente esistente, usare la azureml:<component-name>:<version> sintassi .

Per definire un componente della pipeline inline, seguire lo schema del componente pipeline.

Come procedura consigliata per gli scenari di produzione, è necessario creare il componente separatamente e farvi riferimento qui.

Novità nella versione 1.7.
settings oggetto Impostazioni predefinite per il processo della pipeline. Vedere Attributi della chiave delle impostazioni per il set di proprietà configurabili.

Novità nella versione 1.7.

Osservazioni:

I az ml batch-deployment comandi possono essere usati per la gestione delle distribuzioni batch di Azure Machine Learning.

Esempi

Gli esempi sono disponibili nel repository GitHub di esempi. Di seguito sono riportati alcuni riferimenti:

YAML: distribuzione del modello MLflow

Distribuzione del modello contenente un modello MLflow, che non richiede di indicare 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: distribuzione del modello personalizzata con script di assegnazione dei punteggi

Distribuzione del modello che indica lo script di assegnazione dei punteggi da usare e l'ambiente:

$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: distribuzioni di modelli legacy

Se l'attributo type non è indicato in YAML, viene dedotta una distribuzione del modello. Tuttavia, la chiave settings non sarà disponibile e le proprietà devono essere inserite nella radice del file YAML, come indicato in questo esempio. È consigliabile specificare sempre la proprietà 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: distribuzione dei componenti della pipeline

Distribuzione di componenti della pipeline semplice:

$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

Passaggi successivi