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 | Default value |
---|---|---|---|---|
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 | Il numero massimo di esecuzioni scoring_script parallele per ogni 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 | Il numero di file che code_configuration.scoring_script può elaborare in un'unica chiamata run() . |
10 |
|
settings.retry_settings |
oggetto | Impostazioni relative ai tentativi per l'assegnazione dei punteggi 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 | Default value |
---|---|---|---|---|
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