Udostępnij za pośrednictwem


Schemat yaML zadania polecenia 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/commandJob.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, w tym $schema w górnej części pliku, możesz wywołać uzupełnianie schematu i zasobów.
type const Typ zadania. command command
name string Nazwa zadania. Musi być unikatowa we wszystkich zadaniach w obszarze roboczym. W przypadku pominięcia usługa Azure Machine Learning automatycznie ocenia identyfikator GUID dla nazwy.
display_name string Nazwa wyświetlana zadania w interfejsie użytkownika programu Studio. Może być nonunique 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 Nazwa eksperymentu w celu zorganizowania zadania w obszarze. Rekord uruchomienia 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 nazwę katalogu roboczego, w którym utworzono zadanie.
description string Opis zadania.
tags obiekt Słownik tagów zadania.
command string Polecenie do wykonania.
code string Ścieżka lokalna do katalogu kodu źródłowego, który ma zostać przekazany i użyty do zadania.
environment ciąg lub obiekt Środowisko do użycia dla zadania. Może być odwołaniem do istniejącego środowiska w wersji w obszarze roboczym lub specyfikacji środowiska wbudowanego.

Aby odwołać się do istniejącego środowiska, użyj azureml:<environment_name>:<environment_version> składni lub azureml:<environment_name>@latest (aby odwołać się do najnowszej wersji środowiska).

Aby zdefiniować wbudowane środowisko, postępuj zgodnie ze schematem środowiska. name Wyklucz właściwości iversion, ponieważ nie są obsługiwane w środowiskach wbudowanych.
environment_variables obiekt Słownik par klucz-wartość zmiennej środowiskowej do ustawienia w procesie, w którym jest wykonywane polecenie.
distribution obiekt Konfiguracja dystrybucji dla scenariuszy trenowania rozproszonego. Jeden z parametrów MpiConfiguration, PyTorchConfiguration lub TensorFlowConfiguration.
compute string Nazwa docelowego obiektu obliczeniowego do wykonania zadania. Może to być odwołanie do istniejącego środowiska obliczeniowego w obszarze roboczym (przy użyciu azureml:<compute_name> składni) lub local wyznaczenie lokalnego wykonywania. Uwaga: zadania w potoku nie są obsługiwane local jako compute local
resources.instance_count integer Liczba węzłów do użycia dla zadania. 1
resources.instance_type string Typ wystąpienia do użycia dla zadania. Dotyczy zadań uruchomionych w obliczeniach platformy Kubernetes z włączoną usługą Azure Arc (gdzie docelowy obiekt obliczeniowy określony w compute polu ma wartość type: kubernentes). Jeśli pominięto, domyślnie jest to domyślny typ wystąpienia klastra Kubernetes. Aby uzyskać więcej informacji, zobacz Create and select Kubernetes instance types (Tworzenie i wybieranie typów wystąpień kubernetes).
resources.shm_size string Rozmiar bloku pamięci udostępnionej kontenera platformy Docker. Powinna być w formacie <number><unit> , w którym liczba musi być większa niż 0, a jednostka może być jedną z b (bajtów), (kilobajty), k m (megabajty) lub g (gigabajty). 2g
limits.timeout integer Maksymalny czas w sekundach, w których zadanie może zostać uruchomione. Po osiągnięciu tego limitu system anuluje zadanie.
inputs obiekt Słownik danych wejściowych zadania. Klucz jest nazwą danych wejściowych w kontekście zadania, a wartość jest wartością wejściową.

Przy użyciu ${{ inputs.<input_name> }} wyrażenia można odwoływać się do command danych wejściowych.
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. Klucz jest nazwą danych wyjściowych w kontekście zadania, a wartość jest konfiguracją wyjściową.

Przy użyciu ${{ outputs.<output_name> }} wyrażenia można odwoływać się command do danych wyjściowych.
outputs.<output_name> obiekt Obiekt można pozostawić pusty. W tym przypadku dane wyjściowe są domyślnie typu uri_folder , a usługa Azure Machine Learning generuje lokalizację wyjściową dla danych wyjściowych. Pliki do katalogu wyjściowego są zapisywane za pośrednictwem instalacji odczytu i zapisu. Jeśli chcesz określić inny tryb dla danych wyjściowych, 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 userIdentityConfiguration, tożsamość osoby przesyłającej zadanie jest używana do uzyskiwania dostępu do danych wejściowych i zapisu wyników do folderu wyjściowego, w przeciwnym razie używana jest tożsamość zarządzana docelowego obiektu obliczeniowego.

Konfiguracje dystrybucji

MpiConfiguration

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ dystrybucji. mpi
process_count_per_instance integer Wymagany. Liczba procesów na węzeł do uruchomienia dla zadania.

PyTorchConfiguration

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. pytorch
process_count_per_instance integer Liczba procesów na węzeł do uruchomienia dla zadania. 1

TensorFlowConfiguration

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. tensorflow
worker_count integer Liczba procesów roboczych, które mają być uruchamiane dla tego zadania. Wartość domyślna to resources.instance_count.
parameter_server_count integer Liczba serwerów parametrów do uruchomienia dla zadania. 0

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. uri_file, , uri_folder, , mlflow_modelcustom_model uri_folder
path string Ścieżka do danych do użycia jako dane wejściowe. Można określić na kilka sposobów:

- Ścieżka lokalna do pliku lub folderu źródła danych, na przykład 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 URI, zobacz Podstawowa składnia azureml:// 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), na przykład 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 są 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.

Jeśli chcesz tylko adres URL lokalizacji przechowywania artefaktów danych, a nie instalowania lub pobierania samych danych, możesz użyć direct trybu . Ten tryb przekazuje adres URL lokalizacji magazynu jako dane wejściowe zadania. W takim przypadku ponosisz pełną odpowiedzialność za obsługę poświadczeń w celu uzyskania dostępu do magazynu.

Tryby eval_mount i eval_download są unikatowe dla tabeli MLTable i instaluje dane jako ścieżkę lub pobiera dane do docelowego obiektu obliczeniowego.

Aby uzyskać więcej informacji na temat trybów, zobacz Access data in a job (Uzyskiwanie dostępu do danych w zadaniu)
ro_mount, , download, direct, , eval_downloadeval_mount 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_folder, , mlflow_modelcustom_model uri_folder
mode string Tryb dostarczania plików wyjściowych do magazynu docelowego. W przypadku trybu instalacji odczytu i zapisu (rw_mount) katalog wyjściowy jest katalogiem zainstalowanym. W przypadku trybu przekazywania pliki zapisywane 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

Polecenie az ml job może służyć do zarządzania zadaniami usługi Azure Machine Learning.

Przykłady

Przykłady są dostępne w repozytorium GitHub przykłady. W poniższych sekcjach przedstawiono niektóre z przykładów.

YAML: hello world

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/python:latest

YAML: nazwa wyświetlana, nazwa eksperymentu, opis i tagi

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/python:latest
tags:
  hello: world
display_name: hello-world-example
experiment_name: hello-world-example
description: |
  # Azure Machine Learning "hello world" job

  This is a "hello world" job running in the cloud via Azure Machine Learning!

  ## Description

  Markdown is supported in the studio for job descriptions! You can edit the description there or via CLI.

YAML: zmienne środowiskowe

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo $hello_env_var
environment:
  image: library/python:latest
environment_variables:
  hello_env_var: "hello world"

YAML: kod źródłowy

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
  image: library/python:latest

YAML: dane wejściowe literału

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo ${{inputs.hello_string}}
  echo ${{inputs.hello_number}}
environment:
  image: library/python:latest
inputs:
  hello_string: "hello world"
  hello_number: 42

YAML: zapisywanie w domyślnych danych wyjściowych

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
  image: library/python:latest

YAML: zapisywanie w nazwanych danych wyjściowych

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ${{outputs.hello_output}}/helloworld.txt
outputs:
  hello_output:
environment:
  image: python

YAML: dane wejściowe pliku URI magazynu danych

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo "--iris-csv: ${{inputs.iris_csv}}"
  python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
  iris_csv:
    type: uri_file 
    path: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest

YAML: dane wejściowe folderu URI magazynu danych

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  ls ${{inputs.data_dir}}
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
  data_dir:
    type: uri_folder 
    path: azureml://datastores/workspaceblobstore/paths/example-data/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest

YAML: dane wejściowe pliku URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  echo "--iris-csv: ${{inputs.iris_csv}}"
  python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
  iris_csv:
    type: uri_file 
    path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest

YAML: dane wejściowe folderu URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  ls ${{inputs.data_dir}}
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
  data_dir:
    type: uri_folder 
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest

YAML: Notes przez papiermill

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
  pip install ipykernel papermill
  papermill hello-notebook.ipynb outputs/out.ipynb -k python
code: src
environment:
  image: library/python:3.11.6

YAML: podstawowe szkolenie modelu języka Python

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python main.py 
  --iris-csv ${{inputs.iris_csv}}
  --C ${{inputs.C}}
  --kernel ${{inputs.kernel}}
  --coef0 ${{inputs.coef0}}
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
  C: 0.8
  kernel: "rbf"
  coef0: 0.1
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
display_name: sklearn-iris-example
experiment_name: sklearn-iris-example
description: Train a scikit-learn SVM on the Iris dataset.

YAML: podstawowe trenowanie modelu języka R przy użyciu lokalnego kontekstu kompilacji platformy Docker

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
  source /usr/venv/bin/activate
  Rscript train.R 
  --data_folder ${{inputs.iris}}
code: src
inputs:
  iris: 
    type: uri_file
    path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  build:
    path: docker-context
compute: azureml:cpu-cluster
display_name: r-iris-example
experiment_name: r-iris-example
description: Train an R model on the Iris dataset.

YAML: rozproszona PyTorch

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python train.py
  --epochs ${{inputs.epochs}}
  --learning-rate ${{inputs.learning_rate}}
  --data-dir ${{inputs.cifar}}
inputs:
  epochs: 1
  learning_rate: 0.2
  cifar:
     type: uri_folder
     path: azureml:cifar-10-example@latest
environment: azureml:AzureML-acpt-pytorch-2.2-cuda12.1@latest
compute: azureml:gpu-cluster
distribution:
  type: pytorch
  process_count_per_instance: 1
resources:
  instance_count: 2
display_name: pytorch-cifar-distributed-example
experiment_name: pytorch-cifar-distributed-example
description: Train a basic convolutional neural network (CNN) with PyTorch on the CIFAR-10 dataset, distributed via PyTorch.

YAML: rozproszony tensorFlow

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
  python train.py
  --epochs ${{inputs.epochs}}
  --model-dir ${{inputs.model_dir}}
inputs:
  epochs: 1
  model_dir: outputs/keras-model
environment: azureml:AzureML-tensorflow-2.16-cuda12@latest
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: tensorflow
  worker_count: 2
display_name: tensorflow-mnist-distributed-example
experiment_name: tensorflow-mnist-distributed-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via TensorFlow.

Następne kroki