Schéma YAML úlohy příkazu CLI (v2)
PLATÍ PRO: Rozšíření Azure CLI ml v2 (aktuální)
Zdrojové schéma JSON najdete na adrese https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
Poznámka:
Syntaxe YAML podrobná v tomto dokumentu je založená na schématu JSON pro nejnovější verzi rozšíření ML CLI v2. Tato syntaxe je zaručena pouze pro práci s nejnovější verzí rozšíření ML CLI v2. Schémata pro starší verze rozšíření najdete na adrese https://azuremlschemasprod.azureedge.net/.
Syntaxe YAML
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
$schema |
string | Schéma YAML. Pokud k vytvoření souboru YAML použijete rozšíření Azure Machine Learning VS Code, včetně $schema v horní části souboru, můžete vyvolat schéma a dokončování prostředků. |
||
type |
const | Typ úlohy. | command |
command |
name |
string | Název úlohy. Musí být jedinečný pro všechny úlohy v pracovním prostoru. Pokud tento parametr vynecháte, Azure Machine Learning automaticky vygeneruje identifikátor GUID pro název. | ||
display_name |
string | Zobrazovaný název úlohy v uživatelském rozhraní studia V rámci pracovního prostoru může být neunique. Pokud tento parametr vynecháte, Azure Machine Learning automaticky vygeneruje identifikátor jmenného jména čitelného člověka pro zobrazovaný název. | ||
experiment_name |
string | Název experimentu pro uspořádání úlohy v části Záznam spuštění každé úlohy je uspořádaný pod odpovídajícím experimentem na kartě Experimenty v sadě Studio. Pokud tento parametr vynecháte, Azure Machine Learning ho ve výchozím nastavení nastaví na název pracovního adresáře, ve kterém byla úloha vytvořena. | ||
description |
string | Popis úlohy | ||
tags |
objekt | Slovník značek pro úlohu | ||
command |
string | Příkaz, který se má provést. | ||
code |
string | Místní cesta k adresáři zdrojového kódu, který se má nahrát a použít pro úlohu. | ||
environment |
řetězec nebo objekt | Prostředí, které se má použít pro úlohu. Může se jednat o odkaz na existující prostředí s verzí v pracovním prostoru nebo specifikaci vloženého prostředí. Pokud chcete odkazovat na existující prostředí, použijte azureml:<environment_name>:<environment_version> syntaxi nebo azureml:<environment_name>@latest (k odkazování na nejnovější verzi prostředí). Pokud chcete definovat prostředí vložené, postupujte podle schématu prostředí. Vylučte vlastnosti name a version vlastnosti, protože nejsou podporované pro vložená prostředí. |
||
environment_variables |
objekt | Slovník párů klíč-hodnota proměnné prostředí, které se nastaví v procesu, ve kterém se příkaz spouští. | ||
distribution |
objekt | Konfigurace distribuce pro distribuované scénáře trénování Jedna z funkcí MpiConfiguration, PyTorchConfiguration nebo TensorFlowConfiguration. | ||
compute |
string | Název cílového výpočetního objektu pro spuštění úlohy Může to být odkaz na existující výpočetní prostředky v pracovním prostoru (pomocí azureml:<compute_name> syntaxe) nebo local určit místní spuštění. Poznámka: Úlohy v kanálu se nepodporují local jako compute |
local |
|
resources.instance_count |
integer | Počet uzlů, které se mají pro úlohu použít. | 1 |
|
resources.instance_type |
string | Typ instance, který se má použít pro úlohu. Platí pro úlohy spuštěné na výpočetních prostředcích Kubernetes s podporou Azure Arc (kde je type: kubernentes cílový výpočetní objekt zadaný v compute poli). Pokud tento parametr vynecháte, nastaví se výchozí typ instance pro cluster Kubernetes. Další informace najdete v tématu Vytvoření a výběr typů instancí Kubernetes. |
||
resources.shm_size |
string | Velikost bloku sdílené paměti kontejneru Dockeru. Měla by být ve formátu <number><unit> , ve kterém musí být číslo větší než 0 a jednotka může být jedna z b (bajtů), k (kilobajtů), m (megabajty) nebo g (gigabajty). |
2g |
|
limits.timeout |
integer | Maximální doba v sekundách, po kterou může úloha běžet. Po dosažení tohoto limitu systém úlohu zruší. | ||
inputs |
objekt | Slovník vstupů do úlohy. Klíč je název vstupu v kontextu úlohy a hodnota je vstupní hodnota. Vstupy lze odkazovat ve command výrazu ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
number, integer, boolean, string nebo object | Jedna z literálových hodnot (typu číslo, celé číslo, logická hodnota nebo řetězec) nebo objekt obsahující specifikaci vstupních dat úlohy. | ||
outputs |
objekt | Slovník výstupních konfigurací úlohy Klíč je název výstupu v kontextu úlohy a hodnota je výstupní konfigurace. Na výstupy lze odkazovat pomocí command výrazu ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
objekt | Objekt můžete ponechat prázdný, v takovém případě je výstup typu uri_folder a Azure Machine Learning pro výstup vygeneruje výstupní umístění. Soubory do výstupního adresáře se zapisují prostřednictvím připojení pro čtení i zápis. Pokud chcete pro výstup zadat jiný režim, zadejte objekt obsahující specifikaci výstupu úlohy. |
||
identity |
objekt | Identita se používá pro přístup k datům. Může to být UserIdentityConfiguration, ManagedIdentityConfiguration nebo None. Pokud userIdentityConfiguration, identita odesílače úlohy se použije pro přístup, vstupní data a výsledek zápisu do výstupní složky, jinak se použije spravovaná identita cílového výpočetního objektu. |
Konfigurace distribuce
MpiConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinný: Typ distribuce. | mpi |
process_count_per_instance |
integer | Povinný: Počet procesů na uzel, které se mají pro úlohu spustit. |
PyTorchConfiguration
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
const | Povinný: Typ distribuce. | pytorch |
|
process_count_per_instance |
integer | Počet procesů na uzel, které se mají pro úlohu spustit. | 1 |
TensorFlowConfiguration
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
const | Povinný: Typ distribuce. | tensorflow |
|
worker_count |
integer | Počet pracovníků, kteří se mají pro práci spustit. | Výchozí hodnota resources.instance_count je . |
|
parameter_server_count |
integer | Počet serverů parametrů, které se mají pro úlohu spustit. | 0 |
Vstupy úloh
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
string | Typ vstupu úlohy. Zadejte uri_file vstupní data, která ukazují na jeden zdroj souborů, nebo uri_folder pro vstupní data, která ukazují na zdroj složky. |
uri_file , uri_folder , , mlflow_model custom_model |
uri_folder |
path |
string | Cesta k datům, která se mají použít jako vstup. Je možné zadat několika způsoby: – Místní cesta k souboru nebo složce zdroje dat, path: ./iris.csv například . Data se nahrají během odeslání úlohy. – Identifikátor URI cloudové cesty k souboru nebo složce, které se mají použít jako vstup. Podporované typy identifikátorů URI jsou azureml , , https wasbs , abfss , adl . Další informace o použití formátu identifikátoru azureml:// URI najdete v syntaxi Core yaml. – Existující zaregistrovaný datový prostředek Služby Azure Machine Learning, který se použije jako vstup. Pokud chcete odkazovat na registrovaný datový asset, použijte azureml:<data_name>:<data_version> syntaxi nebo azureml:<data_name>@latest (k odkazování na nejnovější verzi tohoto datového assetu), například path: azureml:cifar10-data:1 nebo path: azureml:cifar10-data@latest . |
||
mode |
string | Režim doručení dat do cílového výpočetního objektu Pro připojení jen pro čtení ( ro_mount ) se data spotřebovávají jako cesta připojení. Složka se připojí jako složka a soubor se připojí jako soubor. Azure Machine Learning přeloží vstup na cestu připojení. V download režimu se data stáhnou do cílového výpočetního objektu. Azure Machine Learning přeloží vstup do stažené cesty. Pokud chcete místo připojení nebo stahování samotných dat pouze adresu URL umístění úložiště artefaktů dat, můžete použít direct režim. Tento režim předává adresu URL umístění úložiště jako vstup úlohy. V tomto případě jste plně zodpovědní za zpracování přihlašovacích údajů pro přístup k úložišti. Režimy eval_mount a eval_download režimy jsou jedinečné pro MLTable a buď připojí data jako cestu, nebo stáhne data do cílového výpočetního objektu. Další informace o režimech najdete v tématu Přístup k datům v úloze. |
ro_mount , download , direct , , eval_download eval_mount |
ro_mount |
Výstupy úloh
Klíč | Typ | Popis | Povolené hodnoty | Default value |
---|---|---|---|---|
type |
string | Typ výstupu úlohy. Pro výchozí uri_folder typ výstup odpovídá složce. |
uri_folder , , mlflow_model custom_model |
uri_folder |
mode |
string | Režim doručení výstupních souborů do cílového úložiště Pro režim připojení pro čtení i zápis (rw_mount ) je výstupní adresář připojeným adresářem. V režimu nahrávání se soubory zapsané na konci úlohy nahrají. |
rw_mount , upload |
rw_mount |
Konfigurace identit
UserIdentityConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinný: Typ identity. | user_identity |
ManagedIdentityConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinný: Typ identity. | managed nebo managed_identity |
Poznámky
Tento az ml job
příkaz se dá použít ke správě úloh Azure Machine Learning.
Příklady
Příklady jsou k dispozici v příkladech v úložišti GitHub. V následujících částech jsou uvedeny některé příklady.
YAML: hello world
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: zobrazovaný název, název experimentu, popis a značky
$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: Proměnné prostředí
$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: zdrojový kód
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: literální vstupy
$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: Zápis do výchozích výstupů
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
YAML: Zápis do výstupu pojmenovaných dat
$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: Vstup souboru URI úložiště dat
$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: Vstup složky URI úložiště dat
$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: Vstup souboru 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: Vstup složky 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: Poznámkový blok prostřednictvím papírového mlýna
$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: Základní trénování modelu Pythonu
$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: Základní trénování modelu R s místním kontextem sestavení Dockeru
$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: distribuovaný 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: distribuovaný 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.