Condividi tramite


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 dei comandi dell'interfaccia della riga di comando di Azure in questo articolo usano l'estensione azure-cli-ml, o v1 per Azure Machine Learning. Il supporto per l'estensione v1 terminerà il 30 settembre 2025. Sarà possibile installare e usare l'estensione v1 fino a tale data.

È consigliabile passare all'estensione , o v2, prima del ml30 settembre 2025. Per altre informazioni sull'estensione v2, vedere Estensione dell'interfaccia della riga di comando di Azure ML 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
ParallelRunStep
AdlaStep
AzureBatchStep
DatabricksStep
DataTransferStep
AutoMLStep No
HyperDriveStep No
ModuleStep
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, floatint, bool, o datapath.
default Valore predefinito.

Ogni parametro è denominato. Ad esempio, il frammento YAML seguente definisce tre parametri denominati NumIterationsParameter, DataPathParametere 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 è Truee 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 parallela

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.