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 ML v2. Questa sintassi è garantita solo per funzionare con la versione più recente dell'estensione dell'interfaccia della riga di comando di ML 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 della pipeline padre.

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_foldere 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'accesso ai dati usa l'identità. Può trattarsi di configurazione dell'identità utente, configurazione dell'identità gestita o Nessuno. Per UserIdentityConfiguration, l'identità del mittente del processo viene usata per accedere ai dati di input e scrivere il risultato nella cartella di output. In caso contrario, UserIdentityConfiguration usa 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, mltablemlflow_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, mltablemlflow_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.0/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/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.0/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

Passaggi successivi