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_model custom_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 , , https wasbs , 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_download eval_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_model custom_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.