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-ml
tillä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 ml
tillä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 , bool eller datapath . |
default |
Standardvärdet. |
Varje parameter namnges. Följande YAML-kodfragment definierar till exempel tre parametrar med namnet NumIterationsParameter
, DataPathParameter
och 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.