Dela via


YAML-schema för CLI-pipelinejobb (v1)

GÄLLER FÖR: Azure CLI ml-tillägget v1

Kommentar

YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för v1-versionen av ML CLI-tillägget. Den här syntaxen fungerar garanterat endast med ML CLI v1-tillägget. Växla till v2 (aktuell version) för syntaxen för ML CLI v2.

Viktigt!

Några av Azure CLI-kommandona i den här artikeln använder azure-cli-mltillägget , eller v1, för Azure Mašinsko učenje. Stödet för v1-tillägget upphör den 30 september 2025. Du kommer att kunna installera och använda v1-tillägget fram till det datumet.

Vi rekommenderar att du övergår till mltillägget , eller v2, före den 30 september 2025. Mer information om v2-tillägget finns i Azure ML CLI-tillägget och Python SDK v2.

Definiera dina maskininlärningspipelines i YAML. När du använder maskininlärningstillägget för Azure CLI v1 förväntar sig många av de pipelinerelaterade kommandona en YAML-fil som definierar pipelinen.

I följande tabell visas vad som är och inte stöds för närvarande när du definierar en pipeline i YAML för användning med CLI v1:

Stegtyp Stöds?
PythonScriptStep Ja
ParallelRunStep Ja
AdlaStep Ja
AzureBatchStep Ja
DatabricksStep Ja
DataTransferStep Ja
AutoMLStep Nej
HyperDriveStep Nej
ModuleStep Ja
MPIStep Nej
EstimatorStep Nej

Pipelinedefinition

En pipelinedefinition använder följande nycklar, vilket motsvarar klassen Pipelines :

YAML-nyckel beskrivning
name Beskrivningen av pipelinen.
parameters Parametrar till pipelinen.
data_reference Definierar hur och var data ska göras tillgängliga i en körning.
default_compute Standardberäkningsmål där alla steg i pipelinekörningen.
steps Stegen som används i pipelinen.

Parametrar

Avsnittet parameters använder följande nycklar, som motsvarar klassen PipelineParameter :

YAML-nyckel beskrivning
type Parameterns värdetyp. Giltiga typer är string, int, float, booleller datapath.
default Standardvärdet.

Varje parameter namnges. Följande YAML-kodfragment definierar till exempel tre parametrar med namnet NumIterationsParameter, DataPathParameteroch 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

Datareferens

I data_references avsnittet används följande nycklar, vilket motsvarar DataReference:

YAML-nyckel beskrivning
datastore Det datalager som ska refereras till.
path_on_datastore Den relativa sökvägen i säkerhetskopieringslagringen för datareferensen.

Varje datareferens finns i en nyckel. Följande YAML-kodfragment definierar till exempel en datareferens som lagras i nyckeln med namnet 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"

Steg

Steg definierar en beräkningsmiljö, tillsammans med de filer som ska köras i miljön. Om du vill definiera typen av ett steg använder du type nyckeln:

Stegtyp beskrivning
AdlaStep Kör ett U-SQL-skript med Azure Data Lake Analytics. Motsvarar klassen AdlaStep .
AzureBatchStep Kör jobb med Hjälp av Azure Batch. Motsvarar klassen AzureBatchStep .
DatabricsStep Lägger till en Databricks-anteckningsbok, Python-skript eller JAR. Motsvarar klassen DatabricksStep .
DataTransferStep Överför data mellan lagringsalternativ. Motsvarar klassen DataTransferStep .
PythonScriptStep Kör ett Python-skript. Motsvarar klassen PythonScriptStep .
ParallelRunStep Kör ett Python-skript för att bearbeta stora mängder data asynkront och parallellt. Motsvarar klassen ParallelRunStep .

ADLA-steg

YAML-nyckel beskrivning
script_name Namnet på U-SQL-skriptet (i förhållande till source_directory).
compute Beräkningsmålet för Azure Data Lake som ska användas för det här steget.
parameters Parametrar till pipelinen.
inputs Indata kan vara InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition eller PipelineDataset.
outputs Utdata kan vara antingen PipelineData eller OutputPortBinding.
source_directory Katalog som innehåller skriptet, sammansättningar osv.
priority Det prioritetsvärde som ska användas för det aktuella jobbet.
params Ordlista med namn/värde-par.
degree_of_parallelism Graden av parallellitet som ska användas för det här jobbet.
runtime_version Körningsversionen av Data Lake Analytics-motorn.
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller en ADLA-stegdefinition:

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-steg

YAML-nyckel beskrivning
compute Det Azure Batch-beräkningsmål som ska användas för det här steget.
inputs Indata kan vara InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition eller PipelineDataset.
outputs Utdata kan vara antingen PipelineData eller OutputPortBinding.
source_directory Katalog som innehåller modulen binärfiler, körbara filer, sammansättningar osv.
executable Namnet på kommandot/den körbara fil som ska köras som en del av det här jobbet.
create_pool Boolesk flagga för att ange om poolen ska skapas innan jobbet körs.
delete_batch_job_after_finish Boolesk flagga för att ange om jobbet ska tas bort från Batch-kontot när det är klart.
delete_batch_pool_after_finish Boolesk flagga för att ange om poolen ska tas bort när jobbet har slutförts.
is_positive_exit_code_failure Boolesk flagga som anger om jobbet misslyckas om aktiviteten avslutas med en positiv kod.
vm_image_urn Om create_pool är True, och den virtuella datorn använder VirtualMachineConfiguration.
pool_id ID:t för poolen där jobbet ska köras.
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller en Azure Batch-stegdefinition:

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-steg

YAML-nyckel beskrivning
compute Azure Databricks-beräkningsmålet som ska användas för det här steget.
inputs Indata kan vara InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition eller PipelineDataset.
outputs Utdata kan vara antingen PipelineData eller OutputPortBinding.
run_name Namnet i Databricks för den här körningen.
source_directory Katalog som innehåller skriptet och andra filer.
num_workers Det statiska antalet arbetare för Databricks-kör-klustret.
runconfig Sökvägen till en .runconfig fil. Den här filen är en YAML-representation av klassen RunConfiguration . Mer information om strukturen för den här filen finns i runconfigschema.json.
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller ett Databricks-steg:

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

Dataöverföringssteg

YAML-nyckel beskrivning
compute Beräkningsmålet för Azure Data Factory som ska användas för det här steget.
source_data_reference Indataanslutning som fungerar som källa för dataöverföringsåtgärder. Värden som stöds är InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition eller PipelineDataset.
destination_data_reference Indataanslutning som fungerar som mål för dataöverföringsåtgärder. Värden som stöds är PipelineData och OutputPortBinding.
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller ett dataöverföringssteg:

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-skriptsteg

YAML-nyckel beskrivning
inputs Indata kan vara InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition eller PipelineDataset.
outputs Utdata kan vara antingen PipelineData eller OutputPortBinding.
script_name Namnet på Python-skriptet (i förhållande till source_directory).
source_directory Katalog som innehåller skriptet, Conda-miljön osv.
runconfig Sökvägen till en .runconfig fil. Den här filen är en YAML-representation av klassen RunConfiguration . Mer information om filens struktur finns i runconfig.json.
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller ett Python-skriptsteg:

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

Steg för parallell körning

YAML-nyckel beskrivning
inputs Indata kan vara Datauppsättning, DatasetDefinition eller PipelineDataset.
outputs Utdata kan vara antingen PipelineData eller OutputPortBinding.
script_name Namnet på Python-skriptet (i förhållande till source_directory).
source_directory Katalog som innehåller skriptet, Conda-miljön osv.
parallel_run_config Sökvägen till en parallel_run_config.yml fil. Den här filen är en YAML-representation av klassen ParallelRunConfig .
allow_reuse Avgör om steget ska återanvända tidigare resultat när det körs igen med samma inställningar.

Följande exempel innehåller ett steg för parallell körning:

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 med flera steg

YAML-nyckel beskrivning
steps Sekvens med en eller flera PipelineStep-definitioner. Observera att nycklarna i destination ett steg har outputs blivit source nycklarna till inputs nästa steg.
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

Scheman

När du definierar schemat för en pipeline kan det vara antingen datalagerutlöst eller återkommande baserat på ett tidsintervall. Följande är de nycklar som används för att definiera ett schema:

YAML-nyckel beskrivning
description En beskrivning av schemat.
recurrence Innehåller upprepningsinställningar om schemat är återkommande.
pipeline_parameters Alla parametrar som krävs av pipelinen.
wait_for_provisioning Om du vill vänta tills schemat har etablerats.
wait_timeout Antal sekunder att vänta innan tidsgränsen är ute.
datastore_name Det datalager som ska övervakas för ändrade/tillagda blobar.
polling_interval Hur länge, i minuter, mellan avsökning för ändrade/tillagda blobar. Standardvärde: 5 minuter. Stöds endast för datalagerscheman.
data_path_parameter_name Namnet på den pipelineparameter för datasökväg som ska anges med den ändrade blobsökvägen. Stöds endast för datalagerscheman.
continue_on_step_failure Om du vill fortsätta körningen av andra steg i den skickade PipelineRun om ett steg misslyckas. Om det anges åsidosätter continue_on_step_failure du inställningen för pipelinen.
path_on_datastore Valfritt. Sökvägen till det datalager som ska övervakas för ändrade/tillagda blobar. Sökvägen finns under containern för datalagringen, så den faktiska sökvägen som schemaövervakarna är container/path_on_datastore. Om ingen, övervakas datalagercontainern. Tillägg/ändringar som görs i en undermapp path_on_datastore till övervakas inte. Stöds endast för datalagerscheman.

Följande exempel innehåller definitionen för ett datalagerutlöst schema:

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" 

När du definierar ett återkommande schema använder du följande nycklar under recurrence:

YAML-nyckel beskrivning
frequency Hur ofta schemat återkommer. Giltiga värden är "Minute", "Hour", "Day", "Week"eller "Month".
interval Hur ofta schemat utlöses. Heltalsvärdet är antalet tidsenheter som ska vänta tills schemat utlöses igen.
start_time Starttiden för schemat. Strängformatet för värdet är YYYY-MM-DDThh:mm:ss. Om ingen starttid anges körs den första arbetsbelastningen direkt och framtida arbetsbelastningar körs baserat på schemat. Om starttiden är tidigare körs den första arbetsbelastningen vid nästa beräknade körningstid.
time_zone Tidszonen för starttiden. Om ingen tidszon anges används UTC.
hours Om frequency är "Day" eller "Week"kan du ange ett eller flera heltal från 0 till 23, avgränsade med kommatecken, som de timmar på dagen då pipelinen ska köras. Endast time_of_day eller hours och minutes kan användas.
minutes Om frequency är "Day" eller "Week"kan du ange ett eller flera heltal från 0 till 59, avgränsade med kommatecken, som minuter i timmen då pipelinen ska köras. Endast time_of_day eller hours och minutes kan användas.
time_of_day Om frequency är "Day" eller "Week"kan du ange en tid på dagen för schemat som ska köras. Strängformatet för värdet är hh:mm. Endast time_of_day eller hours och minutes kan användas.
week_days Om frequency är "Week"kan du ange en eller flera dagar, avgränsade med kommatecken, när schemat ska köras. Giltiga värden är "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"och "Sunday".

Följande exempel innehåller definitionen för ett återkommande 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: ~ 

Nästa steg

Lär dig hur du använder CLI-tillägget för Azure Mašinsko učenje.