Share via


Esquema YAML do trabalho de limpeza da CLI (v2)

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

O esquema JSON de origem pode ser encontrado em https://azuremlschemas.azureedge.net/latest/sweepJob.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ê usa a extensão do VS Code para Azure Machine Learning para criar o arquivo YAML, você poderá invocar preenchimentos de esquema e recursos se incluir $schema na parte superior do arquivo.
type const Obrigatórios. O tipo de trabalho. sweep sweep
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 espaço de trabalho 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 Organize o trabalho sob o nome do experimento. O registro de execução de cada trabalho é organizado no experimento correspondente da guia "Experimentos" do estúdio. Se omitido, o Aprendizado de Máquina do Azure assumirá experiment_name como 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órios. O algoritmo de amostragem de hiperparâmetro a ser usado sobre o search_space. Um de RandomSamplingAlgorithm, GridSamplingAlgorithm ou BayesianSamplingAlgorithm.
search_space objeto Obrigatórios. Dicionário do espaço de pesquisa do hiperparâmetro. 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 o conjunto de expressões possíveis a serem usadas.
objective.primary_metric string Obrigatórios. O nome da métrica primária relatada por cada trabalho de avaliação gratuita. 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órios. A meta de otimização do objective.primary_metric. maximize, minimize
early_termination objeto A política de término antecipado a ser usada. Um trabalho de avaliação gratuita é cancelado quando os critérios da política especificada são atendidos. Se omitida, nenhuma política de rescisão antecipada será aplicada. Um BanditPolicy, MedianStoppingPolicy ou TruncationSelectionPolicy.
limits objeto Limites para o trabalho de varredura. Consulte Atributos da chave limits.
compute string Obrigatória. Nome do destino de computação no qual executar o trabalho, com a azureml:<compute_name> sintaxe.
trial objeto Obrigatórios. O modelo de trabalho para cada avaliação gratuita. Cada trabalho de avaliação é fornecido com uma combinação diferente de valores de hiperparâmetro que o sistema 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 em command usando a expressão ${{ inputs.<input_name> }}.
inputs.<input_name> número, número inteiro, booliano, cadeia de caracteres ou objeto Um de um valor literal (de número de tipo, inteiro, booleano 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 e o sistema do Aprendizado de Máquina do Azure 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 acessar dados. Pode ser Configuração de Identidade do 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.

Algoritmo de amostragem

RandomSamplingAlgorithm

Chave Type Descrição Valores permitidos Valor padrão
type const Obrigatórios. O tipo de algoritmo de amostragem. random
seed Número inteiro 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 será null.
rule string O tipo de amostragem aleatória a ser usada. 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 Type Descrição Valores permitidos
type const Obrigatória. O tipo de algoritmo de amostragem. grid

BayesianSamplingAlgorithm

Chave Type Descrição Valores permitidos
type const Obrigatória. O tipo de algoritmo de amostragem. bayesian

Políticas de término antecipado

BanditPolicy

Chave Type Descrição Valores permitidos Valor padrão
type const Obrigatória. O tipo de política. bandit
slack_factor número A taxa usada para calcular a distância permitida da avaliação gratuita de melhor desempenho. Um dos dois é obrigatório, slack_factor ou slack_amount.
slack_amount número A distância absoluta permitida da avaliação gratuita de melhor desempenho. Um dos dois é obrigatório, slack_factor ou slack_amount.
evaluation_interval inteiro A frequência para aplicar a política. 1
delay_evaluation inteiro O número de intervalos para os quais atrasar a primeira avaliação de política. Se for especificado, a política se aplicará a cada múltiplo de evaluation_interval maior que ou igual a delay_evaluation. 0

MedianStoppingPolicy

Chave Type Descrição Valores permitidos Valor padrão
type const Obrigatória. O tipo de política. median_stopping
evaluation_interval Número inteiro A frequência para aplicar a política. 1
delay_evaluation inteiro O número de intervalos para os quais atrasar a primeira avaliação de política. Se for especificado, a política se aplicará a cada múltiplo de evaluation_interval maior que ou igual a delay_evaluation. 0

TruncationSelectionPolicy

Chave Type Descrição Valores permitidos Valor padrão
type const Obrigatória. O tipo de política. truncation_selection
truncation_percentage Número inteiro Obrigatórios. O percentual de trabalhos de avaliação gratuita a ser cancelado em cada intervalo de avaliação.
evaluation_interval inteiro A frequência para aplicar a política. 1
delay_evaluation inteiro O número de intervalos para os quais atrasar a primeira avaliação de política. Se for especificado, a política se aplicará a cada múltiplo de evaluation_interval maior que ou igual a delay_evaluation. 0

Expressões de parâmetro

Opção

Chave Type Descrição Valores permitidos
type const Obrigatória. O tipo de expressão. choice
values matriz Obrigatória. A lista de valores discretos dos quais escolher.

Randint

Chave Type Descrição Valores permitidos
type const Obrigatória. O tipo de expressão. randint
upper Número inteiro Obrigatórios. O limite superior exclusivo para o intervalo de inteiros.

Qlognormal, qnormal

Chave Type Descrição Valores permitidos
type const Obrigatória. 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 inteiro Obrigatórios. O fator de suavização.

Qloguniform, quniform

Chave Type Descrição Valores permitidos
type const Obrigatória. 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ínimo no intervalo (inclusive).
q inteiro Obrigatórios. O fator de suavização.

Lognormal, normal

Chave Type Descrição Valores permitidos
type const Obrigatória. 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.

Loguniforme

Chave Type Descrição Valores permitidos
type const Obrigatória. O tipo de expressão. loguniform
min_value número Obrigatória. O valor mínimo no intervalo é exp(min_value) (inclusive).
max_value número Obrigatória. O valor máximo no intervalo é exp(max_value) (inclusive).

Uniforme

Chave Type Descrição Valores permitidos
type const Obrigatória. 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ínimo no intervalo (inclusive).

Atributos da chave limits

Chave Type Descrição Valor padrão
max_total_trials inteiro O número máximo de trabalhos de avaliação. 1000
max_concurrent_trials inteiro O número máximo de trabalhos de avaliação que podem ser executados simultaneamente. Assume o padrão de max_total_trials.
timeout Número inteiro O tempo máximo, em segundos, que todo o trabalho de varredura tem permissão para executar. Quando esse limite é atingido, o sistema cancela o trabalho de varredura, incluindo todas as suas tentativas. 5184000
trial_timeout Número inteiro O tempo máximo em segundos que cada trabalho de avaliação gratuita tem permissão para ser executado. Quando esse limite é atingido, o sistema cancela a avaliação.

Atributos da chave trial

Chave Type Descrição Valor padrão
command string Obrigatórios. 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 Obrigatórios. O ambiente a ser usado para o trabalho. Esse valor pode ser uma referência para um ambiente com versão existente no espaço de trabalho ou uma especificação de ambiente embutido.

Use a sintaxe azureml:<environment-name>:<environment-version> para referenciar um ambiente existente.

Siga o esquema do ambiente para definir um ambiente embutido. 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 ser definido no processo em que o comando é executado.
distribution objeto A configuração de distribuição nos cenários de treinamento distribuídos. Uma configuração de Mpi, configuração de PyTorch ou configuração de TensorFlow.
resources.instance_count Número inteiro O número de nós que serão usados para o trabalho. 1

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. Para obter mais informações, visite Saiba mais sobre 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 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. Para obter mais informações sobre o azureml:// uso do formato URI, visite Core yaml syntax.

– 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 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 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 Aprendizado de Máquina do Azure 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 de dados ou artefatos, em vez de montar ou baixar os dados em si, use o direct modo. Isso 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.
ro_mount, download, direct ro_mount

Saídas de trabalho

Chave Type Descrição Valores permitidos Valor padrão
type string O tipo de saída do trabalho. Para o tipo padrão uri_folder, a saída corresponderá a uma pasta. uri_file, uri_folder, mltable, mlflow_model uri_folder
mode string Modo de entrega do(s) arquivo(s) de saída para o armazenamento de destino. Para o modo de montagem leitura-gravação (rw_mount), o diretório de saída é um diretório montado. Para o modo de upload, todos 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

Você pode usar o comando para gerenciar trabalhos do az ml job Aprendizado de Máquina do Azure.

Exemplos

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

YAML: Olá, sweep

$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âmetro do modelo do 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óximas etapas