Schemat YAML zadania potoku interfejsu wiersza polecenia (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure 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 usługi Azure Machine Edukacja VS Code do tworzenia pliku YAML, możesz wywołać uzupełnianie schematu i zasobów, jeśli dołączysz $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 Edukacja 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 Edukacja 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 Edukacja domyślną 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 uri_folder, a usługa Azure Machine Edukacja wygeneruje systemową lokalizację danych wyjściowych dla danych wyjściowych 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 Uzyskiwanie dostępu do danych używa tożsamości. Może to być konfiguracja tożsamości użytkownika, konfiguracja tożsamości zarządzanej lub brak. W przypadku parametru UserIdentityConfiguration tożsamość przesyłająca zadanie jest używana do uzyskiwania dostępu do danych wejściowych i zapisywania wyniku w folderze wyjściowym. W przeciwnym razie parametr UserIdentityConfiguration używa tożsamości zarządzanej 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, , mltablemlflow_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, , httpswasbs, 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 Edukacja 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 Edukacja usuwa dane wejściowe ze ścieżką instalacji.

W download przypadku trybu dane są pobierane do docelowego obiektu obliczeniowego. Usługa Azure Machine Edukacja usuwa dane wejściowe do 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, , downloaddirect 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, , mltablemlflow_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 Edukacja.

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.0/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/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.0/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

Następne kroki