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-ml
extensie (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 ml
extensie 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 datapath bool . float int string |
default |
De standaardwaarde. |
Elke parameter heeft de naam. Het volgende YAML-fragment definieert bijvoorbeeld drie parameters met de naam NumIterationsParameter
, DataPathParameter
en 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_directory van). |
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_directory van). |
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.