Schemat yaML zadania polecenia interfejsu wiersza polecenia (wersja 2)

DOTYCZY:Azure CLI ml extension v2 (current)

Źródłowy schemat JSON można znaleźć pod adresem https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.

Note

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/.

YAML syntax

Key Typ Description Allowed values Default value
$schema ciąg 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 ciąg 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 ciąg 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 ciąg 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 ciąg Opis zadania.
tags obiekt Słownik tagów zadania.
command ciąg Polecenie do wykonania.
code ciąg Ś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.

Podczas pracy z wyselekcjonowanych środowisk w interfejsie wiersza polecenia lub zestawie SDK nazwy wyselekcjonowanych środowisk zaczynają się od AzureML-. W przypadku korzystania z usługi Azure Machine Learning Studio nazwy wyselekcjonowanych środowisk nie mają tego prefiksu. Przyczyną tej różnicy jest to, że interfejs użytkownika studia wyświetla wyselekcjonowane i niestandardowe środowiska na osobnych kartach, więc prefiks nie jest konieczny. CLI i SDK nie mają tego rozdzielenia, więc prefiks jest używany do rozróżnienia pomiędzy środowiskami kuratorskimi a niestandardowymi.
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, TensorFlowConfiguration lub RayConfiguration.
compute ciąg 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 liczba całkowita Liczba węzłów do użycia dla zadania. 1
resources.instance_type ciąg 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: kubernetes). Jeśli pominięto, domyślnie jest to domyślny typ wystąpienia klastra Kubernetes. Aby uzyskać więcej informacji, zobacz Tworzenie typów wystąpień i zarządzanie nimi.
resources.shm_size ciąg 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), km (megabajty) lub g (gigabajty). 2g
resources.docker_args ciąg Dodatkowe argumenty do przekazania do polecenia platformy Docker run .
resources.locations macierz Lista lokalizacji regionów, w których zadanie może być uruchamiane.
resources.max_instance_count liczba całkowita Maksymalna liczba węzłów do użycia dla zadania (w przypadku trenowania rozproszonego elastycznie).
limits.timeout liczba całkowita 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 command wyrażenia można odwoływać się do ${{ inputs.<input_name> }} 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 command wyrażenia można odwoływać się ${{ outputs.<output_name> }} 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.
queue_settings obiekt Konfiguracja kolejki dla zadania. Konfigurowanie warstwy zadań i priorytetu planowania. Zobacz Ustawienia kolejki.
services obiekt Słownik interaktywnych usług zadań (punktów końcowych). Obsługiwane typy usług: ssh, , tensor_boardvs_code, jupyter_lab.
identity obiekt Tożsamość jest używana do uzyskiwania dostępu do danych. Może to być userIdentityConfiguration, ManagedIdentityConfiguration, AMLTokenIdentityConfiguration 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 wyniku w folderze wyjściowym; w przeciwnym razie jest używana tożsamość zarządzana docelowego obiektu obliczeniowego.

Distribution configurations

MpiConfiguration

Key Typ Description Allowed values
type const Required. Distribution type. mpi
process_count_per_instance liczba całkowita Required. Liczba procesów na węzeł do uruchomienia dla zadania.

PyTorchConfiguration

Key Typ Description Allowed values Default value
type const Required. Distribution type. pytorch
process_count_per_instance liczba całkowita Liczba procesów na węzeł do uruchomienia dla zadania. 1

TensorFlowConfiguration

Key Typ Description Allowed values Default value
type const Required. Distribution type. tensorflow
worker_count liczba całkowita Liczba procesów roboczych, które mają być uruchamiane dla tego zadania. Wartość domyślna to resources.instance_count.
parameter_server_count liczba całkowita Liczba serwerów parametrów do uruchomienia dla zadania. 0

RayConfiguration

Key Typ Description Allowed values Default value
type const Required. Distribution type. ray
address ciąg Adres istniejącego klastra Ray do nawiązania połączenia. W przypadku pominięcia usługa Azure Machine Learning uruchamia nowy klaster Ray.
port liczba całkowita Port procesu raya głowy.
dashboard_port liczba całkowita Port procesu pulpitu nawigacyjnego Ray.
include_dashboard boolean Czy uruchomić pulpit nawigacyjny Ray.
head_node_additional_args ciąg Dodatkowe argumenty przekazywane do ray start węzła głównego.
worker_node_additional_args ciąg Dodatkowe argumenty przekazywane do ray start węzłów procesu roboczego.

Job inputs

Key Typ Description Allowed values Default value
type ciąg 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 ciąg Ś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ładniaazureml:// 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 ciąg 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

Job outputs

Key Typ Description Allowed values Default value
type ciąg Typ danych wyjściowych zadania. Dla domyślnego uri_folder typu dane wyjściowe odpowiadają folderowi. uri_folder, , mlflow_modelcustom_model uri_folder
mode ciąg 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

Identity configurations

UserIdentityConfiguration

Key Typ Description Allowed values
type const Required. Identity type. user_identity

ManagedIdentityConfiguration

Key Typ Description Allowed values
type const Required. Identity type. managed lub managed_identity

AMLTokenIdentityConfiguration

Key Typ Description Allowed values
type const Required. Identity type. Zadanie używa tokenu usługi Azure Machine Learning obszaru roboczego na potrzeby dostępu do danych. aml_token

Queue settings

Key Typ Description Allowed values Default value
job_tier ciąg Warstwa zadania. spot używa wywłaszanych zasobów obliczeniowych przy niższych kosztach. spot, , basic, , standardpremium
priority ciąg Priorytet planowania w ramach wybranej warstwy. low, , mediumhigh

Remarks

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

Examples

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

YAML: witaj świat

$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.8-cuda12.6@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.

Next steps