Megosztás a következőn keresztül:


CLI (v1) folyamatfeladat YAML-sémája

A KÖVETKEZŐre vonatkozik: Azure CLI ml-bővítmény 1-es verzió

Megjegyzés:

A jelen dokumentumban részletezett YAML-szintaxis az ML CLI-bővítmény 1- es verziójának JSON-sémáján alapul. Ez a szintaxis garantáltan csak az ML CLI v1 kiterjesztéssel működik. Váltson a v2 -re (jelenlegi verzió) az ML CLI v2 szintaxisához.

Fontos

A cikkben szereplő Azure CLI-parancsok némelyike az azure-cli-mlAzure Machine Tanulás vagy v1 bővítményét használja. A v1-bővítmény támogatása 2025. szeptember 30-án megszűnik. Addig a dátumig telepítheti és használhatja a v1-bővítményt.

Javasoljuk, hogy 2025. szeptember 30-a előtt váltsa át a ml(vagy v2) bővítményt. További információ a v2-es bővítményről: Azure ML CLI-bővítmény és Python SDK v2.

Határozza meg a gépi tanulási folyamatokat a YAML-ben. Az Azure CLI v1. gépi tanulási bővítményének használatakor a folyamattal kapcsolatos parancsok közül sok olyan YAML-fájlt vár, amely meghatározza a folyamatot.

Az alábbi táblázat azt sorolja fel, hogy mi az, és jelenleg nem támogatott egy folyamat definiálása a YAML-ben a CLI 1-es verzióval való használatához:

Lépés típusa Támogatott?
PythonScriptStep Igen
ParallelRunStep Igen
AdlaStep Igen
AzureBatchStep Igen
DatabricksStep Igen
DataTransferStep Igen
AutoMLStep Nem
HyperDriveStep Nem
ModuleStep Igen
MPIStep Nem
BecslőStep Nem

Folyamatdefiníció

A folyamatdefiníciók a következő kulcsokat használják, amelyek megfelelnek a Pipelines osztálynak :

YAML-kulcs Leírás
name A folyamat leírása.
parameters Paraméter(ek) a folyamathoz.
data_reference Meghatározza, hogy az adatok hogyan és hol legyenek elérhetők futás közben.
default_compute Alapértelmezett számítási cél, ahol a folyamat összes lépése fut.
steps A folyamat lépései.

Parameters

A parameters szakasz az alábbi kulcsokat használja, amelyek a PipelineParameter osztálynak felelnek meg:

YAML-kulcs Leírás
type A paraméter értéktípusa. Az érvényes típusok a következőkstring: , intfloat, boolvagy datapath.
default Az alapértelmezett érték.

Minden paraméter neve el van nevezve. Az alábbi YAML-kódrészlet például három paramétert NumIterationsParameterhatároz meg: DataPathParameterNodeCountParameter

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

Adatreferencia

A data_references szakasz a következő kulcsokat használja, amelyek megfelelnek a DataReference-nek:

YAML-kulcs Leírás
datastore A hivatkozni kívánt adattár.
path_on_datastore A háttértár relatív elérési útja az adathivatkozáshoz.

Minden adathivatkozás egy kulcsban található. A következő YAML-kódrészlet például a következő employee_datakulcsban tárolt adathivatkozást definiálja:

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        employee_data:
            datastore: adftestadla
            path_on_datastore: "adla_sample/sample_input.csv"

Steps

A lépések meghatározzák a számítási környezetet, valamint a környezetben futtatandó fájlokat. A lépés típusának meghatározásához használja a type következő kulcsot:

Lépés típusa Leírás
AdlaStep U-SQL-szkriptet futtat az Azure Data Lake Analytics használatával. Az AdlaStep osztálynak felel meg.
AzureBatchStep Feladatokat futtat az Azure Batch használatával. Az AzureBatchStep osztálynak felel meg.
DatabricsStep Hozzáad egy Databricks-jegyzetfüzetet, Python-szkriptet vagy JAR-t. A DatabricksStep osztálynak felel meg.
DataTransferStep Adattovábbítás a tárolási lehetőségek között. A DataTransferStep osztálynak felel meg.
PythonScriptStep Python-szkriptet futtat. A PythonScriptStep osztálynak felel meg.
ParallelRunStep Python-szkriptet futtat nagy mennyiségű adat aszinkron és párhuzamos feldolgozásához. A ParallelRunStep osztálynak felel meg.

ADLA-lépés

YAML-kulcs Leírás
script_name Az U-SQL-szkript neve (a source_directoryhozzá képest).
compute A lépéshez használni kívánt Azure Data Lake számítási cél.
parameters A folyamat paraméterei .
inputs A bemenetek lehetnek InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition vagy PipelineDataset.
outputs A kimenetek lehetnek PipelineData vagy OutputPortBinding.
source_directory Könyvtár, amely tartalmazza a szkriptet, szerelvényeket stb.
priority Az aktuális feladathoz használandó prioritási érték.
params Név-érték párok szótára.
degree_of_parallelism A feladathoz használandó párhuzamosság mértéke.
runtime_version A Data Lake Analytics-motor futtatókörnyezeti verziója.
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

Az alábbi példa egy ADLA-lépésdefiníciót tartalmaz:

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-lépés

YAML-kulcs Leírás
compute A lépéshez használni kívánt Azure Batch számítási cél.
inputs A bemenetek lehetnek InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition vagy PipelineDataset.
outputs A kimenetek lehetnek PipelineData vagy OutputPortBinding.
source_directory A modul bináris fájljait, végrehajtható, szerelvényeket stb. tartalmazó könyvtár.
executable A feladat részeként futtatandó parancs/végrehajtható parancs neve.
create_pool Logikai jelző, amely jelzi, hogy létre kell-e hozni a készletet a feladat futtatása előtt.
delete_batch_job_after_finish Logikai jelző, amely jelzi, hogy törli-e a feladatot a Batch-fiókból a befejezés után.
delete_batch_pool_after_finish Logikai jelölő, amely jelzi, hogy törli-e a készletet a feladat befejezése után.
is_positive_exit_code_failure Logikai jelző, amely jelzi, hogy a feladat meghiúsul-e, ha a tevékenység pozitív kóddal lép ki.
vm_image_urn Ha create_pool igen True, és a virtuális gép használja VirtualMachineConfiguration.
pool_id Annak a készletnek az azonosítója, ahol a feladat futni fog.
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

Az alábbi példa egy Azure Batch-lépésdefiníciót tartalmaz:

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-lépés

YAML-kulcs Leírás
compute A lépéshez használni kívánt Azure Databricks számítási cél.
inputs A bemenetek lehetnek InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition vagy PipelineDataset.
outputs A kimenetek lehetnek PipelineData vagy OutputPortBinding.
run_name A Databricksben a futtatás neve.
source_directory A szkriptet és más fájlokat tartalmazó könyvtár.
num_workers A Databricks-fürthöz tartozó feldolgozók statikus száma.
runconfig A fájl elérési útja .runconfig . Ez a fájl a RunConfiguration osztály YAML-reprezentációja . A fájl szerkezetével kapcsolatos további információkért lásd: runconfigschema.json.
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

Az alábbi példa egy Databricks-lépést tartalmaz:

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

Adatátviteli lépés

YAML-kulcs Leírás
compute A lépéshez használni kívánt Azure Data Factory számítási cél.
source_data_reference Az adatátviteli műveletek forrásaként szolgáló bemeneti kapcsolat. Támogatott értékek: InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition vagy PipelineDataset.
destination_data_reference Bemeneti kapcsolat, amely az adatátviteli műveletek célhelyeként szolgál. A támogatott értékek a PipelineData és az OutputPortBinding.
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

Az alábbi példa egy adatátviteli lépést tartalmaz:

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-szkript lépése

YAML-kulcs Leírás
inputs A bemenetek lehetnek InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition vagy PipelineDataset.
outputs A kimenetek lehetnek PipelineData vagy OutputPortBinding.
script_name A Python-szkript neve (a hozzá viszonyítva source_directory).
source_directory A szkriptet, a Conda-környezetet stb. tartalmazó könyvtár.
runconfig A fájl elérési útja .runconfig . Ez a fájl a RunConfiguration osztály YAML-reprezentációja . A fájl szerkezetével kapcsolatos további információkért lásd: runconfig.json.
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

A következő példa egy Python-szkriptlépést tartalmaz:

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

Párhuzamos futtatási lépés

YAML-kulcs Leírás
inputs A bemenetek lehetnek adathalmazok, adathalmazdefiníciók vagy PipelineDataset.
outputs A kimenetek lehetnek PipelineData vagy OutputPortBinding.
script_name A Python-szkript neve (a hozzá viszonyítva source_directory).
source_directory A szkriptet, a Conda-környezetet stb. tartalmazó könyvtár.
parallel_run_config A fájl elérési útja parallel_run_config.yml . Ez a fájl a ParallelRunConfig osztály YAML-reprezentációja .
allow_reuse Meghatározza, hogy a lépés újra felhasználja-e a korábbi eredményeket, ha ugyanazokkal a beállításokkal fut újra.

Az alábbi példa egy párhuzamos futtatási lépést tartalmaz:

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

Folyamat több lépéssel

YAML-kulcs Leírás
steps Egy vagy több PipelineStep-definíció sorrendje. Vegye figyelembe, hogy az destination egyik lépés outputs kulcsai lesznek source a inputs következő lépés kulcsai.
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

Ütemezések

A folyamat ütemezésének meghatározásakor az adattároló által aktivált vagy ismétlődő lehet egy időintervallum alapján. Az ütemezés meghatározásához a következő kulcsok használhatók:

YAML-kulcs Leírás
description Az ütemezés leírása.
recurrence Ismétlődési beállításokat tartalmaz, ha az ütemezés ismétlődő.
pipeline_parameters A folyamat által igényelt paraméterek.
wait_for_provisioning Várjon-e az ütemezés üzembe helyezésének befejezésére.
wait_timeout Az időtúllépés előtt várakozni kívánt másodpercek száma.
datastore_name A módosított/hozzáadott blobok figyelésére szolgáló adattár.
polling_interval Mennyi ideig, percek alatt, a módosított/hozzáadott blobok lekérdezése között. Alapértelmezett érték: 5 perc. Csak az adattár-ütemezések esetében támogatott.
data_path_parameter_name Annak az adatútvonal-folyamatparaméternek a neve, amely a módosított blobútvonallal van beállítva. Csak az adattár-ütemezések esetében támogatott.
continue_on_step_failure Azt határozza meg, hogy folytatja-e az elküldött PipelineRun egyéb lépéseinek végrehajtását, ha egy lépés meghiúsul. Ha meg van adva, felülbírálja a continue_on_step_failure folyamat beállítását.
path_on_datastore Opcionális. A módosított/hozzáadott blobok figyeléséhez használt adattár elérési útja. Az elérési út az adattár tárolója alatt található, így az ütemezési monitorok tényleges elérési útja tároló/path_on_datastore. Ha nincs, az adattár tárolója figyelve lesz. A rendszer nem figyeli az path_on_datastore almappában végrehajtott kiegészítéseket/módosításokat. Csak az adattár-ütemezések esetében támogatott.

Az alábbi példa egy adattár által aktivált ütemezés definícióját tartalmazza:

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" 

Ismétlődő ütemezés definiálásakor használja a következő kulcsokat a következő területenrecurrence:

YAML-kulcs Leírás
frequency Milyen gyakran ismétlődik az ütemezés. Az érvényes értékek a következők"Minute": , "Hour""Day", "Week"vagy "Month".
interval Milyen gyakran gyullad ki az ütemezés. Az egész szám azon időegységek száma, amíg az ütemezés újra be nem omlik.
start_time Az ütemezés kezdési időpontja. Az érték sztringformátuma.YYYY-MM-DDThh:mm:ss Ha nincs megadva kezdési idő, az első számítási feladat azonnal lefut, és a jövőbeli számítási feladatok az ütemezés alapján lesznek futtatva. Ha a kezdési időpont a múltban van, az első számítási feladat a következő számított futási időpontban lesz futtatva.
time_zone A kezdési időpont időzónája. Ha nincs megadva időzóna, a rendszer UTC-t használ.
hours Ha frequency igen "Day""Week", akkor megadhat egy vagy több egész számot 0-tól 23-ig, vesszővel elválasztva, a folyamat futtatásának napjának óráiként. Csak time_of_day vagy hoursminutes használható.
minutes Ha frequency igen "Day""Week", megadhat egy vagy több egész számot 0 és 59 között, vesszővel elválasztva, a folyamat futásának perceiként. Csak time_of_day vagy hoursminutes használható.
time_of_day Ha frequency igen "Day""Week", megadhatja az ütemezés futtatásának napját. Az érték sztringformátuma.hh:mm Csak time_of_day vagy hoursminutes használható.
week_days Ha frequency igen "Week", megadhat egy vagy több napot vesszővel elválasztva, amikor az ütemezésnek futnia kell. Az érvényes értékek a következők"Monday": , "Tuesday", "Wednesday""Thursday", "Friday", "Saturday"és "Sunday".

Az alábbi példa egy ismétlődő ütemezés definícióját tartalmazza:

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

További lépések

Megtudhatja, hogyan használhatja az Azure Machine Tanulás CLI-bővítményét.