Esquema YAML do trabalho de comando da CLI (v2)
APLICA-SE A: Extensão de ML da CLI do Azurev2 (atual)
O esquema JSON de origem pode ser encontrado em https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
Observação
A sintaxe YAML detalhada neste documento baseia-se no esquema JSON da última versão da extensão de ML da CLI v2. Essa sintaxe só tem a garantia de funcionar com a última versão da extensão de ML da CLI v2. Encontre os esquemas para as versões mais antigas da extensão em https://azuremlschemasprod.azureedge.net/.
Sintaxe YAML
Chave | Type | Descrição | Valores permitidos | Valor padrão |
---|---|---|---|---|
$schema |
string | O esquema YAML. Se você usar a extensão do Azure Machine Learning para VS Code para criar o arquivo YAML, a inclusão de $schema no início do arquivo permitirá invocar conclusões de esquema e recursos. |
||
type |
const | O tipo de trabalho. | command |
command |
name |
string | Nome do trabalho. Precisa ser exclusivo em todos os trabalhos no espaço de trabalho. Se não for especificado, o Azure Machine Learning irá gerar automaticamente um GUID para o nome. | ||
display_name |
string | Nome de exibição do trabalho na interface do usuário no Estúdio. Dentro do workspace ele pode ser não exclusivo. Se for omitido, o Azure Machine Learning irá gerar automaticamente um identificador com adjetivo-substantivo legível como o nome de exibição. | ||
experiment_name |
string | Nome do experimento sob o qual o trabalho é organizado. O registro de execução de cada trabalho é organizado no experimento correspondente na guia "Experimentos" do estúdio. Se omitido, o Azure Machine Learning o padronizará para o nome do diretório de trabalho em que o trabalho foi criado. | ||
description |
string | Descrição do trabalho. | ||
tags |
objeto | Dicionário de tags para o trabalho. | ||
command |
string | O comando a ser executado. | ||
code |
string | Caminho local para o diretório de código-fonte a ser carregado e usado para o trabalho. | ||
environment |
cadeia de caracteres ou objeto | O ambiente a ser usado para o trabalho. Pode ser uma referência a um ambiente com versão existente no workspace ou uma especificação de ambiente embutido. Para fazer referência a um ambiente existente, use a sintaxe azureml:<environment_name>:<environment_version> ou azureml:<environment_name>@latest (para fazer referência à versão mais recente de um ambiente). Siga o esquema do ambiente para definir um ambiente embutido. Exclua as propriedades name e version , pois não há suporte para elas nos ambientes embutidos. |
||
environment_variables |
objeto | Dicionário de pares chave-valor da variável de ambiente a ser definido no processo em que o comando é executado. | ||
distribution |
objeto | A configuração de distribuição nos cenários de treinamento distribuídos. Um de MpiConfiguration, PyTorchConfiguration ou TensorFlowConfiguration. | ||
compute |
string | Nome do destino de computação no qual executar o trabalho. Pode ser uma referência a uma computação existente no workspace (usando a sintaxe) ou local para designar a azureml:<compute_name> execução local. Observação: os trabalhos no pipeline não dão suporte a local como compute |
local |
|
resources.instance_count |
inteiro | O número de nós que serão usados para o trabalho. | 1 |
|
resources.instance_type |
cadeia de caracteres | O tipo de instância a ser usado para o trabalho. Aplicável para trabalhos em execução na computação Kubernetes habilitada para o Azure Arc (onde o destino de computação especificado no campo compute é de type: kubernentes ). Se omitido, o padrão é o tipo de instância padrão para o cluster do Kubernetes. Para obter mais informações, consulte Criar e selecionar tipos de instância de Kubernetes. |
||
resources.shm_size |
string | O tamanho do bloco de memória compartilhada do contêiner do docker. Deve estar no formato em <number><unit> que o número deve ser maior que 0 e a unidade pode ser uma de b (bytes), k (kilobytes), m (megabytes) ou g (gigabytes). |
2g |
|
limits.timeout |
Número inteiro | O tempo máximo em segundos que o trabalho tem permissão para ser executado. Quando esse limite é atingido, o sistema cancela o trabalho. | ||
inputs |
objeto | Dicionário de entradas para o trabalho. A chave é um nome para a entrada dentro do contexto do trabalho e o valor é o valor de entrada. As entradas podem ser referenciadas em command usando a expressão ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
número, número inteiro, booliano, cadeia de caracteres ou objeto | Um dos valores literais (de número de tipo, inteiro, booliano ou cadeia de caracteres) ou um objeto que contém uma especificação de dados de entrada de trabalho. | ||
outputs |
objeto | Dicionário de configurações de saída do trabalho. A chave é um nome para a saída dentro do contexto do trabalho e o valor é a configuração de saída. As saídas podem ser referenciadas em command usando a expressão ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
objeto | Você pode deixar o objeto vazio e, nesse caso, por padrão, a saída é do tipo uri_folder e o Azure Machine Learning gera um local de saída para a saída. Os arquivos no diretório de saída são gravados por meio da montagem de leitura e gravação. Se você desejar especificar um modo diferente para a saída, forneça um objeto que contenha a especificação de saída do trabalho. |
||
identity |
objeto | A identidade é usada para acessar dados. Pode ser UserIdentityConfiguration, ManagedIdentityConfiguration ou None. Se UserIdentityConfiguration, a identidade do remetente do trabalho for usada para acessar, inserir dados e gravar o resultado na pasta de saída, caso contrário, a identidade gerenciada do destino de computação será usada. |
Configurações de distribuição
MpiConfiguration
Chave | Type | Descrição | Valores permitidos |
---|---|---|---|
type |
const | Obrigatórios. Tipo de distribuição. | mpi |
process_count_per_instance |
inteiro | Obrigatórios. O número de processos por nó a iniciar para o trabalho. |
PyTorchConfiguration
Chave | Type | Descrição | Valores permitidos | Valor padrão |
---|---|---|---|---|
type |
const | Obrigatórios. Tipo de distribuição. | pytorch |
|
process_count_per_instance |
inteiro | O número de processos por nó a iniciar para o trabalho. | 1 |
TensorFlowConfiguration
Chave | Type | Descrição | Valores permitidos | Valor padrão |
---|---|---|---|---|
type |
const | Obrigatórios. Tipo de distribuição. | tensorflow |
|
worker_count |
inteiro | O número de trabalhos a iniciar para o trabalho. | Assume o padrão de resources.instance_count . |
|
parameter_server_count |
inteiro | O número de servidores de parâmetros a iniciar para o trabalho. | 0 |
Entradas de trabalho
Chave | Type | Descrição | Valores permitidos | Valor padrão |
---|---|---|---|---|
type |
string | O tipo de entrada de trabalho. Especifique uri_file para dados de entrada que apontem para uma única fonte de arquivo ou uri_folder para dados de entrada que apontem para uma fonte de pasta. |
uri_file , uri_folder , mlflow_model , custom_model |
uri_folder |
path |
string | O caminho para os dados a serem usados como entrada. Pode ser especificado de algumas maneiras: – Um caminho local para o arquivo ou pasta da fonte de dados, por exemplo, path: ./iris.csv . Os dados são carregados durante o envio do trabalho. - Um URI de um caminho de nuvem para o arquivo ou pasta a ser usado como entrada. Os tipos de URI com suporte são azureml , https , wasbs , abfss , adl . Confira Sintaxe principal do YAML para saber mais sobre como usar o formato URI azureml:// . – Um ativo de dados existente e registrado do Azure Machine Learning a ser usado como a entrada. Para fazer referência a um ativo de dados registrado, use a sintaxe azureml:<data_name>:<data_version> ou azureml:<data_name>@latest (para fazer referência à versão mais recente desse ativo de dados), por exemplo, path: azureml:cifar10-data:1 ou path: azureml:cifar10-data@latest . |
||
mode |
string | Modo como os dados devem ser entregues ao destino de computação. Para montagem somente leitura ( ro_mount ), os dados são consumidos como um caminho de montagem. Uma pasta é montada como uma pasta e um arquivo é montado como um arquivo. O Azure Machine Learning resolve a entrada para o caminho de montagem. Para download o modo, os dados são baixados para o destino de computação. O Azure Machine Learning resolve a entrada para o caminho baixado. Se você quiser apenas a URL do local de armazenamento dos artefatos de dados em vez de montar ou baixar os dados em si, poderá usar o direct modo. Esse modo passa a URL do local de armazenamento como a entrada do trabalho. Nesse caso, você é totalmente responsável por identificar credenciais para acessar o armazenamento. Os modos eval_mount e eval_download são exclusivos da MLTable e montam os dados como um caminho ou baixam os dados para o destino de computação. Para obter mais informações sobre os modos, confira Acessar dados em um trabalho |
ro_mount , download , direct , eval_download , eval_mount |
ro_mount |
Saídas de trabalho
Chave | Type | Descrição | Valores permitidos | Valor padrão |
---|---|---|---|---|
type |
string | O tipo de saída de trabalho. Para o tipo padrão uri_folder , a saída corresponderá a uma pasta. |
uri_folder , mlflow_model , custom_model |
uri_folder |
mode |
string | Modo de como os arquivos de saída são entregues ao armazenamento de destino. Para o modo de montagem de leitura/gravação (rw_mount ), o diretório de saída é um diretório montado. Para o modo de upload, os arquivos gravados são carregados no final do trabalho. |
rw_mount , upload |
rw_mount |
Configurações de identidade
UserIdentityConfiguration
Chave | Type | Descrição | Valores permitidos |
---|---|---|---|
type |
const | Obrigatórios. Tipo de identidade. | user_identity |
ManagedIdentityConfiguration
Chave | Type | Descrição | Valores permitidos |
---|---|---|---|
type |
const | Obrigatórios. Tipo de identidade. | managed ou managed_identity |
Comentários
O comando az ml job
pode ser usado para gerenciar trabalhos no Azure Machine Learning.
Exemplos
Os exemplos estão disponíveis no repositório de exemplos do GitHub. As seções a seguir mostram alguns dos exemplos.
YAML: olá, mundo
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: nome de exibição, nome do experimento, descrição e marcas
$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: variáveis de 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: código-fonte
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: entradas literais
$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: gravar em saídas padrão
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
YAML: gravar em saídas de dados nomeados
$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: entrada de arquivo de URI de armazenamento de dados
$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: entrada de pasta de URI de armazenamento de dados
$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: entrada de arquivo de 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: entrada de pasta de 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 através de 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: treinamento básico do modelo Python
$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: treinamento básico do modelo R com contexto de compilação local do Docker
$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: PyTorch distribuído
$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.2-cuda12.1@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 distribuído
$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.