Compartilhar via


Esquema YAML do trabalho de limpeza 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/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 Tipo Descrição Valores permitidos Valor padrão
$schema corda 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 corda 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 corda 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 corda 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 Azure Machine Learning usará experiment_name como padrão o nome do diretório de trabalho em que o trabalho foi criado.
description corda 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 obter o conjunto de expressões possíveis a serem usadas.
objective.primary_metric corda 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() o mesmo nome de métrica correspondente.
objective.goal corda 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 omitido, 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 corda Obrigatórios. 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 obtém 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 (do tipo number, integer, 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 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 Azure Machine Learning gera um local de uri_folder saída para a saída. Todos os arquivos no diretório de saída são gravados por meio da montagem de leitura e 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 os 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 Tipo 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á nulo.
rule corda 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 de Sobol. random, sobol random

GridSamplingAlgorithm

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de algoritmo de amostragem. grid

BayesianSamplingAlgorithm

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de algoritmo de amostragem. bayesian

Políticas de término antecipado

BanditPolicy

Chave Tipo Descrição Valores permitidos Valor padrão
type Const Obrigatórios. 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 Número inteiro A frequência para aplicar a política. 1
delay_evaluation Número 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 Tipo Descrição Valores permitidos Valor padrão
type Const Obrigatórios. O tipo de política. median_stopping
evaluation_interval Número inteiro A frequência para aplicar a política. 1
delay_evaluation Número 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 Tipo Descrição Valores permitidos Valor padrão
type Const Obrigatórios. 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 Número inteiro A frequência para aplicar a política. 1
delay_evaluation Número 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 Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de expressão. choice
values matriz Obrigatórios. A lista de valores discretos a serem escolhidos.

Randint

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

Qlognormal, qnormal

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de expressão. qlognormal, qnormal
mu número Obrigatórios. A média da distribuição normal.
sigma número Obrigatórios. O desvio padrão da distribuição normal.
q Número inteiro Obrigatórios. O fator de suavização.

Qloguniform, quniform

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de expressão. qloguniform, quniform
min_value número Obrigatórios. O valor mínimo no intervalo (inclusive).
max_value número Obrigatórios. O valor mínimo no intervalo (inclusive).
q Número inteiro Obrigatórios. O fator de suavização.

Lognormal, normal

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de expressão. lognormal, normal
mu número Obrigatórios. A média da distribuição normal.
sigma número Obrigatórios. O desvio padrão da distribuição normal.

Uniforme de log

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

Uniforme

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. O tipo de expressão. uniform
min_value número Obrigatórios. O valor mínimo no intervalo (inclusive).
max_value número Obrigatórios. O valor mínimo no intervalo (inclusive).

Atributos da chave limits

Chave Tipo Descrição Valor padrão
max_total_trials Número inteiro O número máximo de trabalhos de avaliação. 1000
max_concurrent_trials Número 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 pode ser executado. Quando esse limite é atingido, o sistema cancela o trabalho de varredura, incluindo todos os seus testes. 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 Tipo Descrição Valor padrão
command corda Obrigatórios. O comando a ser executado.
code corda 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 name porque os version ambientes embutidos não dão 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 das configurações do Mpi, da configuração do PyTorch ou da configuração do 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 Tipo Descrição Valores permitidos
type Const Obrigatórios. Tipo de distribuição. mpi
process_count_per_instance Número inteiro Obrigatórios. O número de processos por nó a iniciar para o trabalho.
PyTorchConfiguration
Chave Tipo Descrição Valores permitidos Valor padrão
type Const Obrigatórios. Tipo de distribuição. pytorch
process_count_per_instance Número inteiro O número de processos por nó a iniciar para o trabalho. 1
TensorFlowConfiguration
Chave Tipo Descrição Valores permitidos Valor padrão
type Const Obrigatórios. Tipo de distribuição. tensorflow
worker_count Número inteiro O número de trabalhos a iniciar para o trabalho. Assume o padrão de resources.instance_count.
parameter_server_count Número inteiro O número de servidores de parâmetros a iniciar para o trabalho. 0

Entradas de trabalho

Chave Tipo Descrição Valores permitidos Valor padrão
type corda 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, acesse Saiba mais sobre o acesso a dados. uri_file, uri_folder, , mltablemlflow_model uri_folder
path corda 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 uso do azureml:// formato URI, visite Sintaxe yaml principal.

– 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 corda 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.

Apenas para 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 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, , downloaddirect ro_mount

Saídas de trabalho

Chave Tipo Descrição Valores permitidos Valor padrão
type corda 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, , mltablemlflow_model uri_folder
mode corda 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 gravados são carregados no final do trabalho. rw_mount, upload rw_mount

Configurações de identidade

UserIdentityConfiguration

Chave Tipo Descrição Valores permitidos
type Const Obrigatórios. Tipo de identidade. user_identity

ManagedIdentityConfiguration

Chave Tipo 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 Azure Machine Learning.

Exemplos

Visite o repositório GitHub de exemplos 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.5@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: olá varredura usando sobol e um valor de semente

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py
    --iris-csv ${{inputs.iris_csv}}
    --learning-rate ${{search_space.learning_rate}}
    --boosting ${{search_space.boosting}}
  environment: azureml:AzureML-lightgbm-3.3@latest
inputs:
  iris_csv:
    type: uri_file
    path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm:
  type: random
  rule: sobol
  seed: 123
search_space:
  learning_rate:
    type: uniform
    min_value: 0.01
    max_value: 0.9
  boosting:
    type: choice
    values: ["gbdt", "dart"]
objective:
  goal: minimize
  primary_metric: test-multi_logloss
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: lightgbm-iris-sweep-example
experiment_name: lightgbm-iris-sweep-example
description: Run a hyperparameter sweep job for LightGBM on Iris dataset.

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.5@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