Schema YAML del processo della pipeline dell'interfaccia della riga di comando (v2)
SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
È possibile trovare lo schema JSON di origine in https://azuremlschemas.azureedge.net/latest/pipelineJob.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 VS Code di Azure Machine Learning per creare il file YAML, è possibile richiamare i completamenti dello schema e delle risorse se si include $schema nella parte superiore del file. |
||
type |
const | Obbligatorio. Tipo di processo. | pipeline |
|
name |
string | Nome del processo. Deve essere univoco in tutti i processi nell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un GUID per il nome. | ||
display_name |
string | Nome visualizzato del processo nell'interfaccia utente di Studio. Può essere non univoco all'interno dell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un identificatore aggettivo-sostantivo leggibile per il nome visualizzato. | ||
experiment_name |
string | Organizzare il processo sotto il nome dell'esperimento. Il record di esecuzione di ogni processo è organizzato nell'esperimento corrispondente nella scheda "Esperimenti" dello studio. Se omesso, Per impostazione predefinita, Azure Machine Learning corrisponde experiment_name al nome della directory di lavoro in cui è stato creato il processo. |
||
tags |
oggetto | Dizionario dei tag per il processo. | ||
settings |
oggetto | Impostazioni predefinite per il processo della pipeline. Visitare Attributi della settings chiave per il set di proprietà configurabili. |
||
jobs |
oggetto | Obbligatorio. Dizionario del set di singoli processi da eseguire come passaggi all'interno della pipeline. Questi processi sono considerati processi figlio del processo padre della pipeline. La chiave è il nome del passaggio all'interno del contesto del processo della pipeline. Questo nome è diverso dal nome univoco del processo figlio. Il valore è la specifica del processo, che può seguire lo schema del processo di comando o lo schema del processo sweep. Attualmente, solo i processi di comando e i processi sweep possono essere eseguiti in una pipeline. Le versioni successive avranno il supporto per altri tipi di processo. |
||
inputs |
oggetto | Dizionario di input per il processo della pipeline. La chiave è un nome per l'input all'interno del contesto del processo. Il valore è il valore di input. Gli input di un singolo processo di passaggio nella pipeline possono fare riferimento a questi input della pipeline con l'espressione ${{ parent.inputs.<input_name> }} . Per altre informazioni sull'associazione degli input di un passaggio della pipeline agli input del processo della pipeline di primo livello, vedere sintassi dell'espressione per l'associazione di input e output tra i passaggi di un processo della pipeline. |
||
inputs.<input_name> |
number, integer, boolean, string or object | Uno dei valori letterali (di tipo number, integer, boolean o string) o un oggetto contenente una specifica dei dati di input del processo. | ||
outputs |
oggetto | Dizionario delle configurazioni di output del processo della pipeline. La chiave è un nome per l'output all'interno del contesto del processo. Il valore è la configurazione di output. Gli output di un singolo processo di passaggio nella pipeline possono fare riferimento a questi output della pipeline con l'espressione ${{ parents.outputs.<output_name> }} . Per altre informazioni sull'associazione degli output di un passaggio della pipeline agli output del processo della pipeline di primo livello, vedere la sintassi dell'espressione per l'associazione di input e output tra i passaggi di un processo della pipeline. |
||
outputs.<output_name> |
oggetto | È possibile lasciare vuoto l'oggetto. In questo caso, per impostazione predefinita, l'output sarà di tipo uri_folder e Azure Machine Learning genererà un percorso di output per l'output in base a questo percorso temporaneo: {settings.datastore}/azureml/{job-name}/{output-name}/ . I file nella directory di output verranno scritti tramite un montaggio di lettura/scrittura. Per specificare una modalità di output diversa, specificare un oggetto contenente la specifica dell'output del processo. |
||
identity |
oggetto | L'identità viene usata per l'accesso ai dati. Può essere UserIdentityConfiguration, ManagedIdentityConfiguration o Nessuno. Se si tratta di UserIdentityConfiguration, l'identità del mittente del processo verrà usata per accedere ai dati di input e scrivere i risultati nella cartella di output. In caso contrario, verrà usata l'identità gestita della destinazione di calcolo. |
Attributi della settings
chiave
Chiave | Type | Descrizione | Default value |
---|---|---|---|
default_datastore |
string | Nome dell'archivio dati da usare come archivio dati predefinito per il processo della pipeline. Questo valore deve essere un riferimento a un archivio dati esistente nell'area di lavoro, usando la azureml:<datastore-name> sintassi . Tutti gli output definiti nella outputs proprietà del processo della pipeline padre o dei processi dei passaggi figlio vengono archiviati in questo archivio dati. Se omesso, gli output vengono archiviati nell'archivio dati BLOB dell'area di lavoro. |
|
default_compute |
string | Nome della destinazione di calcolo da usare come calcolo predefinito per tutti i passaggi della pipeline. Il calcolo definito a livello di passaggio esegue l'override di questo calcolo predefinito per quel passaggio specifico. Il default_compute valore deve essere un riferimento a un calcolo esistente nell'area di lavoro, usando la azureml:<compute-name> sintassi . |
|
continue_on_step_failure |
boolean | Questa impostazione determina cosa accade se un passaggio della pipeline ha esito negativo. Per impostazione predefinita, la pipeline continuerà a essere eseguita anche se un passaggio ha esito negativo. Ciò significa che tutti i passaggi che non dipendono dal passaggio non riuscito verranno comunque eseguiti. Tuttavia, se si modifica questa impostazione su False, l'intera pipeline interrompe l'esecuzione e tutti i passaggi attualmente in esecuzione verranno annullati se un passaggio ha esito negativo. | True |
force_rerun |
boolean | Indica se forzare l'esecuzione dell'intera pipeline. Il valore predefinito è False . Ciò significa che per impostazione predefinita, la pipeline tenta di riutilizzare l'output del processo precedente se soddisfa i criteri di riutilizzo. Se impostato su True , tutti i passaggi della pipeline verranno rieseguiti. |
False |
Input del processo
Chiave | Type | Descrizione | Valori consentiti | Valore predefinito |
---|---|---|---|---|
type |
string | Tipo di input del processo. Specificare uri_file per i dati di input che puntano a una singola origine file o uri_folder per i dati di input che puntano a un'origine cartella. Per altre informazioni, vedere Altre informazioni sull'accesso ai dati. |
uri_file , uri_folder , mltable mlflow_model |
uri_folder |
path |
string | Percorso dei dati da usare come input. Questa opzione può essere specificata in alcuni modi: - Percorso locale del file o della cartella dell'origine dati, ad esempio path: ./iris.csv . I dati si caricano durante l'invio del processo. - URI di un percorso cloud del file o della cartella da usare come input. I tipi URI supportati sono azureml , https , wasbs , abfss , adl . Per altre informazioni sull'uso del azureml:// formato URI, vedere sintassi yaml di base. : asset di dati di Azure Machine Learning registrato esistente da usare come input. Per fare riferimento a un asset di dati registrato, usare la azureml:<data_name>:<data_version> sintassi o azureml:<data_name>@latest (per fare riferimento alla versione più recente di tale asset di dati), ad esempio path: azureml:cifar10-data:1 o path: azureml:cifar10-data@latest . |
||
mode |
string | Modalità di distribuzione dei dati alla destinazione di calcolo. Per il montaggio di sola lettura ( ro_mount ), i dati verranno utilizzati come percorso di montaggio. Una cartella viene montata come cartella e un file viene montato come file. Azure Machine Learning risolve l'input nel percorso di montaggio. Per download la modalità, i dati vengono scaricati nella destinazione di calcolo. Azure Machine Learning risolve l'input nel percorso scaricato. Per solo l'URL del percorso di archiviazione dell'artefatto o degli artefatti di dati, invece di montare o scaricare i dati stessi, usare la direct modalità . In questo modo viene passato l'URL della posizione di archiviazione come input del processo. In questo caso, si è completamente responsabili della gestione delle credenziali per accedere all'archiviazione. |
ro_mount , download , direct |
ro_mount |
Output del processo
Chiave | Type | Descrizione | Valori consentiti | Valore predefinito |
---|---|---|---|---|
type |
string | Tipo di output del processo. Per il tipo predefinito uri_folder , l'output corrisponde a una cartella. |
uri_file , uri_folder , mltable mlflow_model |
uri_folder |
mode |
string | Modalità di recapito del file di output o dei file nella risorsa di archiviazione di destinazione. Per la modalità di montaggio in lettura/scrittura (rw_mount ), la directory di output sarà una directory montata. Per la modalità di caricamento, i file scritti vengono caricati alla fine del processo. |
rw_mount , upload |
rw_mount |
Configurazioni di identità
UserIdentityConfiguration
Chiave | Type | Descrizione | Valori consentiti |
---|---|---|---|
type |
const | Obbligatorio. Tipo di identità. | user_identity |
ManagedIdentityConfiguration
Chiave | Type | Descrizione | Valori consentiti |
---|---|---|---|
type |
const | Obbligatorio. Tipo di identità. | managed oppure managed_identity |
Osservazioni:
È possibile usare il az ml job
comando per gestire i processi di Azure Machine Learning.
Esempi
Per esempi, visitare il repository GitHub di esempi. Di seguito sono riportati alcuni elementi:
YAML: hello pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: dipendenza di input/output
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: impostazioni comuni del processo della pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: input di primo livello e override delle impostazioni comuni del processo della pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}