Schemat yaML zadania polecenia interfejsu wiersza polecenia (wersja 2)
DOTYCZY:Rozszerzenie uczenia maszynowego platformy Azure 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źć na stronie https://azuremlschemasprod.azureedge.net/.
Składnia YAML
Klucz | Typ | Opis | Dozwolone wartości | Wartość domyślna |
---|---|---|---|---|
$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ływać schemat i uzupełnianie 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 wygeneruje identyfikator GUID dla nazwy. | ||
display_name |
ciąg | 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 wygeneruje identyfikator przymiotnika-rzeczownik do odczytu przez człowieka dla nazwy wyświetlanej. | ||
experiment_name |
ciąg | Nazwa eksperymentu w celu zorganizowania zadania w ramach. Każdy rekord przebiegu zadania zostanie zorganizowany w ramach odpowiedniego eksperymentu na karcie "Eksperymenty" w studio. W przypadku pominięcia usługa Azure Machine Learning domyślnie będzie miała nazwę katalogu roboczego, w którym utworzono zadanie. | ||
description |
ciąg | Opis zadania. | ||
tags |
object | Słownik tagów zadania. | ||
command |
ciąg | Wymagane (jeśli nie jest używane component pole). 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 | Wymagane (jeśli nie jest używane component pole). Środowisko do użycia dla zadania. Może to być odwołanie 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ć środowisko wbudowane, postępuj zgodnie ze schematem środowiska. name Wyklucz właściwości iversion , ponieważ nie są obsługiwane w środowiskach wbudowanych. |
||
environment_variables |
object | Słownik par klucz-wartość zmiennej środowiskowej do ustawienia w procesie, w którym polecenie jest wykonywane. | ||
distribution |
object | Konfiguracja dystrybucji dla scenariuszy trenowania rozproszonego. Jeden z elementów MpiConfiguration, PyTorchConfiguration lub TensorFlowConfiguration. | ||
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 wykonania. 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, który ma być używany 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 to type: kubernentes ). W przypadku pominięcia zostanie to domyślne ustawienie domyślnego typu 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 |
ciąg | Rozmiar bloku pamięci udostępnionej kontenera platformy Docker. Powinno to 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), (kilobajtów), k m (megabajtów) lub g (gigabajty). |
2g |
|
limits.timeout |
liczba całkowita | Maksymalny czas w sekundach, przez który zadanie może zostać uruchomione. Po osiągnięciu tego limitu system anuluje zadanie. | ||
inputs |
object | 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łów (typu liczba, liczba całkowita, wartość logiczna lub ciąg) lub obiekt zawierający specyfikację danych wejściowych zadania. | ||
outputs |
object | 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ę do command danych wyjściowych. |
||
outputs.<output_name> |
object | Możesz pozostawić obiekt pusty. W tym przypadku domyślnie dane wyjściowe będą typu uri_folder , a usługa Azure Machine Learning wygeneruje systemową lokalizację wyjściową dla danych wyjściowych. Pliki do katalogu wyjściowego zostaną zapisane 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 |
object | 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 zapisywania wyników w folderze wyjściowym, w przeciwnym razie zostanie użyta tożsamość zarządzana docelowego obiektu obliczeniowego. |
Konfiguracje dystrybucji
MpiConfiguration
Klucz | Typ | Opis | Dozwolone wartości |
---|---|---|---|
type |
const | Wymagane. Typ dystrybucji. | mpi |
process_count_per_instance |
liczba całkowita | Wymagane. Liczba procesów na węzeł do uruchomienia dla zadania. |
PyTorchConfiguration
Klucz | Typ | Opis | Dozwolone wartości | Wartość domyślna |
---|---|---|---|---|
type |
const | Wymagane. Typ dystrybucji. | pytorch |
|
process_count_per_instance |
liczba całkowita | Liczba procesów na węzeł do uruchomienia dla zadania. | 1 |
TensorFlowConfiguration
Klucz | Typ | Opis | Dozwolone wartości | Wartość domyślna |
---|---|---|---|---|
type |
const | Wymagane. Typ dystrybucji. | tensorflow |
|
worker_count |
liczba całkowita | Liczba procesów roboczych do uruchomienia dla zadania. | Wartość domyślna to resources.instance_count . |
|
parameter_server_count |
liczba całkowita | Liczba serwerów parametrów do uruchomienia dla zadania. | 0 |
Dane wejściowe zadania
Klucz | Typ | Opis | Dozwolone wartości | Wartość domyślna |
---|---|---|---|---|
type |
ciąg | Typ danych wejściowych zadania. Określ uri_file dane wejściowe wskazujące jedno źródło pliku lub uri_folder dane wejściowe wskazujące źródło folderu. |
uri_file , uri_folder , mlflow_model , custom_model |
uri_folder |
path |
ciąg | Ś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 zostaną przekazane 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 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 (w celu odwołania się do najnowszej wersji tego zasobu danych), np. 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 będą używane jako ścieżka instalacji. Folder zostanie zainstalowany jako folder, a plik zostanie zainstalowany jako plik. Usługa Azure Machine Learning rozpozna dane wejściowe ścieżki instalacji. W download trybie dane zostaną pobrane do docelowego obiektu obliczeniowego. Usługa Azure Machine Learning rozpozna dane wejściowe pobranej ścieżki. Jeśli chcesz tylko adres URL lokalizacji przechowywania artefaktów danych, zamiast instalowania lub pobierania samych danych, możesz użyć direct trybu . Spowoduje to przekazanie adresu URL lokalizacji magazynu jako danych wejściowych zadania. Należy pamiętać, że w tym przypadku użytkownik jest w pełni odpowiedzialny 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 Uzyskiwanie dostępu do danych w zadaniu |
ro_mount , download , direct , eval_download , eval_mount |
ro_mount |
Dane wyjściowe zadania
Klucz | Typ | Opis | Dozwolone wartości | Wartość domyślna |
---|---|---|---|---|
type |
ciąg | Typ danych wyjściowych zadania. Dla domyślnego uri_folder typu dane wyjściowe będą odpowiadać folderowi. |
uri_folder , mlflow_model , custom_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 będzie katalogiem zainstalowanym. W przypadku trybu przekazywania zapisane pliki zostaną przekazane na końcu zadania. |
rw_mount , upload |
rw_mount |
Konfiguracje tożsamości
UserIdentityConfiguration
Klucz | Typ | Opis | Dozwolone wartości |
---|---|---|---|
type |
const | Wymagane. Typ tożsamości. | user_identity |
ManagedIdentityConfiguration
Klucz | Typ | Opis | Dozwolone wartości |
---|---|---|---|
type |
const | Wymagane. 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ładów. Poniżej przedstawiono kilka.
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.0/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.0/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.0/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.0/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.0/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: >
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-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu@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.4-ubuntu18.04-py37-cuda11-gpu@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.
YAML: rozproszony interfejs MPI
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python train.py
--epochs ${{inputs.epochs}}
inputs:
epochs: 1
environment: azureml:AzureML-tensorflow-2.7-ubuntu20.04-py38-cuda11-gpu@latest
compute: azureml:gpu-cluster
resources:
instance_count: 2
distribution:
type: mpi
process_count_per_instance: 1
display_name: tensorflow-mnist-distributed-horovod-example
experiment_name: tensorflow-mnist-distributed-horovod-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via Horovod.