Schemat YAML zadania potoku interfejsu wiersza polecenia (wersja 1)
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 1
Uwaga
Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla wersji 1 rozszerzenia interfejsu wiersza polecenia uczenia maszynowego. Ta składnia jest gwarantowana tylko do pracy z rozszerzeniem interfejsu wiersza polecenia uczenia maszynowego w wersji 1. Przejdź do wersji 2 (bieżąca wersja) dla składni interfejsu wiersza polecenia uczenia maszynowego w wersji 2.
Ważne
Niektóre polecenia interfejsu wiersza polecenia platformy Azure w tym artykule używają azure-cli-ml
rozszerzenia , lub w wersji 1 dla usługi Azure Machine Learning. Obsługa rozszerzenia w wersji 1 zakończy się 30 września 2025 r. Będzie można zainstalować rozszerzenie v1 i używać go do tej daty.
Zalecamy przejście do ml
rozszerzenia , lub w wersji 2 przed 30 września 2025 r. Aby uzyskać więcej informacji na temat rozszerzenia w wersji 2, zobacz Rozszerzenie interfejsu wiersza polecenia usługi Azure ML i zestaw Python SDK w wersji 2.
Zdefiniuj potoki uczenia maszynowego w języku YAML. W przypadku korzystania z rozszerzenia uczenia maszynowego dla interfejsu wiersza polecenia platformy Azure w wersji 1. wiele poleceń związanych z potokiem oczekuje pliku YAML definiującego potok.
Poniższa tabela zawiera listę elementów, które nie są obecnie obsługiwane podczas definiowania potoku w języku YAML do użycia z interfejsem wiersza polecenia w wersji 1:
Typ kroku | Obsługiwane? |
---|---|
PythonScriptStep | Tak |
ParallelRunStep | Tak |
AdlaStep | Tak |
AzureBatchStep | Tak |
DatabricksStep | Tak |
DataTransferStep | Tak |
AutoMLStep | Nie. |
HyperDriveStep | Nie. |
ModuleStep | Tak |
MPIStep | Nie. |
Narzędzie do szacowaniaKrok | Nie. |
Definicja potoku
Definicja potoku używa następujących kluczy, które odpowiadają klasie Pipelines :
Klucz YAML | opis |
---|---|
name |
Opis potoku. |
parameters |
Parametry do potoku. |
data_reference |
Definiuje, jak i gdzie dane powinny być udostępniane w przebiegu. |
default_compute |
Domyślny docelowy obiekt obliczeniowy, w którym wszystkie kroki w przebiegu potoku. |
steps |
Kroki używane w potoku. |
Parametry
Sekcja parameters
używa następujących kluczy, które odpowiadają klasie PipelineParameter :
Klucz YAML | opis |
---|---|
type |
Typ wartości parametru. Prawidłowe typy to string , , float int , bool lub datapath . |
default |
Wartość domyślna. |
Każdy parametr ma nazwę. Na przykład poniższy fragment kodu YAML definiuje trzy parametry o nazwie NumIterationsParameter
, DataPathParameter
i 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
Opis danych
W data_references
sekcji używane są następujące klucze, które odpowiadają funkcji DataReference:
Klucz YAML | opis |
---|---|
datastore |
Magazyn danych do odwołania. |
path_on_datastore |
Ścieżka względna w magazynie zapasowym dla odwołania do danych. |
Każde odwołanie do danych znajduje się w kluczu. Na przykład poniższy fragment kodu YAML definiuje odwołanie do danych przechowywane w kluczu o nazwie 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"
Kroki
Kroki definiują środowisko obliczeniowe wraz z plikami, które mają być uruchamiane w środowisku. Aby zdefiniować typ kroku, użyj type
klucza:
Typ kroku | opis |
---|---|
AdlaStep |
Uruchamia skrypt U-SQL za pomocą usługi Azure Data Lake Analytics. Odpowiada klasie AdlaStep. |
AzureBatchStep |
Uruchamia zadania przy użyciu usługi Azure Batch. Odpowiada klasie AzureBatchStep. |
DatabricsStep |
Dodaje notes usługi Databricks, skrypt języka Python lub plik JAR. Odpowiada klasie DatabricksStep. |
DataTransferStep |
Transferuje dane między opcjami magazynu. Odpowiada klasie DataTransferStep. |
PythonScriptStep |
Uruchamia skrypt języka Python. Odpowiada klasie PythonScriptStep. |
ParallelRunStep |
Uruchamia skrypt języka Python, aby przetwarzać duże ilości danych asynchronicznie i równolegle. Odpowiada klasie ParallelRunStep. |
Krok ADLA
Klucz YAML | opis |
---|---|
script_name |
Nazwa skryptu U-SQL (względem elementu source_directory ). |
compute |
Docelowy obiekt obliczeniowy usługi Azure Data Lake do użycia w tym kroku. |
parameters |
Parametry potoku. |
inputs |
Dane wejściowe to InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition lub PipelineDataset. |
outputs |
Dane wyjściowe mogą mieć wartość PipelineData lub OutputPortBinding. |
source_directory |
Katalog zawierający skrypt, zestawy itp. |
priority |
Wartość priorytetu do użycia dla bieżącego zadania. |
params |
Słownik par nazwa-wartość. |
degree_of_parallelism |
Stopień równoległości do użycia w tym zadaniu. |
runtime_version |
Wersja środowiska uruchomieniowego aparatu usługi Data Lake Analytics. |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera definicję kroku usługi ADLA:
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
Krok usługi Azure Batch
Klucz YAML | opis |
---|---|
compute |
Docelowy obiekt obliczeniowy usługi Azure Batch do użycia w tym kroku. |
inputs |
Dane wejściowe to InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition lub PipelineDataset. |
outputs |
Dane wyjściowe mogą mieć wartość PipelineData lub OutputPortBinding. |
source_directory |
Katalog zawierający pliki binarne modułu, plik wykonywalny, zestawy itp. |
executable |
Nazwa polecenia/pliku wykonywalnego, który zostanie uruchomiony w ramach tego zadania. |
create_pool |
Flaga logiczna wskazująca, czy należy utworzyć pulę przed uruchomieniem zadania. |
delete_batch_job_after_finish |
Flaga logiczna wskazująca, czy zadanie ma zostać usunięte z konta usługi Batch po zakończeniu. |
delete_batch_pool_after_finish |
Flaga logiczna wskazująca, czy usunąć pulę po zakończeniu zadania. |
is_positive_exit_code_failure |
Flaga logiczna wskazująca, czy zadanie zakończy się niepowodzeniem, jeśli zadanie zakończy się z kodem dodatnim. |
vm_image_urn |
Jeśli create_pool parametr to True , a maszyna wirtualna używa polecenia VirtualMachineConfiguration . |
pool_id |
Identyfikator puli, w której zostanie uruchomione zadanie. |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera definicję kroku usługi Azure Batch:
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
Krok usługi Databricks
Klucz YAML | opis |
---|---|
compute |
Docelowy obiekt obliczeniowy usługi Azure Databricks do użycia w tym kroku. |
inputs |
Dane wejściowe to InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition lub PipelineDataset. |
outputs |
Dane wyjściowe mogą mieć wartość PipelineData lub OutputPortBinding. |
run_name |
Nazwa w usłudze Databricks dla tego przebiegu. |
source_directory |
Katalog zawierający skrypt i inne pliki. |
num_workers |
Statyczna liczba procesów roboczych dla klastra uruchamiania usługi Databricks. |
runconfig |
Ścieżka do .runconfig pliku. Ten plik jest reprezentacją YAML klasy RunConfiguration . Aby uzyskać więcej informacji na temat struktury tego pliku, zobacz runconfigschema.json. |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera krok usługi Databricks:
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
Krok transferu danych
Klucz YAML | opis |
---|---|
compute |
Docelowy obiekt obliczeniowy usługi Azure Data Factory do użycia w tym kroku. |
source_data_reference |
Połączenie wejściowe, które służy jako źródło operacji transferu danych. Obsługiwane wartości to InputPortBinding, DataReference, PortDataReference, PipelineData, DatasetDefinition lub PipelineDataset. |
destination_data_reference |
Połączenie wejściowe, które służy jako miejsce docelowe operacji transferu danych. Obsługiwane wartości to PipelineData i OutputPortBinding. |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera krok transferu danych:
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
Krok skryptu języka Python
Klucz YAML | opis |
---|---|
inputs |
Dane wejściowe to InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition lub PipelineDataset. |
outputs |
Dane wyjściowe mogą mieć wartość PipelineData lub OutputPortBinding. |
script_name |
Nazwa skryptu języka Python (względem source_directory ). |
source_directory |
Katalog zawierający skrypt, środowisko Conda itp. |
runconfig |
Ścieżka do .runconfig pliku. Ten plik jest reprezentacją YAML klasy RunConfiguration . Aby uzyskać więcej informacji na temat struktury tego pliku, zobacz runconfig.json. |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera krok skryptu języka Python:
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
Krok przebiegu równoległego
Klucz YAML | opis |
---|---|
inputs |
Dane wejściowe mogą być zestawem danych, zestawem danychDefinition lub pipelineDataset. |
outputs |
Dane wyjściowe mogą mieć wartość PipelineData lub OutputPortBinding. |
script_name |
Nazwa skryptu języka Python (względem source_directory ). |
source_directory |
Katalog zawierający skrypt, środowisko Conda itp. |
parallel_run_config |
Ścieżka do parallel_run_config.yml pliku. Ten plik jest reprezentacją YAML klasy ParallelRunConfig . |
allow_reuse |
Określa, czy krok powinien ponownie używać poprzednich wyników po ponownym uruchomieniu z tymi samymi ustawieniami. |
Poniższy przykład zawiera krok przebiegu równoległego:
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
Potok z wieloma krokami
Klucz YAML | opis |
---|---|
steps |
Sekwencja co najmniej jednej definicji PipelineStep. Należy pamiętać, że destination klucze jednego kroku outputs stają się kluczami source inputs do następnego kroku. |
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
Harmonogramy
Podczas definiowania harmonogramu potoku może on być wyzwalany przez magazyn danych lub cykliczny na podstawie interwału czasu. Poniżej przedstawiono klucze używane do definiowania harmonogramu:
Klucz YAML | opis |
---|---|
description |
Opis harmonogramu. |
recurrence |
Zawiera ustawienia cyklu, jeśli harmonogram jest cykliczny. |
pipeline_parameters |
Wszystkie parametry wymagane przez potok. |
wait_for_provisioning |
Czy poczekać na aprowizowanie harmonogramu do ukończenia. |
wait_timeout |
Liczba sekund oczekiwania przed upływem limitu czasu. |
datastore_name |
Magazyn danych do monitorowania zmodyfikowanych/dodanych obiektów blob. |
polling_interval |
Jak długo, w minutach, między sondowaniem zmodyfikowanych/dodanych obiektów blob. Wartość domyślna: 5 minut. Obsługiwane tylko w przypadku harmonogramów magazynu danych. |
data_path_parameter_name |
Nazwa parametru potoku ścieżki danych do ustawienia ze zmienioną ścieżką obiektu blob. Obsługiwane tylko w przypadku harmonogramów magazynu danych. |
continue_on_step_failure |
Czy kontynuować wykonywanie innych kroków w przesłanym elemecie PipelineRun, jeśli krok zakończy się niepowodzeniem. Jeśli zostanie podana, zastąpi continue_on_step_failure ustawienie potoku. |
path_on_datastore |
Opcjonalny. Ścieżka w magazynie danych do monitorowania zmodyfikowanych/dodanych obiektów blob. Ścieżka znajduje się w kontenerze magazynu danych, więc rzeczywista ścieżka monitorów harmonogramu to kontener/path_on_datastore . Jeśli tak nie jest, kontener magazynu danych jest monitorowany. Dodatki/modyfikacje wprowadzone w podfolderze obiektu path_on_datastore nie są monitorowane. Obsługiwane tylko w przypadku harmonogramów magazynu danych. |
Poniższy przykład zawiera definicję harmonogramu wyzwalanego przez magazyn danych:
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"
Podczas definiowania harmonogramu cyklicznego użyj następujących kluczy w obszarze recurrence
:
Klucz YAML | opis |
---|---|
frequency |
Jak często harmonogram jest powtarzany. Prawidłowe wartości to "Minute" , , "Day" "Hour" , "Week" lub "Month" . |
interval |
Jak często harmonogram jest uruchamiany. Wartość całkowita to liczba jednostek czasu, które będą czekać, aż harmonogram zostanie ponownie wyzwolony. |
start_time |
Godzina rozpoczęcia harmonogramu. Format ciągu wartości to YYYY-MM-DDThh:mm:ss . Jeśli nie zostanie podany czas rozpoczęcia, pierwsze obciążenie jest uruchamiane natychmiast, a przyszłe obciążenia są uruchamiane zgodnie z harmonogramem. Jeśli czas rozpoczęcia jest w przeszłości, pierwsze obciążenie jest uruchamiane w następnym obliczonym czasie wykonywania. |
time_zone |
Strefa czasowa dla godziny rozpoczęcia. Jeśli strefa czasowa nie zostanie podana, używany jest czas UTC. |
hours |
Jeśli frequency wartość to "Day" lub "Week" , możesz określić co najmniej jedną liczbę całkowitą z zakresu od 0 do 23, oddzieloną przecinkami, jako godziny dnia, w których ma zostać uruchomiony potok. Można go używać tylko time_of_day lub hours i minutes . |
minutes |
Jeśli frequency wartość to "Day" lub "Week" , możesz określić jedną lub więcej liczb całkowitych z zakresu od 0 do 59, rozdzielonych przecinkami, jako minuty godziny, kiedy potok powinien zostać uruchomiony. Można go używać tylko time_of_day lub hours i minutes . |
time_of_day |
Jeśli frequency wartość to "Day" lub "Week" , możesz określić godzinę dnia dla harmonogramu do uruchomienia. Format ciągu wartości to hh:mm . Można go używać tylko time_of_day lub hours i minutes . |
week_days |
Jeśli frequency ma wartość "Week" , możesz określić co najmniej jedną liczbę dni rozdzielonych przecinkami, kiedy harmonogram powinien zostać uruchomiony. Prawidłowe wartości to "Monday" , , "Tuesday" , "Thursday" "Wednesday" "Friday" , , "Saturday" , i "Sunday" . |
Poniższy przykład zawiera definicję harmonogramu cyklicznego:
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: ~
Następne kroki
Dowiedz się, jak używać rozszerzenia interfejsu wiersza polecenia dla usługi Azure Machine Learning.