Esquema YAML do trabalho de varredura CLI (v2)

APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)

O esquema JSON de origem pode ser encontrado em https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Nota

A sintaxe YAML detalhada neste documento é baseada no esquema JSON para a versão mais recente da extensão ML CLI v2. Esta sintaxe é garantida apenas para funcionar com a versão mais recente da extensão ML CLI v2. Você pode encontrar os esquemas para versões de extensão mais antigas em https://azuremlschemasprod.azureedge.net/.

Sintaxe YAML

Chave Tipo Description Valores permitidos Default value
$schema string O esquema YAML. Se você usar a extensão VS Code do Azure Machine Learning para criar o arquivo YAML, poderá invocar as completações de esquema e recursos se incluir $schema na parte superior do arquivo.
type const Obrigatório. O tipo de trabalho. sweep sweep
name string Nome do trabalho. Deve ser exclusivo em todos os trabalhos no espaço de trabalho. Se omitido, o Azure Machine Learning gera automaticamente um GUID para o nome.
display_name string Nome para exibição do trabalho na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho. Se omitido, o Azure Machine Learning gera automaticamente um identificador de substantivo adjetivo legível por humanos para o nome para exibição.
experiment_name string Organize o trabalho sob o nome do experimento. O registro de execução de cada trabalho é organizado sob o experimento correspondente na guia "Experimentos" do estúdio. Se omitido, o Azure Machine Learning assume como experiment_name padrão o nome do diretório de trabalho onde o trabalho foi criado.
description string Descrição do trabalho.
tags objeto Dicionário de tags para o trabalho.
sampling_algorithm objeto Obrigatório. O algoritmo de amostragem de hiperparâmetros a ser usado sobre o search_space. Um de RandomSamplingAlgorithm, GridSamplingAlgorithm ou BayesianSamplingAlgorithm.
search_space objeto Obrigatório. Dicionário do espaço de pesquisa de hiperparâmetros. O nome do hiperparâmetro é a chave e o valor é a expressão do parâmetro.

Os hiperparâmetros podem ser referenciados trial.command no com a ${{ search_space.<hyperparameter> }} expressão.
search_space.<hyperparameter> objeto Visite Expressões de parâmetro para obter o conjunto de expressões possíveis a serem usadas.
objective.primary_metric string Obrigatório. O nome da métrica primária relatada por cada trabalho de avaliação. A métrica deve ser registrada no script de treinamento do usuário, usando mlflow.log_metric() com o mesmo nome de métrica correspondente.
objective.goal string Obrigatório. O objetivo de otimização do objective.primary_metric. maximize, minimize
early_termination objeto A política de rescisão antecipada a utilizar. Um trabalho de avaliação é cancelado quando os critérios da política especificada são atendidos. Se omitido, nenhuma política de rescisão antecipada é aplicada. Um de BanditPolicy, MedianStoppingPolicy ou TruncationSelectionPolicy.
limits objeto Limites para o trabalho de varredura. Consulte Atributos da limits chave.
compute string Obrigatório. Nome do destino de computação no qual executar o trabalho, com a azureml:<compute_name> sintaxe.
trial objeto Obrigatório. O modelo de trabalho para cada avaliação. Cada trabalho de avaliação é fornecido com uma combinação diferente de valores de hiperparâmetros que o sistema coleta amostras do search_space. Visite Atributos da trial chave.
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 command no uso da ${{ inputs.<input_name> }} expressão.
inputs.<input_name> número, inteiro, booleano, cadeia de caracteres ou objeto Um de um valor literal (de tipo número, inteiro, booleano ou string) 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 no command uso da ${{ outputs.<output_name> }} expressão.
outputs.<output_name> objeto Você pode deixar o objeto vazio e, nesse caso, por padrão, a saída é do tipo e o sistema Azure Machine Learning gera um local de uri_folder saída para a saída. Todos os arquivos para o diretório de saída são gravados via montagem de leitura-gravação. Para 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 acesso aos dados. Pode ser Configuração de Identidade de Usuário, Configuração de Identidade Gerenciada ou Nenhuma. Para UserIdentityConfiguration, a identidade do remetente do trabalho é usada para acessar dados de entrada e gravar o resultado na pasta de saída. Caso contrário, a identidade gerenciada do destino de computação será usada.

Algoritmos de amostragem

RandomSamplingAlgorithm

Chave Tipo Description Valores permitidos Default value
type const Obrigatório. O tipo de algoritmo de amostragem. random
seed integer Uma semente aleatória a ser usada para inicializar a geração de números aleatórios. Se omitido, o valor de semente padrão é null.
rule string O tipo de amostragem aleatória a utilizar. O padrão, random, usa amostragem aleatória uniforme simples, enquanto sobol usa a sequência quase aleatória Sobol. random, sobol random

GridSamplingAlgorithm

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de algoritmo de amostragem. grid

BayesianSamplingAlgorithm

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de algoritmo de amostragem. bayesian

Políticas de rescisão antecipada

BanditPolicy

Chave Tipo Description Valores permitidos Default value
type const Obrigatório. O tipo de política. bandit
slack_factor Número A razão usada para calcular a distância permitida do ensaio com melhor desempenho. Um dos slack_factor ou slack_amount é obrigatório.
slack_amount Número A distância absoluta permitida do ensaio com melhor desempenho. Um dos slack_factor ou slack_amount é obrigatório.
evaluation_interval integer A frequência de aplicação da política. 1
delay_evaluation integer O número de intervalos para os quais adiar a primeira avaliação da política. Se especificado, a política se aplica a cada múltiplo evaluation_interval maior ou igual a delay_evaluation. 0

MedianStoppingPolicy

Chave Tipo Description Valores permitidos Default value
type const Obrigatório. O tipo de política. median_stopping
evaluation_interval integer A frequência de aplicação da política. 1
delay_evaluation integer O número de intervalos para os quais adiar a primeira avaliação da política. Se especificado, a política se aplica a cada múltiplo evaluation_interval maior ou igual a delay_evaluation. 0

TruncationSelectionPolicy

Chave Tipo Description Valores permitidos Default value
type const Obrigatório. O tipo de política. truncation_selection
truncation_percentage integer Obrigatório. A porcentagem de trabalhos de avaliação a serem cancelados em cada intervalo de avaliação.
evaluation_interval integer A frequência de aplicação da política. 1
delay_evaluation integer O número de intervalos para os quais adiar a primeira avaliação da política. Se especificado, a política se aplica a cada múltiplo evaluation_interval maior ou igual a delay_evaluation. 0

Expressões de parâmetros

Escolha

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. choice
values matriz Obrigatório. A lista de valores discretos a partir dos quais escolher.

Randint

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. randint
upper integer Obrigatório. O limite superior exclusivo para a gama de números inteiros.

Qlognormal, qnormal

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. qlognormal, qnormal
mu Número Obrigatório. A média da distribuição normal.
sigma Número Obrigatório. O desvio padrão da distribuição normal.
q integer Obrigatório. O fator de suavização.

Qloguniform, quniform

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. qloguniform, quniform
min_value Número Obrigatório. O valor mínimo no intervalo (inclusive).
max_value Número Obrigatório. O valor máximo no intervalo (inclusive).
q integer Obrigatório. O fator de suavização.

Lognormal, normal

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. lognormal, normal
mu Número Obrigatório. A média da distribuição normal.
sigma Número Obrigatório. O desvio padrão da distribuição normal.

Uniforme de madeira

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. loguniform
min_value Número Obrigatório. O valor mínimo no intervalo é exp(min_value) (inclusive).
max_value Número Obrigatório. O valor máximo no intervalo é exp(max_value) (inclusive).

Uniforme

Chave Tipo Description Valores permitidos
type const Obrigatório. O tipo de expressão. uniform
min_value Número Obrigatório. O valor mínimo no intervalo (inclusive).
max_value Número Obrigatório. O valor máximo no intervalo (inclusive).

Atributos da limits chave

Chave Tipo Description Default value
max_total_trials integer O número máximo de trabalhos de avaliação. 1000
max_concurrent_trials integer O número máximo de trabalhos de avaliação que podem ser executados simultaneamente. O padrão é max_total_trials.
timeout integer O tempo máximo, em segundos, que todo o trabalho de varredura pode ser executado. Uma vez atingido esse limite, o sistema cancela o trabalho de varredura, incluindo todas as suas avaliações. 5184000
trial_timeout integer O tempo máximo em segundos que cada trabalho de avaliação pode ser executado. Uma vez atingido este limite, o sistema cancela a versão experimental.

Atributos da trial chave

Chave Tipo Description Default value
command string Obrigatório. 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 string ou objeto Obrigatório. O ambiente a utilizar para o trabalho. Esse valor pode ser uma referência a um ambiente versionado existente no espaço de trabalho ou uma especificação de ambiente embutido.

Para fazer referência a um ambiente existente, use a azureml:<environment-name>:<environment-version> sintaxe.

Para definir um ambiente embutido, siga o esquema Ambiente. Exclua as propriedades e version porque os name ambientes embutidos não oferecem suporte a elas.
environment_variables objeto Dicionário de pares nome-valor da variável de ambiente a definir no processo em que o comando é executado.
distribution objeto A configuração de distribuição para cenários de treinamento distribuído. Uma configuração de Mpi, configuração PyTorch ou configuração TensorFlow.
resources.instance_count integer O número de nós a serem usados para o trabalho. 1

Configurações de distribuição

MpiConfiguration
Chave Tipo Description Valores permitidos
type const Obrigatório. Tipo de distribuição. mpi
process_count_per_instance integer Obrigatório. O número de processos por nó a serem iniciados para o trabalho.
PyTorchConfiguration
Chave Tipo Description Valores permitidos Default value
type const Obrigatório. Tipo de distribuição. pytorch
process_count_per_instance integer O número de processos por nó a serem iniciados para o trabalho. 1
TensorFlowConfiguration
Chave Tipo Description Valores permitidos Default value
type const Obrigatório. Tipo de distribuição. tensorflow
worker_count integer O número de trabalhadores a lançar para o trabalho. O padrão é resources.instance_count.
parameter_server_count integer O número de servidores de parâmetros a serem iniciados para o trabalho. 0

Entradas de trabalho

Chave Tipo Description Valores permitidos Default value
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. Para obter mais informações, visite Saiba mais sobre o acesso a dados. uri_file, uri_folder, mltable, mlflow_model uri_folder
path string O caminho para os dados a serem usados como entrada. Esse valor 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 a submissão de trabalho.

- Um URI de um caminho de nuvem para o arquivo ou pasta para usar como entrada. Os tipos de URI suportados são azureml, https, , abfsswasbs, adl. Para obter mais informações sobre o azureml:// uso do formato URI, visite Sintaxe yaml principal.

- Um ativo de dados registrado existente do Azure Machine Learning para usar como entrada. Para fazer referência a um ativo de dados registrado, use a azureml:<data_name>:<data_version> sintaxe 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 de 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 Aprendizado de Máquina do Azure resolve a entrada para o caminho baixado.

Para apenas a URL do local de armazenamento do artefato ou artefatos de dados, em vez de montar ou baixar os dados em si, use o direct modo. Isso passa na URL do local de armazenamento como a entrada do trabalho. Nesse caso, você é totalmente responsável por lidar com as credenciais para acessar o armazenamento.
ro_mount, download, direct ro_mount

Resultados do trabalho

Chave Tipo Description Valores permitidos Default value
type string O tipo de saída do trabalho. Para o tipo padrão uri_folder , a saída corresponde a uma pasta. uri_file, uri_folder, mltable, mlflow_model uri_folder
mode string Modo de entrega do arquivo ou arquivos de saída para o 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, todos os arquivos escritos são carregados no final do trabalho. rw_mount, upload rw_mount

Configurações de identidade

UserIdentityConfiguration

Chave Tipo Description Valores permitidos
type const Obrigatório. Tipo de identidade. user_identity

ManagedIdentityConfiguration

Chave Tipo Description Valores permitidos
type const Obrigatório. Tipo de identidade. managed ou managed_identity

Observações

Você pode usar o comando para gerenciar trabalhos do az ml job Azure Machine Learning.

Exemplos

Visite os exemplos de repositório GitHub para obter exemplos. Vários são mostrados aqui:

YAML: Olá varredura

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml:AzureML-sklearn-1.1@latest
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: ajuste básico de hiperparâmetros do modelo Python

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml:AzureML-sklearn-1.1@latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

Próximos passos