YAML-schema för CLI-kommandojobb (v2)
GÄLLER FÖR:Azure CLI ml-tillägg v2 (aktuellt)
JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
Anteckning
YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för den senaste versionen av ML CLI v2-tillägget. Den här syntaxen fungerar garanterat endast med den senaste versionen av ML CLI v2-tillägget. Du hittar scheman för äldre tilläggsversioner på https://azuremlschemasprod.azureedge.net/.
YAML-syntax
Nyckel | Typ | Beskrivning | 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 $schema överst i filen, kan du anropa schema- och resursslutsättningar. |
||
type |
Const | Typ av jobb. | command |
command |
name |
sträng | Namnet på jobbet. Måste vara unikt för alla jobb på arbetsytan. Om det utelämnas genereras ett GUID för namnet automatiskt i Azure Machine Learning. | ||
display_name |
sträng | Visningsnamn för jobbet i studiogränssnittet. Kan vara icke-unik på arbetsytan. Om det utelämnas skapar Azure Machine Learning automatiskt en adjektiv-substantividentifierare som kan läsas av människor för visningsnamnet. | ||
experiment_name |
sträng | Experimentnamn som jobbet ska ordnas under. Varje jobbs körningspost ordnas under motsvarande experiment på studiofliken "Experiment". Om det utelämnas kommer Azure Machine Learning som standard att ange namnet på arbetskatalogen där jobbet skapades. | ||
description |
sträng | Beskrivning av jobbet. | ||
tags |
objekt | Ordlista över taggar för jobbet. | ||
command |
sträng | Krävs (om fältet inte används component ). Kommandot som ska köras. |
||
code |
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 (om fältet inte används component ). Miljön som ska användas för jobbet. Detta kan antingen vara en referens till en befintlig version av miljön på arbetsytan eller en infogad miljöspecifikation. Om du vill referera till en befintlig miljö använder du syntaxen azureml:<environment_name>:<environment_version> eller azureml:<environment_name>@latest (för att referera till den senaste versionen av en miljö). Om du vill definiera en infogad miljö följer du miljöschemat. name Exkludera egenskaperna och version eftersom de inte stöds för infogade miljöer. |
||
environment_variables |
objekt | Ordlista med nyckel/värde-par för miljövariabler som ska anges i processen där kommandot körs. | ||
distribution |
objekt | Distributionskonfigurationen för distribuerade träningsscenarier. En av MpiConfiguration, PyTorchConfiguration eller TensorFlowConfiguration. | ||
compute |
sträng | Namnet på beräkningsmålet som jobbet ska köras på. Detta kan antingen vara en referens till en befintlig beräkning på arbetsytan (med hjälp av syntaxen azureml:<compute_name> ) eller local för att ange lokal körning. Obs! Jobb i pipelinen hade inte stöd local för som compute |
local |
|
resources.instance_count |
heltal | Antalet noder som ska användas för jobbet. | 1 |
|
resources.instance_type |
sträng | Den instanstyp som ska användas för jobbet. Gäller för jobb som körs på Azure Arc-aktiverad Kubernetes-beräkning (där beräkningsmålet som anges i compute fältet är ).type: kubernentes Om detta utelämnas är standardinstanstypen för Kubernetes-klustret standard. Mer information finns i Skapa och välja Kubernetes-instanstyper. |
||
resources.shm_size |
sträng | Storleken på Docker-containerns delade minnesblock. Detta ska vara i formatet <number><unit> där talet måste vara större än 0 och enheten kan vara en av b (byte), k (kilobyte), m (megabyte) eller g (gigabyte). |
2g |
|
limits.timeout |
heltal | Den maximala tiden i sekunder som jobbet tillåts att köras. När den här gränsen har nåtts avbryts jobbet. | ||
inputs |
objekt | Ordlista med indata till jobbet. Nyckeln är ett namn för indata i kontexten för jobbet och värdet är indatavärdet. Indata kan refereras i command med uttrycket ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
tal, heltal, boolesk, sträng eller objekt | Ett av ett literalvärde (av typnummer, heltal, booleskt värde eller sträng) eller ett objekt som innehåller en dataspecifikation för jobbindata. | ||
outputs |
objekt | Ordlista över utdatakonfigurationer för jobbet. Nyckeln är ett namn på utdata i jobbets kontext och värdet är utdatakonfigurationen. Utdata kan refereras i command med uttrycket ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
objekt | Du kan lämna objektet tomt, i vilket fall som standard utdata kommer att vara av typen uri_folder och Azure Machine Learning systemgenereras en utdataplats för utdata. Filer till utdatakatalogen skrivs via läs-/skrivmontering. Om du vill ange ett annat läge för utdata anger du ett objekt som innehåller specifikationen för jobbutdata. |
||
identity |
objekt | Identiteten används för dataåtkomst. Det kan vara UserIdentityConfiguration, ManagedIdentityConfiguration eller None. Om det är UserIdentityConfiguration används identiteten för jobbskickare för att komma åt indata och skriva resultat till utdatamappen, annars används den hanterade identiteten för beräkningsmålet. |
Distributionskonfigurationer
MpiConfiguration
Nyckel | Typ | Beskrivning | 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 | Beskrivning | 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 | Beskrivning | 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
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
sträng | Typ av jobbindata. Ange uri_file för indata som pekar på en enda filkälla eller uri_folder för indata som pekar på en mappkälla. |
uri_file , uri_folder , mlflow_model , custom_model |
uri_folder |
path |
sträng | Sökvägen till de data som ska användas som indata. Detta kan anges på några sätt: – En lokal sökväg till datakällans fil eller mapp, t.ex. path: ./iris.csv . Data laddas upp under jobböverföringen. – En URI för en molnsökväg till filen eller mappen som ska användas som indata. URI-typer som stöds är azureml , https , wasbs , abfss , adl . Se Core yaml-syntax för mer information om hur du använder URI-formatet azureml:// . – En befintlig registrerad Azure Machine Learning-datatillgång som ska användas som indata. Om du vill referera till en registrerad datatillgång använder du syntaxen azureml:<data_name>:<data_version> eller azureml:<data_name>@latest (för att referera till den senaste versionen av den datatillgången), t.ex. path: azureml:cifar10-data:1 eller path: azureml:cifar10-data@latest . |
||
mode |
sträng | Läge för hur data ska levereras till beräkningsmålet. För skrivskyddad montering ( ro_mount ) används data som en monteringssökväg. En mapp monteras som en mapp och en fil monteras som en fil. Azure Machine Learning löser indata till monteringssökvägen. För download läge laddas data ned till beräkningsmålet. Azure Machine Learning löser indata till den nedladdade sökvägen. Om du bara vill ha URL:en för lagringsplatsen för dataartefakterna i stället för att montera eller ladda ned själva data, kan du använda direct läget. Då skickas url:en för lagringsplatsen som jobbindata. Observera att du i det här fallet är fullt ansvarig för att hantera autentiseringsuppgifter för åtkomst till lagringen. Lägena eval_mount och eval_download är unika för MLTable och monterar antingen data som en sökväg eller laddar ned data till beräkningsmålet. Mer information om lägen finns i Åtkomst till data i ett jobb |
ro_mount , download , direct , eval_download , eval_mount |
ro_mount |
Jobbutdata
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
type |
sträng | Typen av jobbutdata. För standardtypen uri_folder motsvarar utdata en mapp. |
uri_folder , mlflow_model , custom_model |
uri_folder |
mode |
sträng | Läge för hur utdatafiler levereras till mållagringen. För skrivskyddat monteringsläge (rw_mount ) är utdatakatalogen en monterad katalog. För uppladdningsläge laddas de filer som skrivs upp i slutet av jobbet. |
rw_mount , upload |
rw_mount |
Identitetskonfigurationer
UserIdentityConfiguration
Nyckel | Typ | Beskrivning | Tillåtna värden |
---|---|---|---|
type |
Const | Krävs. Identitetstyp. | user_identity |
ManagedIdentityConfiguration
Nyckel | Typ | Beskrivning | Tillåtna värden |
---|---|---|---|
type |
Const | Krävs. Identitetstyp. | managed eller managed_identity |
Kommentarer
Kommandot az ml job
kan användas för att hantera Azure Machine Learning-jobb.
Exempel
Exempel är tillgängliga i github-exempellagringsplatsen. Flera visas nedan.
YAML: hello world
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: visningsnamn, experimentnamn, beskrivning och taggar
$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: miljövariabler
$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: källkod
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: literala indata
$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: skriv till standardutdata
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
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
YAML: indata för datalager-URI-filer
$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: 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"
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: URI-filindata
$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: URI-mappindata
$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: Notebook via papperskvarn
$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: grundläggande Python-modellträning
$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: 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: 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: distribuerad 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-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu@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: Distribuerat 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.4-ubuntu18.04-py37-cuda11-gpu@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: distribuerad 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.7-ubuntu20.04-py38-cuda11-gpu@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.