YAML – schéma příkazu pro úlohy CLI (v2)

Zdrojové schéma JSON najdete na adrese https://azuremlschemas.azureedge.net/latest/commandJob.schema.json .

Důležité

Tato funkce je aktuálně ve verzi Public Preview. Tato verze Preview se poskytuje bez smlouvy o úrovni služeb a nedoporučuje se pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti. Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

Syntaxe YAML

Klíč Typ Description Povolené hodnoty Výchozí hodnota
$schema řetězec Schéma YAML. použijete-li rozšíření Azure Machine Learning VS Code k vytvoření souboru YAML, včetně $schema v horní části souboru, můžete vyvolat dokončení schématu a prostředků.
type const Typ úlohy. command command
name řetězec Název úlohy Musí být jedinečný napříč všemi úlohami v pracovním prostoru. pokud tento parametr vynecháte, Azure ML vygeneruje identifikátor GUID pro název.
display_name řetězec Zobrazovaný název úlohy v uživatelském rozhraní studia V pracovním prostoru může být nejedinečný. pokud tento parametr vynecháte, Azure ML pro zobrazované jméno automaticky čitelný adjektivum přivedený identifikátor substantivum.
experiment_name řetězec Experimentujte s názvem pro uspořádání úlohy. Záznam spuštění každé úlohy bude uspořádán v rámci příslušného experimentu na kartě "experimenty v studiu". pokud tento parametr vynecháte, Azure ML nastaví jako výchozí název pracovního adresáře, ve kterém se úloha vytvořila.
description řetězec Popis úlohy
tags object Slovník značek pro úlohu
command řetězec Požadovanou. Příkaz, který má být spuštěn.
code.local_path ř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 Požadovanou. Prostředí, které se má použít pro úlohu Může to být buď odkaz na existující verzi prostředí v pracovním prostoru nebo specifikace vloženého prostředí.

Chcete-li odkazovat na existující prostředí, použijte azureml:<environment_name>:<environment_version> syntaxi.

Pro definování prostředí vloženého podle schématu prostředí použijte schéma prostředí. Vylučte name vlastnosti a, version protože nejsou podporované pro vložená prostředí.
environment_variables object Slovník pro páry název proměnné prostředí, které se nastaví u procesu, ve kterém se příkaz spustí.
distribution object Konfigurace distribuce pro distribuované školicí scénáře. Jedna z MpiConfiguration, PyTorchConfigurationnebo TensorFlowConfiguration.
compute řetězec Název cílového výpočetního prostředí, na kterém se má úloha spustit Může to být buď odkaz na existující výpočetní prostředky v pracovním prostoru (pomocí azureml:<compute_name> syntaxe), nebo local pro určení místního spuštění. local
resources.instance_count integer Počet uzlů, které se mají použít pro úlohu. 1
limits.timeout integer Maximální doba v sekundách, po kterou může úloha běžet. Po dosažení tohoto limitu bude systém úlohu zrušit.
inputs object Slovník vstupů do úlohy Klíč je název vstupu v kontextu úlohy a hodnota je vstupní hodnota.

Na vstupy lze odkazovat command pomocí ${{ inputs.<input_name> }} výrazu.
inputs.<input_name> číslo, celé číslo, logická hodnota, řetězec nebo objekt Jedna z hodnot literálu (typu Number, Integer, Boolean nebo String), JobInputUrinebo JobInputDataset.
outputs object Slovník výstupních konfigurací úlohy Klíč je název výstupu v rámci úlohy a hodnota je výstupní konfigurace.

Na výstupy lze odkazovat command pomocí ${{ outputs.<output_name> }} výrazu.
outputs.<output_name> object Můžete buď zadat volitelné, mode nebo ponechat objekt prázdný. v případě každého pojmenovaného výstupu zadaného ve outputs slovníku bude Azure ML automaticky generovat výstupní umístění.
outputs.<output_name>.mode řetězec Režim, jak budou výstupní soubory doručeny do cílového úložiště. V případě režimu připojení pro čtení i zápis bude výstupní adresář připojeným adresářem. V případě režimu nahrávání se soubory zapsané do výstupního adresáře nahrají na konci úlohy. rw_mount, upload rw_mount

Konfigurace distribuce

MpiConfiguration

Klíč Typ Description Povolené hodnoty
type const Požadovanou. Typ distribuce. mpi
process_count_per_instance integer Požadovanou. Počet procesů na uzel, který se má pro úlohu spustit.

PyTorchConfiguration

Klíč Typ Description Povolené hodnoty Výchozí hodnota
type const Požadovanou. Typ distribuce. pytorch
process_count_per_instance integer Počet procesů na uzel, který se má pro úlohu spustit. 1

TensorFlowConfiguration

Klíč Typ Description Povolené hodnoty Výchozí hodnota
type const Požadovanou. Typ distribuce. tensorflow
worker_count integer Počet pracovních procesů, které se mají pro úlohu spustit. Výchozí hodnota je resources.instance_count .
parameter_server_count integer Počet serverů parametrů, které se mají pro úlohu spustit 0

Vstupy úloh

JobInputUri

Klíč Typ Description Povolené hodnoty Výchozí hodnota
file řetězec Identifikátor URI pro jeden soubor, který se má použít jako vstup Podporované typy identifikátorů URI jsou azureml , https ,, wasbs abfss , adl . Další informace o použití formátu URI najdete v části základní syntaxe YAML azureml:// . Jedna z file nebo folder je povinná.
folder řetězec Identifikátor URI pro složku, která se má použít jako vstup Podporované typy identifikátorů URI jsou azureml , wasbs , abfss , adl . Další informace o použití formátu URI najdete v části základní syntaxe YAML azureml:// . Jedna z file nebo folder je povinná.
mode řetězec Způsob doručení dat do cíle výpočtů. Pro připojení jen pro čtení a připojení pro čtení a zápis se data budou spotřebovat jako cesta pro připojení. Složka bude připojena jako složka a soubor bude připojen jako soubor. V režimu stahování budou data spotřebována jako stažená cesta. ro_mount, rw_mount, download ro_mount

JobInputDataset

Klíč Typ Description Povolené hodnoty Výchozí hodnota
dataset řetězec nebo objekt Požadovanou. Datová sada, která se má použít jako vstup Může to být buď odkaz na existující datovou sadu s verzí v pracovním prostoru nebo ve specifikaci vložené datové sady.

Chcete-li odkazovat na existující datovou sadu, použijte azureml:<dataset_name>:<dataset_version> syntaxi.

Pokud chcete definovat datovou sadu, postupujte prosím podle schématu datové sady. Vylučte name version vlastnosti a, protože nejsou podporované pro vložené datové sady.
mode řetězec Režim, jakým má být datová sada doručena do cíle výpočtů. Pro připojení jen pro čtení se datová sada použije jako cesta pro připojení. Složka bude připojena jako složka a soubor bude připojen jako nadřazená složka. V režimu stahování bude datová sada spotřebována jako stažená cesta. ro_mount, download ro_mount

Poznámky

az ml jobpříkaz lze použít pro správu úloh Azure Machine Learning.

Příklady

příklady jsou k dispozici v části příklady GitHub úložiště. Níže je uvedeno několik.

YAML: Hello World

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: python:latest
compute: azureml:cpu-cluster

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: python:latest
compute: azureml:cpu-cluster
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: python:latest
compute: azureml:cpu-cluster
environment_variables:
  hello_env_var: "hello world"

YAML: zdrojový kód

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code:
  local_path: src
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: vstupy literálů

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo ${{inputs.hello_string}}
  &&
  echo ${{inputs.hello_number}}
environment:
  image: python:latest
inputs:
  hello_string: "hello world"
  hello_number: 42
compute: azureml:cpu-cluster

YAML: zapsat do výchozích výstupů

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: zapsat do výstupního dat s názvem

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ${{outputs.hello_output}}/helloworld.txt
outputs:
  hello_output:
environment:
  image: python
compute: azureml:cpu-cluster

YAML: vstup souboru identifikátoru URI úložiště dat

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo "--iris-csv: ${{inputs.iris_csv}}"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.iris_csv}}
code:
  local_path: src
inputs:
  iris_csv: 
    file: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: vstup do složky identifikátoru 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"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.data_dir}}/iris.csv
code:
  local_path: src
inputs:
  data_dir: 
    folder: azureml://datastores/workspaceblobstore/paths/example-data/
    mode: rw_mount
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: vstup souboru s identifikátorem URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo "--iris-csv: ${{inputs.iris_csv}}"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.iris_csv}}
code:
  local_path: src
inputs:
  iris_csv: 
    file: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: vstup do složky s identifikátorem URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  ls ${{inputs.data_dir}}
  &&
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.data_dir}}/iris.csv
code:
  local_path: src
inputs:
  data_dir: 
    folder: wasbs://datasets@azuremlexamples.blob.core.windows.net/
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: Poznámkový blok prostřednictvím Papermill

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  pip install ipykernel papermill
  &&
  papermill hello-notebook.ipynb outputs/out.ipynb -k python
code:
  local_path: src
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: základní školení modelu Pythonu

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: src
command: >-
  python main.py 
  --iris-csv ${{inputs.iris_csv}}
  --C ${{inputs.C}}
  --kernel ${{inputs.kernel}}
  --coef0 ${{inputs.coef0}}
inputs:
  iris_csv: 
    file: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
  C: 0.8
  kernel: "rbf"
  coef0: 0.1
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:9
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í školení modelu R s kontextem buildu Local Docker

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
  Rscript train.R 
  --data_folder ${{inputs.iris}}
code:
  local_path: src
inputs:
  iris: 
    file: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  build:
    local_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: Distributed PyTorch

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: 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:
    dataset: azureml:cifar-10-example:1
environment: azureml:AzureML-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu:6
compute: azureml:gpu-cluster
distribution:
  type: pytorch 
  process_count_per_instance: 2
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: Distributed TensorFlow

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code:
  local_path: 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:14
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: tensorflow
  worker_count: 2
  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: Distributed MPI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code:
  local_path: src
command: >-
  python train.py
  --epochs ${{inputs.epochs}}
inputs:
  epochs: 1
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:14
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: mpi
  process_count_per_instance: 2
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.

Další kroky