YAML-schema för CLI-kommandojobb (v2)

JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/commandJob.schema.json .

Viktigt

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

YAML-syntax

Nyckel Typ Description Tillåtna värden Standardvärde
$schema sträng YAML-schemat. Om du använder Azure Machine Learning VS Code-tillägget för att skapa YAML-filen, inklusive längst upp i filen, kan du anropa schema- och $schema resursslutningar.
type Const Typ av jobb. command command
name sträng Namnet på jobbet. Måste vara unikt för alla jobb på arbetsytan. Om detta utelämnas kommer Azure ML automatiskt generera ett GUID för namnet.
display_name sträng Visningsnamn för jobbet i studiogränssnittet. Kan vara icke-unik på arbetsytan. Om detta utelämnas kommer Azure ML automatiskt generera en läsbar adjektiv-substantividentifierare för visningsnamnet.
experiment_name sträng Experimentnamn för att organisera jobbet under . Varje jobbs körningspost ordnas under motsvarande experiment på studiofliken "Experiment". Om detta utelämnas får Azure ML som standard namnet på arbetskatalogen där jobbet skapades.
description sträng Beskrivning av jobbet.
tags objekt Ordlista med taggar för jobbet.
command sträng Krävs. Kommandot som ska köras.
code.local_path sträng Lokal sökväg till källkodskatalogen som ska laddas upp och användas för jobbet.
environment sträng eller objekt Krävs. Den miljö som ska användas för jobbet. Detta kan vara antingen en referens till en befintlig versionshanteringsmiljö i arbetsytan eller en infogade miljöspecifikation.

Använd syntaxen för att referera till en befintlig azureml:<environment_name>:<environment_version> miljö.

Om du vill definiera en infogade miljö följer du miljöschemat. Exkludera egenskaperna name och eftersom de inte stöds för version infogade miljöer.
environment_variables objekt Ordlista med namn/värde-par för miljövariabler som ska anges i den process där kommandot körs.
distribution objekt Distributionskonfigurationen för distribuerade träningsscenarier. En av MpiConfiguration, PyTorchConfigurationeller TensorFlowConfiguration.
compute sträng Namnet på beräkningsmålet som jobbet ska köras på. Detta kan vara antingen en referens till en befintlig beräkning i arbetsytan (med hjälp av azureml:<compute_name> syntaxen) eller local för att ange lokal körning. local
resources.instance_count heltal Antalet noder som ska användas för jobbet. 1
limits.timeout heltal Den maximala tiden i sekunder som jobbet får köras. När den här gränsen har nåtts avbryter systemet jobbet.
inputs objekt Ordlista med indata till jobbet. Nyckeln är ett namn på indata i kontexten för jobbet och värdet är indatavärdet.

Indata kan refereras i med command uttrycket ${{ inputs.<input_name> }} .
inputs.<input_name> number, integer, boolean, string or object Ett av ett literalvärde (av typen tal, heltal, boolesk eller sträng), JobInputUrieller JobInputDataset.
outputs objekt Ordlista med utdatakonfigurationer för jobbet. Nyckeln är ett namn på utdata i kontexten för jobbet och värdet är utdatakonfigurationen.

Utdata kan refereras i med command uttrycket ${{ outputs.<output_name> }} .
outputs.<output_name> objekt Du kan antingen ange ett mode valfritt eller lämna objektet tomt. För varje namngiven utdata som outputs anges i ordlistan genererar Azure ML automatiskt en utdataplats.
outputs.<output_name>.mode sträng Läge för hur utdatafiler levereras till mållagringen. För monteringsläge för läsning och skrivning blir utdatakatalogen en monterad katalog. För uppladdningsläge laddas filerna som skrivs till utdatakatalogen upp i slutet av jobbet. rw_mount, upload rw_mount

Distributionskonfigurationer

MpiConfiguration

Nyckel Typ Description Tillåtna värden
type Const Krävs. Distributionstyp. mpi
process_count_per_instance heltal Krävs. Antalet processer per nod som ska startas för jobbet.

PyTorchConfiguration

Nyckel Typ Description Tillåtna värden Standardvärde
type Const Krävs. Distributionstyp. pytorch
process_count_per_instance heltal Antalet processer per nod som ska startas för jobbet. 1

TensorFlowConfiguration

Nyckel Typ Description Tillåtna värden Standardvärde
type Const Krävs. Distributionstyp. tensorflow
worker_count heltal Antalet arbetare som ska startas för jobbet. Standardvärdet är resources.instance_count .
parameter_server_count heltal Antalet parameterservrar som ska startas för jobbet. 0

Jobbindata

JobInputUri

Nyckel Typ Description Tillåtna värden Standardvärde
file sträng URI till en enda fil som ska användas som indata. URI-typer som stöds azureml är , , , , https wasbs abfss adl . Se Grundläggande yaml-syntax för mer information om hur du använder azureml:// URI-formatet. Ett av file eller folder krävs.
folder sträng URI till en mapp som ska användas som indata. URI-typer som stöds azureml är , , , wasbs abfss adl . Se Grundläggande yaml-syntax för mer information om hur du använder azureml:// URI-formatet. Ett av file eller folder krävs.
mode sträng Läge för hur data ska levereras till beräkningsmålet. För skrivskyddad montering och läs-/skrivmontering används data som en monteringssökväg. En mapp monteras som en mapp och en fil monteras som en fil. För nedladdningsläge används data som en nedladdad sökväg. ro_mount, rw_mount, download ro_mount

JobInputDataset

Nyckel Typ Description Tillåtna värden Standardvärde
dataset sträng eller objekt Krävs. En datauppsättning som ska användas som indata. Detta kan vara antingen en referens till en befintlig versionsdatauppsättning på arbetsytan eller en infogade datauppsättningsspecifikation.

Använd syntaxen för att referera till en befintlig azureml:<dataset_name>:<dataset_version> datauppsättning.

Om du vill definiera en infogade datauppsättning följer du datauppsättningsschemat. Exkludera egenskaperna name och eftersom de inte stöds för version infogade datauppsättningar.
mode sträng Läge för hur datauppsättningen ska levereras till beräkningsmålet. För skrivskyddad montering används datauppsättningen som en monteringssökväg. En mapp monteras som en mapp och en fil monteras som den överordnade mappen. För nedladdningsläge används datauppsättningen som en nedladdad sökväg. ro_mount, download ro_mount

Kommentarer

Kommandot az ml job kan användas för att hantera Azure Machine Learning jobb.

Exempel

Exempel finns i exemplen på lagringsplatsen GitHub. Flera visas nedan.

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: visningsnamn, experimentnamn, beskrivning och taggar

$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: miljövariabler

$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: källkod

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

YAML: literala indata

$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: skriv till standardutdata

$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: skriva till namngivna datautdata

$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: URI-filindata för datalager

$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: URI-mappindata för datalager

$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: URI-filindata

$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: URI-mappindata

$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: Notebook via paper mill

$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: grundläggande python-modellträning

$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: grundläggande R-modellträning med lokal Docker-byggkontext

$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: distribuerad 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: distribuerat 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: distribuerad 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.

Nästa steg