Schéma YAML úlohy kanálu CLI (v1)

PLATÍ PRO: Rozšíření Azure CLI ml v1

Poznámka:

Syntaxe YAML podrobná v tomto dokumentu je založená na schématu JSON pro verzi v1 rozšíření ML CLI. Tato syntaxe je zaručena pouze pro práci s rozšířením ML CLI v1. Přepněte na verzi 2 (aktuální verze) pro syntaxi rozhraní příkazového řádku ML v2.

Důležité

Některé příkazy Azure CLI v tomto článku používají azure-cli-mlrozšíření (nebo v1) pro Azure Machine Learning. Podpora rozšíření v1 skončí 30. září 2025. Do tohoto data budete moct nainstalovat a používat rozšíření v1.

Doporučujeme přejít na mlrozšíření (nebo v2) před 30. zářím 2025. Další informace o rozšíření v2 najdete v tématu Rozšíření Azure ML CLI a Python SDK v2.

Definujte kanály strojového učení v YAML. Při použití rozšíření strojového učení pro Azure CLI v1., mnoho příkazů souvisejících s kanálem očekává soubor YAML, který definuje kanál.

Následující tabulka uvádí, co je a není aktuálně podporováno při definování kanálu v YAML pro použití s rozhraním příkazového řádku v1:

Typ kroku Podporováno?
PythonScriptStep Ano
ParallelRunStep Ano
AdlaStep Ano
AzureBatchStep Ano
DatabricksStep Ano
DataTransferStep Ano
AutoMLStep No
HyperDriveStep No
ModuleStep Ano
MPIStep No
EstimatorStep No

Definice kanálu

Definice kanálu používá následující klíče, které odpovídají třídě Pipelines :

Klíč YAML Popis
name Popis kanálu.
parameters Parametry kanálu.
data_reference Definuje, jak a kde mají být data zpřístupněna při spuštění.
default_compute Výchozí cílový výpočetní objekt, ve kterém se spouští všechny kroky v kanálu.
steps Kroky použité v kanálu.

Parametry

Oddíl parameters používá následující klíče, které odpovídají třídě PipelineParameter :

Klíč YAML Popis
type Typ hodnoty parametru. Platné typy jsou string, , floatint, bool, nebo datapath.
default Výchozí hodnota

Každý parametr má název. Například následující fragment kódu YAML definuje tři parametry s názvem NumIterationsParameter, DataPathParametera 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

Reference pro data

Oddíl data_references používá následující klíče, které odpovídají dataReference:

Klíč YAML Popis
datastore Úložiště dat, na které chcete odkazovat.
path_on_datastore Relativní cesta v záložním úložišti pro odkaz na data.

Každý odkaz na data je obsažen v klíči. Například následující fragment kódu YAML definuje odkaz na data uložená v klíči s názvem 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"

Kroky

Kroky definují výpočetní prostředí spolu se soubory, které se mají spustit v prostředí. K definování typu kroku použijte type klíč:

Typ kroku Popis
AdlaStep Spustí skript U-SQL se službou Azure Data Lake Analytics. Odpovídá třídě AdlaStep.
AzureBatchStep Spouští úlohy pomocí služby Azure Batch. Odpovídá třídě AzureBatchStep.
DatabricsStep Přidá poznámkový blok Databricks, skript Pythonu nebo SOUBOR JAR. Odpovídá třídě DatabricksStep.
DataTransferStep Přenáší data mezi možnostmi úložiště. Odpovídá Třídy DataTransferStep.
PythonScriptStep Spustí skript Pythonu. Odpovídá třídě PythonScriptStep.
ParallelRunStep Spustí skript Pythonu, který zpracovává velké objemy dat asynchronně a paralelně. Odpovídá ParallelRunStep třídy.

Krok ADLA

Klíč YAML Popis
script_name Název skriptu U-SQL (vzhledem k source_directory).
compute Cílový výpočetní objekt Azure Data Lake, který se má použít pro tento krok.
parameters Parametry kanálu.
inputs Vstupy můžou být InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition nebo PipelineDataset.
outputs Výstupy můžou být PipelineData nebo OutputPortBinding.
source_directory Adresář, který obsahuje skript, sestavení atd.
priority Hodnota priority, kterou chcete použít pro aktuální úlohu.
params Slovník párů name-value
degree_of_parallelism Stupeň paralelismu, který se má pro tuto úlohu použít.
runtime_version Verze modulu runtime modulu Data Lake Analytics.
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje definici kroku ADLA:

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

Krok služby Azure Batch

Klíč YAML Popis
compute Cílový výpočetní objekt Služby Azure Batch, který se má použít pro tento krok.
inputs Vstupy můžou být InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition nebo PipelineDataset.
outputs Výstupy můžou být PipelineData nebo OutputPortBinding.
source_directory Adresář, který obsahuje binární soubory modulu, spustitelný soubor, sestavení atd.
executable Název příkazu nebo spustitelného souboru, který bude spuštěn jako součást této úlohy.
create_pool Logický příznak označující, jestli se má fond vytvořit před spuštěním úlohy.
delete_batch_job_after_finish Logický příznak označující, jestli se má úloha po dokončení odstranit z účtu Batch.
delete_batch_pool_after_finish Logický příznak označující, jestli se má fond po dokončení úlohy odstranit.
is_positive_exit_code_failure Logický příznak označující, jestli úloha selže, pokud se úkol ukončí s pozitivním kódem.
vm_image_urn Pokud create_pool je , Truea virtuální počítač používá VirtualMachineConfiguration.
pool_id ID fondu, ve kterém se úloha spustí.
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje definici kroku služby 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

Krok Databricks

Klíč YAML Popis
compute Cílový výpočetní objekt Azure Databricks, který se má použít pro tento krok.
inputs Vstupy můžou být InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition nebo PipelineDataset.
outputs Výstupy můžou být PipelineData nebo OutputPortBinding.
run_name Název v Databricks pro toto spuštění
source_directory Adresář, který obsahuje skript a další soubory.
num_workers Statický počet pracovních procesů pro cluster spuštěný v Databricks.
runconfig Cesta k .runconfig souboru. Tento soubor je reprezentace YAML třídy RunConfiguration . Další informace o struktuře tohoto souboru najdete v tématu runconfigschema.json.
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje krok 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

Krok přenosu dat

Klíč YAML Popis
compute Cílový výpočetní objekt služby Azure Data Factory, který se má použít pro tento krok.
source_data_reference Vstupní připojení, které slouží jako zdroj operací přenosu dat. Podporované hodnoty jsou InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition nebo PipelineDataset.
destination_data_reference Vstupní připojení, které slouží jako cíl operací přenosu dat. Podporované hodnoty jsou PipelineData a OutputPortBinding.
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje krok přenosu dat:

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

Krok skriptu Pythonu

Klíč YAML Popis
inputs Vstupy můžou být InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition nebo PipelineDataset.
outputs Výstupy můžou být PipelineData nebo OutputPortBinding.
script_name Název skriptu Pythonu (vzhledem k source_directory).
source_directory Adresář, který obsahuje skript, prostředí Conda atd.
runconfig Cesta k .runconfig souboru. Tento soubor je reprezentace YAML třídy RunConfiguration . Další informace o struktuře tohoto souboru najdete v tématu runconfig.json.
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje krok skriptu Pythonu:

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

Krok paralelního spuštění

Klíč YAML Popis
inputs Vstupy můžou být Dataset, DatasetDefinition nebo PipelineDataset.
outputs Výstupy můžou být PipelineData nebo OutputPortBinding.
script_name Název skriptu Pythonu (vzhledem k source_directory).
source_directory Adresář, který obsahuje skript, prostředí Conda atd.
parallel_run_config Cesta k parallel_run_config.yml souboru. Tento soubor je reprezentace YAML Třídy ParallelRunConfig .
allow_reuse Určuje, zda má krok znovu použít předchozí výsledky při opětovném spuštění se stejným nastavením.

Následující příklad obsahuje krok paralelního spuštění:

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

Kanál s několika kroky

Klíč YAML Popis
steps Posloupnost jedné nebo více definic PipelineStep Všimněte si, že destination klíče jednoho kroku outputs se stanou klíči source k inputs dalšímu kroku.
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

Plány

Při definování plánu kanálu se může aktivovat úložiště dat nebo se opakovat podle časového intervalu. K definování plánu se používají následující klíče:

Klíč YAML Popis
description Popis plánu
recurrence Obsahuje nastavení opakování, pokud je plán opakovaný.
pipeline_parameters Všechny parametry, které kanál vyžaduje.
wait_for_provisioning Zda se má počkat na dokončení zřizování plánu.
wait_timeout Počet sekund čekání před uplynutím časového limitu.
datastore_name Úložiště dat, které se má monitorovat pro upravené nebo přidané objekty blob.
polling_interval Jak dlouho v minutách mezi dotazováním upravených nebo přidaných objektů blob Výchozí hodnota: 5 minut. Podporováno pouze pro plány úložiště dat.
data_path_parameter_name Název parametru kanálu cesty k datům, který se má nastavit s změněnou cestou k objektu blob. Podporováno pouze pro plány úložiště dat.
continue_on_step_failure Jestli chcete pokračovat v provádění dalších kroků v odeslané službě PipelineRun, pokud se krok nezdaří. V případě potřeby přepíše continue_on_step_failure nastavení kanálu.
path_on_datastore Nepovinné. Cesta k úložišti dat, která se má monitorovat pro upravené nebo přidané objekty blob. Cesta je pod kontejnerem úložiště dat, takže skutečná cesta, kterou monitoruje plány, je kontejner/path_on_datastore. Pokud žádný není, kontejner úložiště dat se monitoruje. Doplňky nebo úpravy provedené v podsložce path_on_datastore nejsou monitorovány. Podporováno pouze pro plány úložiště dat.

Následující příklad obsahuje definici plánu aktivovaného úložištěm dat:

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" 

Při definování plánu opakování použijte následující klíče v části recurrence:

Klíč YAML Popis
frequency Jak často se plán opakuje. Platné hodnoty jsou "Minute", , "Day""Hour", "Week", nebo "Month".
interval Jak často se plán aktivuje. Celočíselná hodnota je počet časových jednotek, které se mají počkat, dokud se plán znovu neaktivuje.
start_time Čas zahájení plánu. Formát řetězce hodnoty je YYYY-MM-DDThh:mm:ss. Pokud není k dispozici žádný čas spuštění, spustí se první úloha okamžitě a budoucí úlohy se spustí podle plánu. Pokud je čas spuštění v minulosti, první úloha se spustí při příštím počítaném čase běhu.
time_zone Časové pásmo počátečního času. Pokud není zadané žádné časové pásmo, použije se UTC.
hours Pokud frequency ano "Day" "Week", můžete zadat jedno nebo více celých čísel od 0 do 23 oddělených čárkami jako hodiny dne, kdy se má kanál spustit. Pouze time_of_day nebo hours a minutes lze je použít.
minutes Pokud frequency ano "Day" "Week", můžete zadat jedno nebo více celých čísel od 0 do 59 oddělených čárkami v minutách hodiny, kdy se má kanál spustit. Pouze time_of_day nebo hours a minutes lze je použít.
time_of_day Pokud frequency ano "Day" "Week", můžete určit denní dobu, po kterou se má plán spustit. Formát řetězce hodnoty je hh:mm. Pouze time_of_day nebo hours a minutes lze je použít.
week_days Pokud frequency ano "Week", můžete zadat jeden nebo více dnů oddělených čárkami, kdy se má plán spustit. Platné hodnoty jsou "Monday", , "Tuesday", "Thursday""Wednesday""Friday", , "Saturday", a "Sunday".

Následující příklad obsahuje definici pro opakovaný plán:

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: ~ 

Další kroky

Naučte se používat rozšíření rozhraní příkazového řádku pro Azure Machine Learning.