Delen via


YAML-schema voor CLI-pijplijntaak (v1)

VAN TOEPASSING OP: Azure CLI ml-extensie v1

Notitie

De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de v1-versie van de ML CLI-extensie. Deze syntaxis werkt gegarandeerd alleen met de ML CLI v1-extensie. Schakel over naar de v2 (huidige versie) voor de syntaxis voor ML CLI v2.

Belangrijk

Sommige Azure CLI-opdrachten in dit artikel gebruiken de azure-cli-mlextensie (of v1) voor Azure Machine Learning. Ondersteuning voor de v1-extensie eindigt op 30 september 2025. U kunt de v1-extensie tot die datum installeren en gebruiken.

U wordt aangeraden vóór 30 september 2025 over te stappen op de mlextensie of v2. Zie de Azure Machine Learning CLI-extensie en Python SDK v2 voor meer informatie over de v2-extensie.

Definieer uw machine learning-pijplijnen in YAML. Wanneer u de machine learning-extensie voor Azure CLI v1 gebruikt, verwachten veel van de opdrachten met betrekking tot pijplijnen een YAML-bestand dat de pijplijn definieert.

In de volgende tabel wordt vermeld wat en momenteel niet wordt ondersteund bij het definiëren van een pijplijn in YAML voor gebruik met CLI v1:

Staptype Ondersteund?
PythonScriptStep Ja
ParallelRunStep Ja
AdlaStep Ja
AzureBatchStep Ja
DatabricksStep Ja
DataTransferStep Ja
AutoMLStep Nee
HyperDriveStep Nee
ModuleStep Ja
MPIStep Nee
EstimatorStep Nee

Pijplijndefinitie

Een pijplijndefinitie maakt gebruik van de volgende sleutels, die overeenkomen met de klasse Pipelines :

YAML-sleutel Beschrijving
name De beschrijving van de pijplijn.
parameters Parameter(s) naar de pijplijn.
data_reference Definieert hoe en waar gegevens beschikbaar moeten worden gesteld in een uitvoering.
default_compute Standaard rekendoel waarbij alle stappen in de pijplijn worden uitgevoerd.
steps De stappen die in de pijplijn worden gebruikt.

Parameters

In parameters de sectie worden de volgende sleutels gebruikt, die overeenkomen met de klasse PipelineParameter :

YAML-sleutel Beschrijving
type Het waardetype van de parameter. Geldige typen zijn, , , of datapathbool. floatintstring
default De standaardwaarde.

Elke parameter heeft de naam. Het volgende YAML-fragment definieert bijvoorbeeld drie parameters met de naam NumIterationsParameter, DataPathParameteren 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

Verwijzing naar gegevens

In data_references de sectie worden de volgende sleutels gebruikt, die overeenkomen met de DataReference:

YAML-sleutel Beschrijving
datastore Het gegevensarchief waarnaar moet worden verwezen.
path_on_datastore Het relatieve pad in de back-upopslag voor de gegevensverwijzing.

Elke gegevensreferentie bevindt zich in een sleutel. Met het volgende YAML-fragment wordt bijvoorbeeld een gegevensreferentie gedefinieerd die is opgeslagen in de sleutel met de naam 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"

Stappen

Stappen definiëren een rekenomgeving, samen met de bestanden die in de omgeving moeten worden uitgevoerd. Gebruik de type sleutel om het type stap te definiëren:

Staptype Beschrijving
AdlaStep Voert een U-SQL-script uit met Azure Data Lake Analytics. Komt overeen met de klasse AdlaStep .
AzureBatchStep Voert taken uit met behulp van Azure Batch. Komt overeen met de klasse AzureBatchStep .
DatabricsStep Hiermee voegt u een Databricks-notebook, Python-script of JAR toe. Komt overeen met de databricksStep-klasse .
DataTransferStep Hiermee worden gegevens overgedragen tussen opslagopties. Komt overeen met de klasse DataTransferStep .
PythonScriptStep Voert een Python-script uit. Komt overeen met de pythonScriptStep-klasse .
ParallelRunStep Voert een Python-script uit om grote hoeveelheden gegevens asynchroon en parallel te verwerken. Komt overeen met de klasse ParallelRunStep .

ADLA-stap

YAML-sleutel Beschrijving
script_name De naam van het U-SQL-script (ten opzichte van de source_directory).
compute Het Azure Data Lake-rekendoel dat voor deze stap moet worden gebruikt.
parameters Parameters voor de pijplijn.
inputs Invoer kan InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition of PipelineDataset zijn.
outputs Uitvoer kan PipelineData of OutputPortBinding zijn.
source_directory Map die het script, assembly's, enzovoort bevat.
priority De prioriteitswaarde die moet worden gebruikt voor de huidige taak.
params Woordenlijst van naam-waardeparen.
degree_of_parallelism De mate van parallelle uitvoering die voor deze taak moet worden gebruikt.
runtime_version De runtimeversie van de Data Lake Analytics-engine.
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een ADLA-stapdefinitie:

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

Azure Batch-stap

YAML-sleutel Beschrijving
compute Het Azure Batch-rekendoel dat voor deze stap moet worden gebruikt.
inputs Invoer kan InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition of PipelineDataset zijn.
outputs Uitvoer kan PipelineData of OutputPortBinding zijn.
source_directory Map die de binaire modulebestanden, uitvoerbare bestanden, assembly's, enzovoort bevat.
executable Naam van de opdracht/het uitvoerbare bestand dat wordt uitgevoerd als onderdeel van deze taak.
create_pool Booleaanse vlag om aan te geven of de pool moet worden gemaakt voordat de taak wordt uitgevoerd.
delete_batch_job_after_finish Booleaanse vlag om aan te geven of de taak moet worden verwijderd uit het Batch-account nadat deze is voltooid.
delete_batch_pool_after_finish Booleaanse vlag om aan te geven of de pool moet worden verwijderd nadat de taak is voltooid.
is_positive_exit_code_failure Booleaanse vlag om aan te geven of de taak mislukt als de taak wordt afgesloten met een positieve code.
vm_image_urn Als create_pool dat het is True, en vm gebruikt VirtualMachineConfiguration.
pool_id De id van de pool waarop de taak wordt uitgevoerd.
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een Azure Batch-stapdefinitie:

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

Databricks-stap

YAML-sleutel Beschrijving
compute Het Rekendoel van Azure Databricks dat voor deze stap moet worden gebruikt.
inputs Invoer kan InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition of PipelineDataset zijn.
outputs Uitvoer kan PipelineData of OutputPortBinding zijn.
run_name De naam in Databricks voor deze uitvoering.
source_directory Map die het script en andere bestanden bevat.
num_workers Het statische aantal werkrollen voor het Databricks-runcluster.
runconfig Het pad naar een .runconfig bestand. Dit bestand is een YAML-weergave van de RunConfiguration-klasse . Zie runconfigschema.json voor meer informatie over de structuur van dit bestand.
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een Databricks-stap:

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

Stap voor gegevensoverdracht

YAML-sleutel Beschrijving
compute Het Rekendoel van Azure Data Factory dat voor deze stap moet worden gebruikt.
source_data_reference Invoerverbinding die fungeert als de bron van gegevensoverdrachtbewerkingen. Ondersteunde waarden zijn InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition of PipelineDataset.
destination_data_reference Invoerverbinding die fungeert als de bestemming van bewerkingen voor gegevensoverdracht. Ondersteunde waarden zijn PipelineData en OutputPortBinding.
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een stap voor gegevensoverdracht:

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

Python-scriptstap

YAML-sleutel Beschrijving
inputs Invoer kan InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition of PipelineDataset zijn.
outputs Uitvoer kan PipelineData of OutputPortBinding zijn.
script_name De naam van het Python-script (ten opzichte source_directoryvan).
source_directory Map die het script, de Conda-omgeving, enzovoort bevat.
runconfig Het pad naar een .runconfig bestand. Dit bestand is een YAML-weergave van de RunConfiguration-klasse . Zie runconfig.json voor meer informatie over de structuur van dit bestand.
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een Python-scriptstap:

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

Stap voor parallelle uitvoering

YAML-sleutel Beschrijving
inputs Invoer kan gegevensset, DatasetDefinition of PipelineDataset zijn.
outputs Uitvoer kan PipelineData of OutputPortBinding zijn.
script_name De naam van het Python-script (ten opzichte source_directoryvan).
source_directory Map die het script, de Conda-omgeving, enzovoort bevat.
parallel_run_config Het pad naar een parallel_run_config.yml bestand. Dit bestand is een YAML-weergave van de klasse ParallelRunConfig .
allow_reuse Bepaalt of de stap eerdere resultaten opnieuw moet gebruiken wanneer deze opnieuw wordt uitgevoerd met dezelfde instellingen.

Het volgende voorbeeld bevat een parallelle uitvoeringsstap:

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

Pijplijn met meerdere stappen

YAML-sleutel Beschrijving
steps Reeks van een of meer PipelineStep-definities. Houd er rekening mee dat de destination sleutels van één stap outputs de source sleutels worden voor de inputs volgende stap.
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

Planningen

Wanneer u het schema voor een pijplijn definieert, kan het gegevensarchief worden geactiveerd of terugkerend op basis van een tijdsinterval. Hier volgen de sleutels die worden gebruikt om een schema te definiëren:

YAML-sleutel Beschrijving
description Een beschrijving van de planning.
recurrence Bevat terugkeerpatrooninstellingen als de planning terugkerend is.
pipeline_parameters Parameters die vereist zijn voor de pijplijn.
wait_for_provisioning Of u moet wachten tot de inrichting van de planning is voltooid.
wait_timeout Het aantal seconden dat moet worden gewacht voordat er een time-out optreedt.
datastore_name Het gegevensarchief dat moet worden bewaakt op gewijzigde/toegevoegde blobs.
polling_interval Hoe lang, in minuten, tussen polling voor gewijzigde/toegevoegde blobs. Standaardwaarde: 5 minuten. Alleen ondersteund voor schema's voor gegevensarchieven.
data_path_parameter_name De naam van de pijplijnparameter voor het gegevenspad dat moet worden ingesteld met het gewijzigde blobpad. Alleen ondersteund voor schema's voor gegevensarchieven.
continue_on_step_failure Of u wilt doorgaan met het uitvoeren van andere stappen in de ingediende PipelineRun als een stap mislukt. Indien opgegeven, wordt de continue_on_step_failure instelling van de pijplijn overschreven.
path_on_datastore Optioneel. Het pad in het gegevensarchief om te controleren op gewijzigde/toegevoegde blobs. Het pad bevindt zich onder de container voor het gegevensarchief, dus het werkelijke pad dat de planningsmonitoren volgen, is container/path_on_datastore. Als er geen is, wordt de container voor het gegevensarchief bewaakt. Toevoegingen/wijzigingen die zijn aangebracht in een submap van de app path_on_datastore worden niet bewaakt. Alleen ondersteund voor schema's voor gegevensarchieven.

Het volgende voorbeeld bevat de definitie voor een schema dat door een gegevensarchief wordt geactiveerd:

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" 

Wanneer u een terugkerend schema definieert, gebruikt u de volgende sleutels onder recurrence:

YAML-sleutel Beschrijving
frequency Hoe vaak de planning terugkeert. Geldige waarden zijn, , , of "Month""Week". "Day""Hour""Minute"
interval Hoe vaak de planning wordt geactiveerd. De waarde van het gehele getal is het aantal tijdseenheden dat moet worden gewacht totdat het schema opnieuw wordt geactiveerd.
start_time De begintijd voor de planning. De tekenreeksindeling van de waarde is YYYY-MM-DDThh:mm:ss. Als er geen begintijd wordt opgegeven, wordt de eerste workload direct uitgevoerd en worden toekomstige workloads uitgevoerd op basis van het schema. Als de begintijd zich in het verleden bevindt, wordt de eerste workload uitgevoerd bij de volgende berekende uitvoeringstijd.
time_zone De tijdzone voor de begintijd. Als er geen tijdzone is opgegeven, wordt UTC gebruikt.
hours Als frequency dat het geval is "Day" , "Week"kunt u een of meer gehele getallen opgeven van 0 tot 23, gescheiden door komma's, als de uren van de dag waarop de pijplijn moet worden uitgevoerd. Alleen time_of_day of hours en minutes kan worden gebruikt.
minutes Als frequency dat het geval is "Day" , "Week"kunt u een of meer gehele getallen opgeven van 0 tot 59, gescheiden door komma's, als de minuten van het uur waarop de pijplijn moet worden uitgevoerd. Alleen time_of_day of hours en minutes kan worden gebruikt.
time_of_day Als frequency dat het is "Day" of "Week", kunt u een tijdstip opgeven waarop de planning moet worden uitgevoerd. De tekenreeksindeling van de waarde is hh:mm. Alleen time_of_day of hours en minutes kan worden gebruikt.
week_days Als frequency dat het geval is "Week", kunt u een of meer dagen opgeven, gescheiden door komma's, wanneer de planning moet worden uitgevoerd. Geldige waarden zijn"Monday", , "Tuesday""Wednesday", "Thursday", , "Friday", en "Saturday""Sunday".

Het volgende voorbeeld bevat de definitie voor een terugkerend schema:

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

Volgende stappen

Meer informatie over het gebruik van de CLI-extensie voor Azure Machine Learning.