Compartir a través de


Esquema YAML del trabajo de barrido de la CLI (v2)

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

El esquema JSON de origen se puede encontrar en https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Nota

La sintaxis de YAML que se detalla en este documento se basa en el esquema JSON de la versión más reciente de la extensión ML de la CLI v2. Se garantiza que esta sintaxis solo funciona con la versión más reciente de la extensión ML de la CLI v2. Dispone de los esquemas de las versiones de anteriores de la extensión en https://azuremlschemasprod.azureedge.net/.

Sintaxis de YAML

Clave Tipo Descripción Valores permitidos Valor predeterminado
$schema string Esquema de YAML. Si usa la extensión VS Code de Azure Machine Learning para crear el archivo YAML, puede invocar las finalizaciones del esquema y los recursos sin incluye $schema en la parte superior del archivo.
type const Necesario. Tipo de trabajo. sweep sweep
name string Nombre del trabajo. Debe ser único en todos los trabajos del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un GUID para el nombre.
display_name string Nombre para mostrar del trabajo en la interfaz de usuario de Studio. Puede no ser único dentro del área de trabajo. Si se omite, Azure Machine Learning genera automáticamente un identificador adjetivo-sustantivo legible para el nombre para mostrar.
experiment_name string Organice el trabajo bajo el nombre del experimento. El registro de ejecución de cada trabajo está organizado según el experimento correspondiente en la pestaña "Experimentos" de Estudio. Si se omite, Azure Machine Learning tiene experiment_name como valor predeterminado el nombre del directorio de trabajo donde se creó el trabajo.
description string Descripción del trabajo.
tags object Diccionario de etiquetas para el trabajo.
sampling_algorithm object Necesario. El algoritmo de muestreo de hiperparámetros que se usará en search_space. Uno de randomSamplingAlgorithm, GridSamplingAlgorithm o BayesianSamplingAlgorithm.
search_space object Necesario. Diccionario del espacio de búsqueda de hiperparámetros. El nombre del hiperparámetros es la clave y el valor es la expresión de parámetro.

Se puede hacer referencia a hiperparámetros en trial.command con la ${{ search_space.<hyperparameter> }} expresión .
search_space.<hyperparameter> objeto Visite Expresiones de parámetro para el conjunto de posibles expresiones que se van a usar.
objective.primary_metric string Necesario. El nombre de la métrica principal notificada por cada trabajo de prueba. La métrica debe iniciar sesión en el script de entrenamiento del usuario, con mlflow.log_metric() el mismo nombre de métrica correspondiente.
objective.goal string Necesario. El objetivo de la optimización de objective.primary_metric. maximize, minimize
early_termination object La directiva de terminación anticipada que se va a usar. Un trabajo de prueba se cancela cuando se cumplen los criterios de la directiva especificada. Si se omite, no se aplica ninguna directiva de terminación anticipada. BanditPolicy, MedianStoppingPolicy o TruncationSelectionPolicy.
limits object Límites del trabajo de barrido. Consulte Atributos de la clave limits.
compute string Necesario. Nombre del destino de proceso en el que se va a ejecutar el trabajo, con la azureml:<compute_name> sintaxis .
trial objeto Necesario. La plantilla de trabajo para cada prueba. Cada trabajo de prueba se proporciona con una combinación diferente de valores de hiperparámetros que muestra el sistema de .search_space Visite Atributos de la trial clave.
inputs objeto Diccionario de entradas para el trabajo. La clave es un nombre para la entrada dentro del contexto del trabajo y el valor es el valor de entrada.

Se puede hacer referencia a las entradas en command mediante la expresión ${{ inputs.<input_name> }}.
inputs.<input_name> número, entero, booleano, cadena u objeto Uno de un valor literal (de tipo number, integer, boolean o string) o un objeto que contiene una especificación de datos de entrada de trabajo.
outputs objeto Diccionario de configuraciones de salida del trabajo. La clave es un nombre para la salida dentro del contexto del trabajo y el valor es la configuración de salida.

Se puede hacer referencia a las salidas en command mediante la expresión ${{ outputs.<output_name> }}.
outputs.<output_name> objeto Puede dejar el objeto vacío y, en ese caso, de forma predeterminada, la salida es de uri_folder tipo y el sistema de Azure Machine Learning genera una ubicación de salida para la salida. Todos los archivos en el directorio de salida se escriben a través del montaje de lectura y escritura. Para especificar un modo diferente para la salida, proporcione un objeto que contenga la especificación de salida del trabajo.
identity objeto La identidad se usa para el acceso a datos. Puede ser Configuración de identidad de usuario, Configuración de identidad administrada o Ninguna. Para UserIdentityConfiguration, la identidad del remitente de trabajos se usa para acceder a los datos de entrada y escribir el resultado en la carpeta de salida. De lo contrario, se usa la identidad administrada del destino de proceso.

Algoritmos de muestreo

RandomSamplingAlgorithm

Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. El tipo del algoritmo de muestreo. random
seed integer Inicialización aleatoria que se usará para inicializar la generación de números aleatorios. Si se omite, el valor de inicialización predeterminado es NULL.
rule string Tipo de muestreo aleatorio que se usará. El valor predeterminado, random, usa el muestreo aleatorio uniforme simple, mientras que sobol usa la secuencia cuasi-aleatoria de Sobol. random, sobol random

GridSamplingAlgorithm

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de algoritmo de muestreo. grid

BayesianSamplingAlgorithm

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de algoritmo de muestreo. bayesian

Directivas de terminación anticipada

BanditPolicy

Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. El tipo de política. bandit
slack_factor number La proporción usada para calcular la distancia permitida de la prueba con mejor rendimiento. Se requiere slack_factor o slack_amount.
slack_amount number La distancia absoluta permitida de la prueba con mejor rendimiento. Se requiere slack_factor o slack_amount.
evaluation_interval integer La frecuencia con la que se aplica la directiva. 1
delay_evaluation integer El número de intervalos que se va a retrasar la primera evaluación de directiva. Si se especifica, la directiva se aplica a cada múltiplo de evaluation_interval que sea mayor que o igual a delay_evaluation. 0

MedianStoppingPolicy

Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. El tipo de política. median_stopping
evaluation_interval integer La frecuencia con la que se aplica la directiva. 1
delay_evaluation integer El número de intervalos que se va a retrasar la primera evaluación de directiva. Si se especifica, la directiva se aplica a cada múltiplo de evaluation_interval que sea mayor que o igual a delay_evaluation. 0

TruncationSelectionPolicy

Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. El tipo de política. truncation_selection
truncation_percentage integer Necesario. El porcentaje de trabajos de prueba que se cancelarán en cada intervalo de evaluación.
evaluation_interval integer La frecuencia con la que se aplica la directiva. 1
delay_evaluation integer El número de intervalos que se va a retrasar la primera evaluación de directiva. Si se especifica, la directiva se aplica a cada múltiplo de evaluation_interval que sea mayor que o igual a delay_evaluation. 0

Expresiones de parámetro

Opción

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. choice
values array Necesario. Lista de valores discretos de los que se va a elegir.

Randint

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. randint
upper integer Necesario. El límite superior exclusivo para el intervalo de enteros.

Qlognormal, qnormal

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. qlognormal, qnormal
mu number Obligatorio. La media de la distribución normal.
sigma number Obligatorio. La desviación estándar de la distribución normal.
q integer Necesario. El factor de suavizado.

Qloguniform, quniform

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. qloguniform, quniform
min_value number Obligatorio. El valor mínimo del intervalo (inclusivo).
max_value number Obligatorio. El valor máximo del intervalo (inclusivo).
q integer Necesario. El factor de suavizado.

Lognormal, normal

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. lognormal, normal
mu number Obligatorio. La media de la distribución normal.
sigma number Obligatorio. La desviación estándar de la distribución normal.

Loguniform

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. loguniform
min_value number Necesario. El valor mínimo del intervalo es exp(min_value) (inclusivo).
max_value number Necesario. El valor máximo del intervalo es exp(max_value) (inclusivo).

Uniforme

Clave Tipo Descripción Valores permitidos
type const Necesario. El tipo de expresión. uniform
min_value number Obligatorio. El valor mínimo del intervalo (inclusivo).
max_value number Obligatorio. El valor máximo del intervalo (inclusivo).

Atributos de la clave limits

Clave Tipo Descripción Valor predeterminado
max_total_trials integer El número máximo de trabajos de prueba. 1000
max_concurrent_trials integer Número máximo de trabajos que se pueden ejecutar simultáneamente (opcional). Tiene como valor predeterminado max_total_trials.
timeout integer Tiempo máximo en segundos, que se permite ejecutar todo el trabajo de barrido. Una vez alcanzado este límite, el sistema cancela el trabajo de barrido, incluidas todas sus pruebas. 5184000
trial_timeout integer El tiempo máximo en segundos durante el que se puede ejecutar cada trabajo de prueba. Una vez alcanzado este límite, el sistema cancela la versión de prueba.

Atributos de la clave trial

Clave Tipo Descripción Valor predeterminado
command string Necesario. El comando que se debe ejecutar.
code string Ruta de acceso local al directorio de código fuente que se va a cargar y usar para el trabajo.
environment cadena u objeto Necesario. El entorno que se usará para el trabajo. Este valor puede ser una referencia a un entorno con versiones existente en el área de trabajo o una especificación de entorno en línea.

Para hacer referencia a un entorno existente, use la sintaxis azureml:<environment-name>:<environment-version>.

Para definir un entorno en línea, siga el Esquema de entorno. Excluya las name propiedades y version porque los entornos insertados no los admiten.
environment_variables objeto Diccionario de pares de nombre-valor de variables de entorno que se establecerán en el proceso donde se ejecuta el comando.
distribution object La configuración de distribución para escenarios de entrenamiento distribuido. Una de las configuraciones de Mpi, configuración de PyTorch o configuración de TensorFlow.
resources.instance_count integer El número de nodos que se usarán para el trabajo. 1

Configuraciones de distribución

MpiConfiguration
Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de distribución. mpi
process_count_per_instance integer Necesario. El número de procesos por nodo que se inician para el trabajo.
PyTorchConfiguration
Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. Tipo de distribución. pytorch
process_count_per_instance integer El número de procesos por nodo que se inician para el trabajo. 1
TensorFlowConfiguration
Clave Tipo Descripción Valores permitidos Valor predeterminado
type const Necesario. Tipo de distribución. tensorflow
worker_count integer El número de trabajos que se inician para el trabajo. Tiene como valor predeterminado resources.instance_count.
parameter_server_count integer El número de servidores de parámetros que se inician para el trabajo. 0

Entradas de trabajo

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de entrada de trabajo. Especifique uri_file para los datos de entrada que apunte a un único origen de archivo o uri_folder para los datos de entrada que apunte a un origen de carpeta. Para más información, visite Más información sobre el acceso a datos. uri_file, uri_folder, , mltable, mlflow_model uri_folder
path string Ruta de acceso a los datos que se va a usar como entrada. Este valor se puede especificar de varias maneras:

- Ruta de acceso local al archivo o carpeta del origen de datos, por ejemplo, path: ./iris.csv. Los datos se cargan durante el envío del trabajo.

- URI de una ruta de acceso a la nube al archivo o carpeta que se va a usar como entrada. Los tipos de URI admitidos son azureml, https, wasbs, abfss, adl. Para obtener más información sobre el uso del azureml:// formato URI, visite Sintaxis yaml de Core.

- Recurso de datos de Azure Machine Learning registrado existente que se va a usar como entrada. Para hacer referencia a un recurso de datos registrado, use la azureml:<data_name>:<data_version> sintaxis o azureml:<data_name>@latest (para hacer referencia a la versión más reciente de ese recurso de datos), por ejemplo, path: azureml:cifar10-data:1 o path: azureml:cifar10-data@latest.
mode string Modo de cómo se deben entregar los datos al destino de proceso.

Para el montaje de solo lectura (ro_mount), los datos se consumen como ruta de acceso de montaje. Una carpeta se monta como una carpeta y un archivo se monta como un archivo. Azure Machine Learning resuelve la entrada en la ruta de acceso de montaje.

En download el modo , los datos se descargan en el destino de proceso. Azure Machine Learning resuelve la entrada en la ruta de acceso descargada.

Para la dirección URL de la ubicación de almacenamiento del artefacto de datos o artefactos, en lugar de montar o descargar los datos en sí, use el direct modo . Esto pasa la dirección URL de la ubicación de almacenamiento como entrada del trabajo. En este caso, el usuario es el único responsable de controlar las credenciales para acceder al almacenamiento.
ro_mount, , download, direct ro_mount

Salidas de trabajo

Clave Tipo Descripción Valores permitidos Valor predeterminado
type string Tipo de salida del trabajo. Para el tipo predeterminado uri_folder, la salida corresponde a una carpeta. uri_file, uri_folder, , mltable, mlflow_model uri_folder
mode string Modo de entrega del archivo o archivos de salida al almacenamiento de destino. Para el modo de montaje de lectura y escritura (rw_mount), el directorio de salida es un directorio montado. Para el modo de carga, todos los archivos escritos se cargan al final del trabajo. rw_mount, upload rw_mount

Configuraciones de identidad

UserIdentityConfiguration

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de identidad. user_identity

ManagedIdentityConfiguration

Clave Tipo Descripción Valores permitidos
type const Necesario. Tipo de identidad. managed o managed_identity

Comentarios

Puede usar el az ml job comando para administrar trabajos de Azure Machine Learning.

Ejemplos

Visite el repositorio de GitHub de ejemplos para obtener ejemplos. Aquí se muestran varios:

YAML: hello 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: ajuste básico de hiperparámetros del modelo de 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.

Pasos siguientes