Dela via


CLI-kommandojobb (v2) YAML-schema

GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)

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

Kommentar

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 är garanterad att endast fungera 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 Tillägget Azure Mašinsko učenje VS Code för att skapa YAML-filen, inklusive $schema längst upp i filen, kan du anropa schema- och resursavslutningar.
type Const Typen av jobb. command command
name sträng Namnet på jobbet. Måste vara unikt för alla jobb på arbetsytan. Om det utelämnas skapar Azure Mašinsko učenje automatiskt ett GUID för namnet.
display_name sträng Visningsnamn för jobbet i studiogränssnittet. Kan vara icke-substantiv i arbetsytan. Om det utelämnas skapar Azure Mašinsko učenje automatiskt en adjektiv-substantividentifierare som kan läsas av människor 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 det utelämnas använder Azure Mašinsko učenje 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 (om det inte använder component fältet). 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 det inte använder component fältet). Miljön som ska användas för jobbet. Kan vara antingen 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 över 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å. 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 har inte stöd local förcompute local
resources.instance_count integer 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 fältet compute är av type: kubernentes). Om det utelämnas är standardinstanstypen för Kubernetes-klustret standardtyp. Mer information finns i Skapa och välj Kubernetes-instanstyper.
resources.shm_size sträng Storleken på docker-containerns delade minnesblock. Bör 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 integer Den maximala tiden i sekunder som jobbet tillåts köras. När den här gränsen har nåtts avbryter systemet jobbet.
inputs objekt Ordlista över indata till jobbet. Nyckeln är ett namn på indata i jobbets kontext och värdet är indatavärdet.

Indata kan refereras i command med uttrycket ${{ inputs.<input_name> }} .
inputs.<input_name> tal, heltal, booleskt värde, 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 är av typen uri_folder och Azure Mašinsko učenje genererar en utdataplats för utdata. Filer till utdatakatalogen skrivs via läs- och skrivmontering. Om du vill ange ett annat läge för utdata anger du ett objekt som innehåller jobbutdataspecifikationen.
identity objekt Identiteten används för dataåtkomst. Det kan vara UserIdentityConfiguration, ManagedIdentityConfiguration eller None. Om UserIdentityConfiguration används identiteten för jobbinskickare för att komma åt, mata in data 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 Obligatoriskt. Distributionstyp. mpi
process_count_per_instance integer Obligatoriskt. Antalet processer per nod som ska startas för jobbet.

PyTorchConfiguration

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

TensorFlowConfiguration

Nyckel Typ Beskrivning Tillåtna värden Standardvärde
type Const Obligatoriskt. Distributionstyp. tensorflow
worker_count integer Antalet arbetare som ska startas för jobbet. Standardvärdet är resources.instance_count.
parameter_server_count integer 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_modelcustom_model uri_folder
path sträng Sökvägen till de data som ska användas som indata. Kan anges på några sätt:

– En lokal sökväg till datakällans fil eller mapp, till exempel 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. Mer information om hur du använder URI-format finns i azureml:// Core yaml-syntax.

– En befintlig registrerad Azure-Mašinsko učenje 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), till exempel 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 Mašinsko učenje löser indata till monteringssökvägen.

För download läge laddas data ned till beräkningsmålet. Azure Mašinsko učenje 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. Det här läget skickar in URL:en för lagringsplatsen som jobbindata. I det här fallet är du helt ansvarig för att hantera autentiseringsuppgifter för att få å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_downloadeval_mount ro_mount

Jobbutdata

Nyckel Typ Beskrivning Tillåtna värden Standardvärde
type sträng Typ av jobbutdata. För standardtypen uri_folder motsvarar utdata en mapp. uri_folder, , mlflow_modelcustom_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 Obligatoriskt. Identitetstyp. user_identity

ManagedIdentityConfiguration

Nyckel Typ Beskrivning Tillåtna värden
type Const Obligatoriskt. Identitetstyp. managed eller managed_identity

Kommentarer

Kommandot az ml job kan användas för att hantera Azure Mašinsko učenje-jobb.

Exempel

Exempel är tillgängliga i GitHub-exempellagringsplatsen. Följande avsnitt visar några av exemplen.

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

$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: 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.5/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.5/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.5/labels/latest

YAML: Notebook via pappersverk

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

Nästa steg