Schema YAML del processo di comando dell'interfaccia della riga di comando (v2)

SI APPLICA A:Estensione ml della CLI di Azure v2 (corrente)

Lo schema JSON di origine è disponibile in https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.

Note

La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. Il funzionamento di questa sintassi è garantito solo con la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. È possibile trovare gli schemi per le versioni di estensione precedenti in https://azuremlschemasprod.azureedge.net/.

YAML syntax

Key Type Description Allowed values Default value
$schema string Schema YAML. Se si usa l'estensione Azure Machine Learning per Visual Studio Code per creare il file YAML, l'inclusione di $schema nella parte superiore del file consente di richiamare i completamenti dello schema e delle risorse.
type const Tipo di processo. command command
name string Nome del lavoro. Deve essere univoco in tutti i processi nell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un GUID per il nome.
display_name string Nome visualizzato del processo nell'interfaccia utente di Studio. Può essere non univoco all'interno dell'area di lavoro. Se omesso, Azure Machine Learning genera automaticamente un identificatore aggettivo-sostantivo leggibile per il nome visualizzato.
experiment_name string Nome dell'esperimento in cui organizzare il processo. Il record di esecuzione di ogni processo è organizzato sotto l'esperimento corrispondente nella scheda "Esperimenti" dello studio. Se omesso, Azure Machine Learning lo imposta come predefinito come nome della directory di lavoro in cui è stato creato il processo.
description string Descrizione del processo.
tags object Dizionario dei tag per il processo.
command string Comando da eseguire.
code string Percorso locale della directory del codice sorgente da caricare e usare per il processo.
environment stringa o oggetto Ambiente da usare per il processo. Può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica dell'ambiente inline.

Per fare riferimento a un ambiente esistente, usare la azureml:<environment_name>:<environment_version> sintassi o azureml:<environment_name>@latest per fare riferimento alla versione più recente di un ambiente.

Per definire un ambiente inline, seguire lo schema Ambiente. Escludere le name proprietà e version perché non sono supportate per gli ambienti inline.

Quando si lavora con ambienti curati nell'interfaccia della riga di comando o nell'SDK, i nomi di ambiente curati iniziano con AzureML-. Quando si usa Azure Machine Learning Studio, i nomi degli ambienti curati non hanno questo prefisso. Il motivo di questa differenza è che l'interfaccia utente di Studio visualizza ambienti curati e personalizzati in schede separate, quindi il prefisso non è necessario. L'interfaccia della riga di comando e l'SDK non dispongono di questa separazione, quindi il prefisso viene usato per distinguere tra ambienti curati e personalizzati.
environment_variables object Dizionario delle coppie chiave-valore della variabile di ambiente da impostare nel processo in cui viene eseguito il comando.
distribution object Configurazione di distribuzione per scenari di training distribuiti. Uno di MpiConfiguration, PyTorchConfiguration, TensorFlowConfiguration o RayConfiguration.
compute string Nome della destinazione di calcolo in cui eseguire il processo. Può essere un riferimento a un calcolo esistente nell'area di lavoro (usando la sintassi) o azureml:<compute_name> per designare l'esecuzione local locale. Nota: i processi nella pipeline non sono supportati local come compute local
resources.instance_count integer Numero di nodi da usare per il processo. 1
resources.instance_type string Tipo di istanza da utilizzare per il processo. Applicabile per i processi in esecuzione nel calcolo Kubernetes abilitato per Azure Arc (dove la destinazione di calcolo specificata nel compute campo è di type: kubernetes). Se omesso, per impostazione predefinita viene utilizzato il tipo di istanza predefinito per il cluster Kubernetes. Per altre informazioni, vedere Creare e gestire i tipi di istanze.
resources.shm_size string Dimensioni del blocco di memoria condiviso del contenitore Docker. Deve essere nel formato in <number><unit> cui il numero deve essere maggiore di 0 e l'unità può essere uno di b (byte), (kilobyte), k (megabyte) m o g (gigabyte). 2g
resources.docker_args string Argomenti aggiuntivi da passare al comando Docker run .
resources.locations array Elenco delle località in cui è consentito eseguire il processo.
resources.max_instance_count integer Numero massimo di nodi da usare per il processo (per il training distribuito in modo elastico).
limits.timeout integer Tempo massimo in secondi consentito per l'esecuzione del processo. Quando viene raggiunto questo limite, il sistema annulla il processo.
inputs object Dizionario di input per il processo. La chiave è un nome per l'input nel contesto del processo e il valore è il valore di input.

È possibile fare riferimento agli input nell'oggetto command usando l'espressione ${{ inputs.<input_name> }} .
inputs.<input_name> number, integer, boolean, string o object Uno dei valori letterali (di tipo number, integer, boolean o string) o un oggetto contenente una specifica dei dati di input del processo.
outputs object Dizionario delle configurazioni di output del processo. La chiave è un nome per l'output nel contesto del processo e il valore è la configurazione di output.

È possibile fare riferimento agli output nell'oggetto command usando l'espressione ${{ outputs.<output_name> }} .
outputs.<output_name> object È possibile lasciare vuoto l'oggetto, nel qual caso per impostazione predefinita l'output è di tipo uri_folder e Azure Machine Learning genera un percorso di output per l'output. I file nella directory di output vengono scritti tramite montaggio in lettura/scrittura. Se si vuole specificare una modalità diversa per l'output, specificare un oggetto contenente la specifica dell'output del processo.
queue_settings object Impostazioni della coda per il compito. Configurare un livello di processo e una priorità di pianificazione. Vedere Impostazioni della coda.
services object Dizionario dei servizi processi interattivi (endpoint). Tipi di servizio supportati: ssh, tensor_board, vs_code, jupyter_lab.
identity object L'identità viene usata per l'accesso ai dati. Può essere UserIdentityConfiguration, ManagedIdentityConfiguration, AMLTokenIdentityConfiguration o None. Se UserIdentityConfiguration, l'identità del mittente del processo viene usata per accedere ai dati di input e scrivere i risultati nella cartella di output; in caso contrario, viene usata l'identità gestita della destinazione di calcolo.

Distribution configurations

MpiConfiguration

Key Type Description Allowed values
type const Required. Distribution type. mpi
process_count_per_instance integer Required. Numero di processi per nodo da avviare per il processo.

PyTorchConfiguration

Key Type Description Allowed values Default value
type const Required. Distribution type. pytorch
process_count_per_instance integer Numero di processi per nodo da avviare per il processo. 1

TensorFlowConfiguration

Key Type Description Allowed values Default value
type const Required. Distribution type. tensorflow
worker_count integer Numero di ruoli di lavoro da avviare per il processo. Il valore predefinito è resources.instance_count.
parameter_server_count integer Numero di server di parametri da avviare per il processo. 0

RayConfiguration

Key Type Description Allowed values Default value
type const Required. Distribution type. ray
address string Indirizzo di un cluster Ray esistente a cui connettersi. Se omesso, Azure Machine Learning avvia un nuovo cluster Ray.
port integer Porta del processo Ray head.
dashboard_port integer Porta del processo del dashboard Ray.
include_dashboard boolean Indica se avviare il dashboard Ray.
head_node_additional_args string Argomenti aggiuntivi passati al ray start nodo head.
worker_node_additional_args string Argomenti aggiuntivi passati ai ray start nodi di lavoro.

Job inputs

Key Type Description Allowed values Default value
type string Tipo di input del processo. Specificare uri_file per i dati di input che puntano a una singola origine file o uri_folder per i dati di input che puntano a un'origine cartella. uri_file, uri_folder, mlflow_modelcustom_model uri_folder
path string Percorso dei dati da usare come input. È possibile specificare in alcuni modi:

- Percorso locale del file o della cartella dell'origine dati, path: ./iris.csvad esempio . I dati vengono caricati durante l'invio del processo.

- URI di un percorso cloud del file o della cartella da usare come input. I tipi URI supportati sono azureml, https, wasbs, abfss, adl. Per altre informazioni su come usare il formato URI, vedere azureml://.

: asset di dati di Azure Machine Learning registrato esistente da usare come input. Per fare riferimento a un asset di dati registrato, usare la azureml:<data_name>:<data_version> sintassi o azureml:<data_name>@latest (per fare riferimento alla versione più recente di tale asset di dati), ad esempio path: azureml:cifar10-data:1 o path: azureml:cifar10-data@latest.
mode string Modalità di distribuzione dei dati alla destinazione di calcolo.

Per il montaggio di sola lettura (ro_mount), i dati vengono utilizzati come percorso di montaggio. Una cartella viene montata come cartella e un file viene montato come file. Azure Machine Learning risolve l'input nel percorso di montaggio.

Per download la modalità, i dati vengono scaricati nella destinazione di calcolo. Azure Machine Learning risolve l'input nel percorso scaricato.

Se si vuole solo l'URL della posizione di archiviazione degli artefatti di dati anziché montare o scaricare i dati stessi, è possibile usare la direct modalità . Questa modalità passa l'URL della posizione di archiviazione come input del processo. In questo caso, si è completamente responsabili della gestione delle credenziali per accedere all'archiviazione.

Le eval_mount modalità e eval_download sono univoche per MLTable e monta i dati come percorso o scarica i dati nella destinazione di calcolo.

Per altre informazioni sulle modalità, vedere Accedere ai dati in un processo
ro_mount, download, direct, eval_downloadeval_mount ro_mount

Job outputs

Key Type Description Allowed values Default value
type string Tipo di output del processo. Per il tipo predefinito uri_folder , l'output corrisponde a una cartella. uri_folder , mlflow_model, custom_model uri_folder
mode string Modalità di distribuzione dei file di output nell'archiviazione di destinazione. Per la modalità di montaggio in lettura/scrittura (rw_mount), la directory di output è una directory montata. Per la modalità di caricamento, i file scritti vengono caricati alla fine del processo. rw_mount, upload rw_mount

Identity configurations

UserIdentityConfiguration

Key Type Description Allowed values
type const Required. Identity type. user_identity

ManagedIdentityConfiguration

Key Type Description Allowed values
type const Required. Identity type. managed o managed_identity

AMLTokenIdentityConfiguration

Key Type Description Allowed values
type const Required. Identity type. Il processo usa il token di Azure Machine Learning dell'area di lavoro per l'accesso ai dati. aml_token

Queue settings

Key Type Description Allowed values Default value
job_tier string Livello di processo. spot usa il calcolo preemptible a un costo inferiore. spot, basic, standardpremium
priority string Priorità di pianificazione all'interno del livello selezionato. low, medium, high

Remarks

Il az ml job comando può essere usato per la gestione dei processi di Azure Machine Learning.

Examples

Gli esempi sono disponibili nel repository GitHub di esempi. Le sezioni seguenti illustrano alcuni esempi.

YAML: ciao mondo

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/python:latest

YAML: nome visualizzato, nome dell'esperimento, descrizione e tag

$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: variabili di ambiente

$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: codice sorgente

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
  image: library/python:latest

YAML: input letterali

$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: scrivere in output predefiniti

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

YAML: scrivere nell'output dei dati denominati

$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: input del file URI dell'archivio dati

$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: input della cartella URI dell'archivio dati

$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: input del file 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: input della cartella 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: Notebook tramite 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: src
environment:
  image: library/python:3.11.6

YAML: training del modello Python di base

$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: training di base del modello R con il contesto di compilazione Docker locale

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
  source /usr/venv/bin/activate
  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: PyTorch distribuito

$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.8-cuda12.6@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: TensorFlow distribuito

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

Next steps