Schema YAML del processo della pipeline dell'interfaccia della riga di comando (v1)
SI APPLICA A:Estensione ML dell’interfaccia della riga di comando di Azure v1
Nota
La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione v1 dell'estensione dell'interfaccia della riga di comando di ML. Questa sintassi è garantita solo per funzionare con l'estensione dell'interfaccia della riga di comando di ML v1. Passare alla versione 2 (versione corrente) per la sintassi per l'interfaccia della riga di comando di ML v2.
Importante
Alcuni comandi dell'interfaccia della riga di comando (CLI) di Azure in questo articolo usano l'estensione azure-cli-ml
, o v1, per Azure Machine Learning. L'assistenza per l'estensione v1 terminerà il 30 settembre 2025. È possibile installare e usare l'estensione v1 fino a tale data.
Consigliamo di passare all'estensione ml
, o v2, prima del 30 settembre 2025. Per altre informazioni sull'estensione v2, vedere Estensione dell'interfaccia della riga di comando di Azure Machine Learning e Python SDK v2.
Definire le pipeline di Machine Learning in YAML. Quando si usa l'estensione di Machine Learning per l'interfaccia della riga di comando di Azure v1., molti dei comandi correlati alla pipeline prevedono un file YAML che definisce la pipeline.
La tabella seguente elenca cosa è e non è attualmente supportato quando si definisce una pipeline in YAML per l'uso con l'interfaccia della riga di comando v1:
Tipo di passaggio | Supportato? |
---|---|
PythonScriptStep | Sì |
ParallelRunStep | Sì |
AdlaStep | Sì |
AzureBatchStep | Sì |
DatabricksStep | Sì |
DataTransferStep | Sì |
AutoMLStep | No |
HyperDriveStep | No |
ModuleStep | Sì |
MPIStep | No |
EstimatorStep | No |
Definizione della pipeline
Una definizione della pipeline usa le chiavi seguenti, che corrispondono alla classe Pipelines :
Chiave YAML | Descrizione |
---|---|
name |
Descrizione della pipeline. |
parameters |
Parametri della pipeline. |
data_reference |
Definisce come e dove devono essere resi disponibili i dati in un'esecuzione. |
default_compute |
Destinazione di calcolo predefinita in cui vengono eseguiti tutti i passaggi della pipeline. |
steps |
Passaggi usati nella pipeline. |
Parametri
La parameters
sezione usa le chiavi seguenti, che corrispondono alla classe PipelineParameter :
Chiave YAML | Descrizione |
---|---|
type |
Tipo del valore del parametro. I tipi validi sono string , float int , bool , o datapath . |
default |
Valore predefinito. |
Ogni parametro è denominato. Ad esempio, il frammento YAML seguente definisce tre parametri denominati NumIterationsParameter
, DataPathParameter
e NodeCountParameter
:
pipeline:
name: SamplePipelineFromYaml
parameters:
NumIterationsParameter:
type: int
default: 40
DataPathParameter:
type: datapath
default:
datastore: workspaceblobstore
path_on_datastore: sample2.txt
NodeCountParameter:
type: int
default: 4
Riferimenti ai dati
La data_references
sezione usa le chiavi seguenti, che corrispondono a DataReference:
Chiave YAML | Descrizione |
---|---|
datastore |
Archivio dati a cui fare riferimento. |
path_on_datastore |
Percorso relativo nell'archivio di backup per il riferimento ai dati. |
Ogni riferimento ai dati è contenuto in una chiave. Ad esempio, il frammento YAML seguente definisce un riferimento ai dati archiviato nella chiave denominata employee_data
:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
employee_data:
datastore: adftestadla
path_on_datastore: "adla_sample/sample_input.csv"
Passaggi
I passaggi definiscono un ambiente di calcolo, insieme ai file da eseguire nell'ambiente. Per definire il tipo di un passaggio, usare la type
chiave :
Tipo di passaggio | Descrizione |
---|---|
AdlaStep |
Esegue uno script U-SQL con Azure Data Lake Analytics. Corrisponde alla classe AdlaStep . |
AzureBatchStep |
Esegue processi con Azure Batch. Corrisponde alla classe AzureBatchStep . |
DatabricsStep |
Aggiunge un notebook di Databricks, uno script Python o un file JAR. Corrisponde alla classe DatabricksStep . |
DataTransferStep |
Trasferisce i dati tra le opzioni di archiviazione. Corrisponde alla classe DataTransferStep . |
PythonScriptStep |
Esegue uno script Python. Corrisponde alla classe PythonScriptStep . |
ParallelRunStep |
Esegue uno script Python per elaborare grandi quantità di dati in modo asincrono e in parallelo. Corrisponde alla classe ParallelRunStep . |
Passaggio ADLA
Chiave YAML | Descrizione |
---|---|
script_name |
Nome dello script U-SQL (relativo a source_directory ). |
compute |
Destinazione di calcolo di Azure Data Lake da usare per questo passaggio. |
parameters |
Parametri per la pipeline. |
inputs |
Gli input possono essere InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition o PipelineDataset. |
outputs |
Gli output possono essere PipelineData o OutputPortBinding. |
source_directory |
Directory contenente lo script, gli assembly e così via. |
priority |
Valore di priorità da utilizzare per il processo corrente. |
params |
Dizionario di coppie nome-valore. |
degree_of_parallelism |
Grado di parallelismo da usare per questo processo. |
runtime_version |
Versione di runtime del motore di Data Lake Analytics. |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene una definizione ad ADLA Step:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
employee_data:
datastore: adftestadla
path_on_datastore: "adla_sample/sample_input.csv"
default_compute: adlacomp
steps:
Step1:
runconfig: "D:\\Yaml\\default_runconfig.yml"
parameters:
NUM_ITERATIONS_2:
source: PipelineParam1
NUM_ITERATIONS_1: 7
type: "AdlaStep"
name: "MyAdlaStep"
script_name: "sample_script.usql"
source_directory: "D:\\scripts\\Adla"
inputs:
employee_data:
source: employee_data
outputs:
OutputData:
destination: Output4
datastore: adftestadla
bind_mode: mount
Passaggio di Azure Batch
Chiave YAML | Descrizione |
---|---|
compute |
Destinazione di calcolo di Azure Batch da usare per questo passaggio. |
inputs |
Gli input possono essere InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition o PipelineDataset. |
outputs |
Gli output possono essere PipelineData o OutputPortBinding. |
source_directory |
Directory contenente i file binari del modulo, eseguibili, assembly e così via. |
executable |
Nome del comando/eseguibile che verrà eseguito come parte di questo processo. |
create_pool |
Flag booleano per indicare se creare il pool prima di eseguire il processo. |
delete_batch_job_after_finish |
Flag booleano per indicare se eliminare il processo dall'account Batch al termine dell'operazione. |
delete_batch_pool_after_finish |
Flag booleano per indicare se eliminare il pool al termine del processo. |
is_positive_exit_code_failure |
Flag booleano per indicare se il processo ha esito negativo se l'attività viene chiusa con un codice positivo. |
vm_image_urn |
Se create_pool è True e la macchina virtuale usa VirtualMachineConfiguration . |
pool_id |
ID del pool in cui verrà eseguito il processo. |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene una definizione di passaggio di Azure Batch:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
input:
datastore: workspaceblobstore
path_on_datastore: "input.txt"
default_compute: testbatch
steps:
Step1:
runconfig: "D:\\Yaml\\default_runconfig.yml"
parameters:
NUM_ITERATIONS_2:
source: PipelineParam1
NUM_ITERATIONS_1: 7
type: "AzureBatchStep"
name: "MyAzureBatchStep"
pool_id: "MyPoolName"
create_pool: true
executable: "azurebatch.cmd"
source_directory: "D:\\scripts\\AureBatch"
allow_reuse: false
inputs:
input:
source: input
outputs:
output:
destination: output
datastore: workspaceblobstore
Passaggio di Databricks
Chiave YAML | Descrizione |
---|---|
compute |
Destinazione di calcolo di Azure Databricks da usare per questo passaggio. |
inputs |
Gli input possono essere InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition o PipelineDataset. |
outputs |
Gli output possono essere PipelineData o OutputPortBinding. |
run_name |
Nome in Databricks per questa esecuzione. |
source_directory |
Directory contenente lo script e altri file. |
num_workers |
Numero statico di ruoli di lavoro per il cluster di esecuzione di Databricks. |
runconfig |
Percorso di un .runconfig file. Questo file è una rappresentazione YAML della classe RunConfiguration . Per altre informazioni sulla struttura di questo file, vedere runconfigschema.json. |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene un passaggio di Databricks:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
adls_test_data:
datastore: adftestadla
path_on_datastore: "testdata"
blob_test_data:
datastore: workspaceblobstore
path_on_datastore: "dbtest"
default_compute: mydatabricks
steps:
Step1:
runconfig: "D:\\Yaml\\default_runconfig.yml"
parameters:
NUM_ITERATIONS_2:
source: PipelineParam1
NUM_ITERATIONS_1: 7
type: "DatabricksStep"
name: "MyDatabrickStep"
run_name: "DatabricksRun"
python_script_name: "train-db-local.py"
source_directory: "D:\\scripts\\Databricks"
num_workers: 1
allow_reuse: true
inputs:
blob_test_data:
source: blob_test_data
outputs:
OutputData:
destination: Output4
datastore: workspaceblobstore
bind_mode: mount
Passaggio di trasferimento dei dati
Chiave YAML | Descrizione |
---|---|
compute |
Destinazione di calcolo di Azure Data Factory da usare per questo passaggio. |
source_data_reference |
Connessione di input che funge da origine delle operazioni di trasferimento dei dati. I valori supportati sono InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition o PipelineDataset. |
destination_data_reference |
Connessione di input che funge da destinazione delle operazioni di trasferimento dei dati. I valori supportati sono PipelineData e OutputPortBinding. |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene un passaggio di trasferimento dei dati:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
adls_test_data:
datastore: adftestadla
path_on_datastore: "testdata"
blob_test_data:
datastore: workspaceblobstore
path_on_datastore: "testdata"
default_compute: adftest
steps:
Step1:
runconfig: "D:\\Yaml\\default_runconfig.yml"
parameters:
NUM_ITERATIONS_2:
source: PipelineParam1
NUM_ITERATIONS_1: 7
type: "DataTransferStep"
name: "MyDataTransferStep"
adla_compute_name: adftest
source_data_reference:
adls_test_data:
source: adls_test_data
destination_data_reference:
blob_test_data:
source: blob_test_data
Passaggio dello script Python
Chiave YAML | Descrizione |
---|---|
inputs |
Gli input possono essere InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition o PipelineDataset. |
outputs |
Gli output possono essere PipelineData o OutputPortBinding. |
script_name |
Nome dello script Python (relativo a source_directory ). |
source_directory |
Directory contenente lo script, l'ambiente Conda e così via. |
runconfig |
Percorso di un .runconfig file. Questo file è una rappresentazione YAML della classe RunConfiguration . Per altre informazioni sulla struttura di questo file, vedere runconfig.json. |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene un passaggio dello script Python:
pipeline:
name: SamplePipelineFromYaml
parameters:
PipelineParam1:
type: int
default: 3
data_references:
DataReference1:
datastore: workspaceblobstore
path_on_datastore: testfolder/sample.txt
default_compute: cpu-cluster
steps:
Step1:
runconfig: "D:\\Yaml\\default_runconfig.yml"
parameters:
NUM_ITERATIONS_2:
source: PipelineParam1
NUM_ITERATIONS_1: 7
type: "PythonScriptStep"
name: "MyPythonScriptStep"
script_name: "train.py"
allow_reuse: True
source_directory: "D:\\scripts\\PythonScript"
inputs:
InputData:
source: DataReference1
outputs:
OutputData:
destination: Output4
datastore: workspaceblobstore
bind_mode: mount
Passaggio di esecuzione in parallelo
Chiave YAML | Descrizione |
---|---|
inputs |
Gli input possono essere Dataset, DatasetDefinition o PipelineDataset. |
outputs |
Gli output possono essere PipelineData o OutputPortBinding. |
script_name |
Nome dello script Python (relativo a source_directory ). |
source_directory |
Directory contenente lo script, l'ambiente Conda e così via. |
parallel_run_config |
Percorso di un parallel_run_config.yml file. Questo file è una rappresentazione YAML della classe ParallelRunConfig . |
allow_reuse |
Determina se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito di nuovo con le stesse impostazioni. |
L'esempio seguente contiene un passaggio di esecuzione parallela:
pipeline:
description: SamplePipelineFromYaml
default_compute: cpu-cluster
data_references:
MyMinistInput:
dataset_name: mnist_sample_data
parameters:
PipelineParamTimeout:
type: int
default: 600
steps:
Step1:
parallel_run_config: "yaml/parallel_run_config.yml"
type: "ParallelRunStep"
name: "parallel-run-step-1"
allow_reuse: True
arguments:
- "--progress_update_timeout"
- parameter:timeout_parameter
- "--side_input"
- side_input:SideInputData
parameters:
timeout_parameter:
source: PipelineParamTimeout
inputs:
InputData:
source: MyMinistInput
side_inputs:
SideInputData:
source: Output4
bind_mode: mount
outputs:
OutputDataStep2:
destination: Output5
datastore: workspaceblobstore
bind_mode: mount
Pipeline con più passaggi
Chiave YAML | Descrizione |
---|---|
steps |
Sequenza di una o più definizioni pipelineStep. Si noti che le destination chiavi di un passaggio outputs diventano le source chiavi del inputs passaggio successivo. |
pipeline:
name: SamplePipelineFromYAML
description: Sample multistep YAML pipeline
data_references:
TitanicDS:
dataset_name: 'titanic_ds'
bind_mode: download
default_compute: cpu-cluster
steps:
Dataprep:
type: "PythonScriptStep"
name: "DataPrep Step"
compute: cpu-cluster
runconfig: ".\\default_runconfig.yml"
script_name: "prep.py"
arguments:
- '--train_path'
- output:train_path
- '--test_path'
- output:test_path
allow_reuse: True
inputs:
titanic_ds:
source: TitanicDS
bind_mode: download
outputs:
train_path:
destination: train_csv
datastore: workspaceblobstore
test_path:
destination: test_csv
Training:
type: "PythonScriptStep"
name: "Training Step"
compute: cpu-cluster
runconfig: ".\\default_runconfig.yml"
script_name: "train.py"
arguments:
- "--train_path"
- input:train_path
- "--test_path"
- input:test_path
inputs:
train_path:
source: train_csv
bind_mode: download
test_path:
source: test_csv
bind_mode: download
Pianificazioni
Quando si definisce la pianificazione per una pipeline, può essere attivata dall'archivio dati o ricorrente in base a un intervallo di tempo. Di seguito sono riportate le chiavi usate per definire una pianificazione:
Chiave YAML | Descrizione |
---|---|
description |
Descrizione della pianificazione. |
recurrence |
Contiene le impostazioni di ricorrenza, se la pianificazione è ricorrente. |
pipeline_parameters |
Tutti i parametri richiesti dalla pipeline. |
wait_for_provisioning |
Indica se attendere il completamento del provisioning della pianificazione. |
wait_timeout |
Numero di secondi di attesa prima del timeout. |
datastore_name |
Archivio dati da monitorare per i BLOB modificati/aggiunti. |
polling_interval |
Tempo, espresso in minuti, tra il polling per i BLOB modificati/aggiunti. Valore predefinito: 5 minuti. Supportato solo per le pianificazioni dell'archivio dati. |
data_path_parameter_name |
Nome del parametro della pipeline del percorso dati da impostare con il percorso BLOB modificato. Supportato solo per le pianificazioni dell'archivio dati. |
continue_on_step_failure |
Indica se continuare l'esecuzione di altri passaggi nella pipeline inviataEsegui se un passaggio ha esito negativo. Se specificato, eseguirà l'override dell'impostazione continue_on_step_failure della pipeline. |
path_on_datastore |
Facoltativo. Percorso dell'archivio dati da monitorare per i BLOB modificati/aggiunti. Il percorso si trova nel contenitore per l'archivio dati, quindi il percorso effettivo monitorato dalla pianificazione è contenitore/path_on_datastore . In caso contrario, il contenitore dell'archivio dati viene monitorato. Le aggiunte o le modifiche apportate in una sottocartella di path_on_datastore non vengono monitorate. Supportato solo per le pianificazioni dell'archivio dati. |
L'esempio seguente contiene la definizione per una pianificazione attivata dall'archivio dati:
Schedule:
description: "Test create with datastore"
recurrence: ~
pipeline_parameters: {}
wait_for_provisioning: True
wait_timeout: 3600
datastore_name: "workspaceblobstore"
polling_interval: 5
data_path_parameter_name: "input_data"
continue_on_step_failure: None
path_on_datastore: "file/path"
Quando si definisce una pianificazione ricorrente, usare le chiavi seguenti in recurrence
:
Chiave YAML | Descrizione |
---|---|
frequency |
Frequenza con cui la pianificazione si ripete. I valori validi sono "Minute" , "Hour" , "Day" , "Week" o "Month" . |
interval |
Frequenza con cui viene attivata la pianificazione. Il valore intero è il numero di unità di tempo da attendere fino a quando la pianificazione non viene nuovamente attivata. |
start_time |
Ora di inizio per la pianificazione. Il formato stringa del valore è YYYY-MM-DDThh:mm:ss . Se non viene fornita alcuna ora di inizio, il primo carico di lavoro viene eseguito immediatamente e i carichi di lavoro futuri vengono eseguiti in base alla pianificazione. Se l'ora di inizio è passata, il primo carico di lavoro viene eseguito al successivo runtime calcolato. |
time_zone |
Fuso orario per l'ora di inizio. Se non viene specificato alcun fuso orario, viene usato UTC. |
hours |
Se frequency è "Day" o "Week" , è possibile specificare uno o più numeri interi da 0 a 23, separati da virgole, come ore del giorno in cui deve essere eseguita la pipeline. Solo time_of_day o hours e minutes possono essere usati. |
minutes |
Se frequency è "Day" o "Week" , è possibile specificare uno o più numeri interi da 0 a 59, separati da virgole, come minuti dell'ora in cui deve essere eseguita la pipeline. Solo time_of_day o hours e minutes possono essere usati. |
time_of_day |
Se frequency è "Day" o "Week" , è possibile specificare un'ora del giorno per l'esecuzione della pianificazione. Il formato stringa del valore è hh:mm . Solo time_of_day o hours e minutes possono essere usati. |
week_days |
Se frequency è "Week" , è possibile specificare uno o più giorni, separati da virgole, quando deve essere eseguita la pianificazione. I valori validi sono "Monday" , "Tuesday" , "Thursday" "Wednesday" , "Friday" , , "Saturday" e "Sunday" . |
L'esempio seguente contiene la definizione per una pianificazione ricorrente:
Schedule:
description: "Test create with recurrence"
recurrence:
frequency: Week # Can be "Minute", "Hour", "Day", "Week", or "Month".
interval: 1 # how often fires
start_time: 2019-06-07T10:50:00
time_zone: UTC
hours:
- 1
minutes:
- 0
time_of_day: null
week_days:
- Friday
pipeline_parameters:
'a': 1
wait_for_provisioning: True
wait_timeout: 3600
datastore_name: ~
polling_interval: ~
data_path_parameter_name: ~
continue_on_step_failure: None
path_on_datastore: ~
Passaggi successivi
Informazioni su come usare l'estensione dell'interfaccia della riga di comando per Azure Machine Learning.