Schemat YAML zadania potoku interfejsu wiersza polecenia (wersja 2)
DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure ml w wersji 2 (bieżąca)
Źródłowy schemat JSON można znaleźć pod adresem https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json.
Uwaga
Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.
Składnia YAML
Klucz | Type | Opis | Dozwolone wartości | Domyślna wartość |
---|---|---|---|---|
$schema |
string | Schemat YAML. Jeśli używasz rozszerzenia programu VS Code usługi Azure Machine Learning do tworzenia pliku YAML, możesz wywołać uzupełnianie schematu i zasobów, jeśli znajdziesz $schema go w górnej części pliku. |
||
type |
const | Wymagany. Typ zadania. | pipeline |
|
name |
string | Nazwa zadania. Musi być unikatowa we wszystkich zadaniach w obszarze roboczym. W przypadku pominięcia usługa Azure Machine Learning automatycznie wygeneruje identyfikator GUID dla nazwy. | ||
display_name |
string | Nazwa wyświetlana zadania w interfejsie użytkownika programu Studio. Może nie być unikatowa w obszarze roboczym. W przypadku pominięcia usługa Azure Machine Learning automatycznie ocenia identyfikator przymiotnika z możliwością odczytu przez człowieka dla nazwy wyświetlanej. | ||
experiment_name |
string | Organizuj zadanie pod nazwą eksperymentu. Rekord uruchamiania każdego zadania jest zorganizowany w ramach odpowiedniego eksperymentu na karcie "Eksperymenty" w studio. W przypadku pominięcia usługa Azure Machine Learning domyślnie określa experiment_name nazwę katalogu roboczego, w którym utworzono zadanie. |
||
tags |
obiekt | Słownik tagów zadania. | ||
settings |
obiekt | Ustawienia domyślne zadania potoku. Odwiedź stronę Atrybuty settings klucza , aby uzyskać zestaw konfigurowalnych właściwości. |
||
jobs |
obiekt | Wymagany. Słownik zestawu poszczególnych zadań do uruchomienia jako kroków w potoku. Te zadania są uznawane za podrzędne zadania nadrzędnego potoku. Klucz jest nazwą kroku w kontekście zadania potoku. Ta nazwa różni się od unikatowej nazwy zadania podrzędnego. Wartość jest specyfikacją zadania, która może być zgodna ze schematem zadania polecenia lub schematem zadania zamiatania. Obecnie w potoku można uruchamiać tylko zadania poleceń i zadania zamiatania. Nowsze wersje będą obsługiwać inne typy zadań. |
||
inputs |
obiekt | Słownik danych wejściowych zadania potoku. Klucz jest nazwą danych wejściowych w kontekście zadania. Wartość jest wartością wejściową. Dane wejściowe pojedynczego zadania kroku w potoku mogą odwoływać się do tych danych wejściowych potoku za pomocą ${{ parent.inputs.<input_name> }} wyrażenia . Aby uzyskać więcej informacji na temat powiązania danych wejściowych kroku potoku z danymi wejściowymi zadania potoku najwyższego poziomu, odwiedź stronę Składnia wyrażeń dla powiązań danych wejściowych i wyjściowych między krokami zadania potoku. |
||
inputs.<input_name> |
liczba, liczba całkowita, wartość logiczna, ciąg lub obiekt | Jedna z wartości literału (typu liczba, liczba całkowita, wartość logiczna lub ciąg) lub obiekt zawierający specyfikację danych wejściowych zadania. | ||
outputs |
obiekt | Słownik konfiguracji wyjściowych zadania potoku. Klucz jest nazwą danych wyjściowych w kontekście zadania. Wartość to konfiguracja danych wyjściowych. Dane wyjściowe pojedynczego zadania kroku w potoku mogą odwoływać się do tych danych wyjściowych potoku za pomocą ${{ parents.outputs.<output_name> }} wyrażenia . Aby uzyskać więcej informacji na temat powiązania danych wyjściowych kroku potoku z danymi wyjściowymi zadania potoku najwyższego poziomu, odwiedź stronę Składnia wyrażeń dla powiązań danych wejściowych i wyjściowych między krokami w zadaniu potoku. |
||
outputs.<output_name> |
obiekt | Obiekt można pozostawić pusty. W takim przypadku domyślnie dane wyjściowe będą typu , a usługa Azure Machine Learning wygeneruje lokalizację wyjściową dla danych wyjściowych uri_folder na podstawie tej ścieżki templatized: {settings.datastore}/azureml/{job-name}/{output-name}/ . Pliki do katalogu wyjściowego zostaną zapisane za pośrednictwem instalacji odczytu i zapisu. Aby określić inny tryb wyjściowy, podaj obiekt zawierający specyfikację danych wyjściowych zadania. |
||
identity |
obiekt | Tożsamość jest używana do uzyskiwania dostępu do danych. Może to być userIdentityConfiguration, ManagedIdentityConfiguration lub None. Jeśli jest to userIdentityConfiguration, tożsamość osoby przesyłającej zadanie będzie używana do uzyskiwania dostępu do danych wejściowych i zapisu wyników do folderu wyjściowego, w przeciwnym razie zostanie użyta tożsamość zarządzana docelowego obiektu obliczeniowego. |
settings
Atrybuty klucza
Klucz | Type | Opis | Domyślna wartość |
---|---|---|---|
default_datastore |
string | Nazwa magazynu danych, który ma być używany jako domyślny magazyn danych dla zadania potoku. Ta wartość musi być odwołaniem do istniejącego magazynu danych w obszarze roboczym przy użyciu azureml:<datastore-name> składni. Wszystkie dane wyjściowe zdefiniowane we outputs właściwości nadrzędnego zadania potoku lub podrzędnych kroków są przechowywane w tym magazynie danych. W przypadku pominięcia dane wyjściowe są przechowywane w magazynie danych obiektów blob obszaru roboczego. |
|
default_compute |
string | Nazwa docelowego obiektu obliczeniowego, który ma być używany jako domyślny obiekt obliczeniowy dla wszystkich kroków w potoku. Obliczenia zdefiniowane na poziomie kroku zastępują to domyślne obliczenia dla tego konkretnego kroku. Wartość default_compute musi być odwołaniem do istniejącego środowiska obliczeniowego w obszarze roboczym przy użyciu azureml:<compute-name> składni. |
|
continue_on_step_failure |
boolean | To ustawienie określa, co się stanie, jeśli krok w potoku zakończy się niepowodzeniem. Domyślnie potok będzie nadal działać, nawet jeśli jeden krok zakończy się niepowodzeniem. Oznacza to, że wszystkie kroki, które nie zależą od kroku, który zakończył się niepowodzeniem, nadal będą wykonywane. Jeśli jednak zmienisz to ustawienie na Fałsz, cały potok przestanie działać, a wszystkie aktualnie uruchomione kroki zostaną anulowane, jeśli jeden krok zakończy się niepowodzeniem. | True |
force_rerun |
boolean | Czy wymusić ponowne uruchomienie całego potoku. Domyślna wartość to False . Oznacza to, że domyślnie potok próbuje ponownie użyć danych wyjściowych poprzedniego zadania, jeśli spełnia kryteria ponownego użycia. Jeśli zostanie ustawiona wartość True , wszystkie kroki w potoku zostaną uruchomione ponownie. |
False |
Dane wejściowe zadania
Klucz | Type | Opis | Dozwolone wartości | Domyślna wartość |
---|---|---|---|---|
type |
string | Typ danych wejściowych zadania. Określ uri_file dane wejściowe wskazujące jedno źródło plików lub uri_folder dane wejściowe wskazujące źródło folderu. Aby uzyskać więcej informacji, odwiedź stronę Dowiedz się więcej o dostępie do danych. |
uri_file , , uri_folder , , mltable mlflow_model |
uri_folder |
path |
string | Ścieżka do danych do użycia jako dane wejściowe. Można to określić na kilka sposobów: - Ścieżka lokalna do pliku lub folderu źródła danych, np. path: ./iris.csv . Dane są przekazywane podczas przesyłania zadania. — Identyfikator URI ścieżki chmury do pliku lub folderu, który ma być używany jako dane wejściowe. Obsługiwane typy identyfikatorów URI to azureml , , https wasbs , abfss , adl . Aby uzyskać więcej informacji na temat używania formatu identyfikatora azureml:// URI, odwiedź stronę Podstawowa składnia yaml. — Istniejący zarejestrowany zasób danych usługi Azure Machine Learning do użycia jako dane wejściowe. Aby odwołać się do zarejestrowanego zasobu danych, użyj azureml:<data_name>:<data_version> składni lub azureml:<data_name>@latest (aby odwołać się do najnowszej wersji tego zasobu danych), np. path: azureml:cifar10-data:1 lub path: azureml:cifar10-data@latest . |
||
mode |
string | Tryb dostarczania danych do docelowego obiektu obliczeniowego. W przypadku instalacji tylko do odczytu ( ro_mount ) dane będą używane jako ścieżka instalacji. Folder jest instalowany jako folder, a plik jest instalowany jako plik. Usługa Azure Machine Learning rozpoznaje dane wejściowe ścieżki instalacji. W download przypadku trybu dane są pobierane do docelowego obiektu obliczeniowego. Usługa Azure Machine Learning rozpoznaje dane wejściowe pobranej ścieżki. W przypadku tylko adresu URL lokalizacji przechowywania artefaktu danych lub artefaktów zamiast instalowania lub pobierania samych danych użyj direct trybu . Spowoduje to przekazanie adresu URL lokalizacji magazynu jako danych wejściowych zadania. W takim przypadku ponosisz pełną odpowiedzialność za obsługę poświadczeń w celu uzyskania dostępu do magazynu. |
ro_mount , , download direct |
ro_mount |
Dane wyjściowe zadania
Klucz | Type | Opis | Dozwolone wartości | Domyślna wartość |
---|---|---|---|---|
type |
string | Typ danych wyjściowych zadania. Dla domyślnego uri_folder typu dane wyjściowe odpowiadają folderowi. |
uri_file , , uri_folder , , mltable mlflow_model |
uri_folder |
mode |
string | Tryb dostarczania pliku wyjściowego lub plików do magazynu docelowego. W przypadku trybu instalacji odczytu i zapisu (rw_mount ) katalog wyjściowy będzie katalogiem zainstalowanym. W trybie przekazywania zapisywane pliki są przekazywane na końcu zadania. |
rw_mount , upload |
rw_mount |
Konfiguracje tożsamości
UserIdentityConfiguration
Klucz | Type | Opis | Dozwolone wartości |
---|---|---|---|
type |
const | Wymagany. Typ tożsamości. | user_identity |
ManagedIdentityConfiguration
Klucz | Type | Opis | Dozwolone wartości |
---|---|---|---|
type |
const | Wymagany. Typ tożsamości. | managed lub managed_identity |
Uwagi
Za pomocą az ml job
polecenia można zarządzać zadaniami usługi Azure Machine Learning.
Przykłady
Zapoznaj się z przykładami repozytorium GitHub, aby zapoznać się z przykładami. Poniżej przedstawiono kilka z poniższych elementów:
YAML: potok hello
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: zależność wejściowa/wyjściowa
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: typowe ustawienia zadania potoku
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: dane wejściowe najwyższego poziomu i zastępowanie typowych ustawień zadania potoku
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}