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: kubernentescí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_countje .
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_modelcustom_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.csvnapří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, , httpswasbs, 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_downloadeval_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_modelcustom_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.

Další kroky