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