Schéma YAML úlohy příkazového řádku (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ě popsané v tomto dokumentu je založená na schématu JSON pro nejnovější verzi rozšíření ML CLI v2. Tato syntaxe zaručuje, že bude fungovat jenom 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 | Výchozí hodnota |
---|---|---|---|---|
$schema |
řetězec | Schéma YAML. Pokud k vytvoření souboru YAML použijete rozšíření VS Code pro Azure Machine Learning, včetně horní části souboru, $schema umožní vám to vyvolat doplňování schématu a prostředků. |
||
type |
const | Typ úlohy. | command |
command |
name |
řetězec | Název úlohy Musí být jedinečný ve všech úlohách v pracovním prostoru. Pokud tento parametr vynecháte, Azure Machine Learning pro název automaticky vygeneruje identifikátor GUID. | ||
display_name |
řetězec | Zobrazovaný název úlohy v uživatelském rozhraní studia Může být v rámci pracovního prostoru jedinečný. Pokud tento identifikátor vynecháte, Azure Machine Learning pro zobrazovaný název automaticky vygeneruje identifikátor adjektivního jména čitelný pro člověka. | ||
experiment_name |
řetězec | Název experimentu pro uspořádání úlohy. Záznam spuštění každé úlohy bude uspořádaný v odpovídajícím experimentu na kartě Experimenty ve studiu. Pokud tento parametr vynecháte, azure Machine Learning použije výchozí název pracovního adresáře, ve kterém byla úloha vytvořena. | ||
description |
řetězec | Popis úlohy | ||
tags |
object | Slovník značek pro úlohu | ||
command |
řetězec | Povinné (pokud nepoužíváte component pole). Příkaz, který se má spustit. |
||
code |
řetězec | 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 | Povinné (pokud nepoužíváte component pole). Prostředí, které se má použít pro úlohu. Může se jednat buď o odkaz na existující prostředí s verzemi v pracovním prostoru, nebo o vloženou specifikaci prostředí. Pokud chcete odkazovat na existující prostředí, použijte syntaxi azureml:<environment_name>:<environment_version> nebo azureml:<environment_name>@latest (pokud chcete odkazovat na nejnovější verzi prostředí). Pokud chcete definovat vložené prostředí, postupujte podle schématu prostředí. name Vylučte vlastnosti a version , protože se pro vložená prostředí nepodporují. |
||
environment_variables |
object | Slovník párů klíč-hodnota proměnných prostředí, které se mají nastavit v procesu, ve kterém je příkaz proveden. | ||
distribution |
object | Konfigurace distribuce pro scénáře distribuovaného trénování Jeden z MpiConfiguration, PyTorchConfiguration nebo TensorFlowConfiguration. | ||
compute |
řetězec | Název cílového výpočetního objektu, na který se má úloha spustit. Může se jednat buď o odkaz na existující výpočetní prostředky v pracovním prostoru (pomocí azureml:<compute_name> syntaxe), nebo local o určení místního spuštění. Poznámka: Úlohy v kanálu se nepodpořily local jako compute |
local |
|
resources.instance_count |
integer | Počet uzlů, které se mají použít pro úlohu. | 1 |
|
resources.instance_type |
řetězec | 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 cílový výpočetní objekt zadaný v compute poli je ).type: kubernentes Pokud tento parametr vynecháte, použije 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 |
řetězec | Velikost bloku sdílené paměti kontejneru Dockeru Mělo by to být ve formátu <number><unit> , kde číslo musí být větší než 0 a jednotka může být jedna z b hodnot (bajty), k (kilobajty), 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 |
object | Slovník vstupů pro úlohu Klíč je název pro vstup v kontextu úlohy a hodnota je vstupní hodnota. Na vstupy je možné odkazovat pomocí command výrazu ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
číslo, celé číslo, logická hodnota, řetězec nebo objekt | Jedna z hodnot literálu (typu číslo, celé číslo, logická hodnota nebo řetězec) nebo objekt obsahující specifikaci vstupních dat úlohy. | ||
outputs |
object | Slovník výstupních konfigurací úlohy. Klíč je název výstupu v kontextu úlohy a hodnota je konfigurace výstupu. Na výstupy lze odkazovat v příkazu command pomocí výrazu ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
object | Objekt můžete nechat prázdný. Ve výchozím nastavení bude výstup typu uri_folder a Azure Machine Learning pro výstup vygeneruje umístění výstupu systémem. Soubory do výstupního adresáře se zapíšou přes 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 |
object | Identita se používá pro přístup k datům. Může to být UserIdentityConfiguration, ManagedIdentityConfiguration nebo None. Pokud se jedná o UserIdentityConfiguration, použije se identita odesílatele úlohy pro přístup ke vstupním datům a zápisu výsledku do výstupní složky, jinak se použije spravovaná identita cílového výpočetního objektu. |
Konfigurace distribuce
Konfigurace mpi
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinná hodnota. Typ distribuce. | mpi |
process_count_per_instance |
integer | Povinná hodnota. Počet procesů na uzel, které se mají spustit pro úlohu. |
Konfigurace PyTorch
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
type |
const | Povinná hodnota. Typ distribuce. | pytorch |
|
process_count_per_instance |
integer | Počet procesů na uzel, které se mají spustit pro úlohu. | 1 |
TensorFlowConfiguration
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
type |
const | Povinná hodnota. Typ distribuce. | tensorflow |
|
worker_count |
integer | Počet pracovních procesů, které se mají spustit pro úlohu. | Výchozí hodnota je resources.instance_count . |
|
parameter_server_count |
integer | Počet serverů parametrů, které se mají spustit pro úlohu. | 0 |
Vstupy úloh
Klíč | Typ | Popis | Povolené hodnoty | Výchozí hodnota |
---|---|---|---|---|
type |
řetězec | Typ vstupu úlohy. Zadejte uri_file pro vstupní data, která odkazují na jeden zdroj souboru, nebo uri_folder pro vstupní data, která odkazují na zdroj složky. |
uri_file , uri_folder , mlflow_model , custom_model |
uri_folder |
path |
řetězec | Cesta k datům, která se mají použít jako vstup. Můžete ho zadat několika způsoby: – Místní cesta k souboru nebo složce zdroje dat, například path: ./iris.csv . Data se nahrají během odesílání úlohy. – Identifikátor URI cloudové cesty k souboru nebo složce, který se použije jako vstup. Podporované typy identifikátorů URI jsou azureml , https , wasbs , abfss , . adl Další informace o tom, jak používat formát identifikátoru URI, najdete v azureml:// tématu Základní syntaxe YAML. – Existující zaregistrovaný datový asset 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 (pro odkazování na nejnovější verzi tohoto datového assetu), například path: azureml:cifar10-data:1 nebo path: azureml:cifar10-data@latest . |
||
mode |
řetězec | Režim doručení dat do cílového výpočetního objektu U připojení jen pro čtení ( ro_mount ) se data spotřebují jako cesta pro připojení. Složka se připojí jako složka a soubor se připojí jako soubor. Azure Machine Learning přeloží vstup do cesty 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 jenom adresu URL umístění úložiště artefaktů dat, můžete použít direct režim . Tím se předá adresa URL umístění úložiště jako vstup úlohy. Všimněte si, že v tomto případě plně zodpovídáte za zpracování přihlašovacích údajů pro přístup k úložišti. eval_mount Režimy a eval_download jsou jedinečné pro MLTable a buď data připojí jako cestu, nebo je stáhne 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 | Výchozí hodnota |
---|---|---|---|---|
type |
řetězec | Typ výstupu úlohy. U výchozího uri_folder typu bude výstup odpovídat složce. |
uri_folder , mlflow_model , custom_model |
uri_folder |
mode |
řetězec | 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 ) bude výstupním adresářem připojený adresář. V režimu nahrávání se zapsané soubory nahrají na konci úlohy. |
rw_mount , upload |
rw_mount |
Konfigurace identit
UserIdentityConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinná hodnota. Typ identity. | user_identity |
ManagedIdentityConfiguration
Klíč | Typ | Popis | Povolené hodnoty |
---|---|---|---|
type |
const | Povinná hodnota. Typ identity. | managed nebo managed_identity |
Poznámky
Příkaz az ml job
je možné použít ke správě úloh služby Azure Machine Learning.
Příklady
Příklady jsou k dispozici v ukázkovém úložišti GitHub. Níže je jich několik.
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.0/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.0/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.0/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.0/labels/latest
YAML: Poznámkový blok prostřednictvím papírny
$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.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: základní trénování modelu R s využitím místního kontextu 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-1.13-cuda11.7@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.12-cuda11@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: distribuované 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.12-cuda11@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.