Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)
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/.
Cada entidad de Azure Machine Learning tiene una representación de YAML esquematizada. Puede crear una nueva entidad a partir de un archivo de configuración YAML con una extensión .yml
o .yaml
.
Este artículo proporciona información de referencia sobre algunos conceptos de sintaxis que encontrará al configurar estos archivos YAML para trabajos de clasificación de texto NLP con varias etiquetas.
El esquema JSON de origen se puede encontrar en https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLNLPTextClassificationMultilabelJob.schema.json.
Sintaxis de YAML
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
$schema |
cuerda / cadena | Representa la ubicación o dirección URL donde se va a cargar el esquema YAML. Si el usuario utiliza la extensión VS Code de Azure Machine Learning para crear el archivo YAML, la inclusión de $schema en la parte superior del archivo permite invocar las finalizaciones del esquema y los recursos. |
||
type |
Const | Necesario. Tipo de trabajo. | automl |
automl |
task |
Const | Necesario. El tipo de la tarea de AutoML. Descripción de la tarea para la clasificación multietiqueta: Hay varias clases posibles y cada muestra se puede asignar a cualquier número de clases. La tarea consiste en predecir todas las clases de cada muestra. Por ejemplo, la clasificación de un script de película como «Comedia» o «Romántico» o «Comedia y romántico». |
text_classification_multilabel |
|
name |
cuerda / cadena | 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 |
cuerda / cadena | 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 |
cuerda / cadena | Nombre del experimento en el que se va a organizar el trabajo. El registro de ejecución de cada trabajo se organizará en el experimento correspondiente en la pestaña "Experiments" de Studio. Si se omite, Azure Machine Learning tomará como valor predeterminado el nombre del directorio de trabajo en que se creó el trabajo. | ||
description |
cuerda / cadena | Descripción del trabajo. | ||
tags |
objeto | Diccionario de etiquetas para el trabajo. | ||
compute |
cuerda / cadena | Nombre del destino de proceso en el que se ejecutará el trabajo. Para hacer referencia a un proceso existente en el área de trabajo, usamos la sintaxis: azureml:<compute_name> . |
||
log_verbosity |
número | Los diferentes niveles de detalle del registro. |
not_set , debug , info , warning , , error , critical |
info |
primary_metric |
cuerda / cadena | Métrica que AutoML optimizará para la selección de modelos. | accuracy |
accuracy |
target_column_name |
cuerda / cadena | Necesario. Nombre de la columna de destino de las predicciones. Siempre debe especificarse. Este parámetro es aplicable a training_data y validation_data . |
||
training_data |
objeto | Necesario. Los datos que se van a usar en el trabajo. Consulte la sección Varias etiquetas para obtener más detalles. | ||
validation_data |
objeto | Necesario. Datos de validación que se usarán en el trabajo. Debería ser coherente con los datos de entrenamiento en cuanto al conjunto de columnas, el tipo de datos de cada columna, el orden de las columnas de izquierda a derecha y la incorporación de al menos dos etiquetas únicas. Nota: Los nombres de columna de cada conjunto de datos deben ser únicos. Para obtener más información, consulte la sección Validación de datos. |
||
limits |
objeto | Diccionario de configuraciones de límite del trabajo. Parámetros de esta sección: max_concurrent_trials , max_nodes , max_trials , timeout_minutes y trial_timeout_minutes . Vea la sección Límites para obtener más detalles. |
||
training_parameters |
objeto | Diccionario que contiene los parámetros de entrenamiento del trabajo. Vaya a Hiperparámetros admitidos para obtener más detalles. Nota: Los hiperparámetros establecidos en training_parameters se mantienen en todas las ejecuciones de barrido y, por tanto, no es necesario incluirlos en el espacio de búsqueda. |
||
sweep |
objeto | Diccionario que contiene los parámetros de barrido del trabajo. Tiene dos claves: sampling_algorithm (obligatoria) y early_termination . Para obtener más información, consulte la sección Ajuste de hiperparámetros y barrido de modelos. |
||
search_space |
objeto | Diccionario del espacio de búsqueda de hiperparámetros. La clave es el nombre del hiperparámetro y el valor es la expresión del parámetro. Todos los parámetros que se pueden fijar mediante training_parameters se admiten aquí (para ser barridos). Vaya a Hiperparámetros admitidos para obtener más información. Hay dos tipos de hiperparámetros: - Hiperparámetros discretos: los hiperparámetros discretos se especifican con un objeto choice entre valores discretos.
choice puede ser uno o varios valores separados por comas, un objeto range o cualquier objeto list arbitrario. También se pueden especificar hiperparámetros discretos avanzados mediante una distribución: randint , qlognormal , qnormal , qloguniform , quniform . Para obtener más información, consulte esta sección. - Hiperparámetros continuos: los hiperparámetros continuos se especifican como una distribución a través de un rango continuo de valores. Actualmente, las distribuciones admitidas son lognormal , normal , loguniform , uniform . Para obtener más información, consulte esta sección. Consulte la sección Expresiones de parámetro para conocer el conjunto de expresiones posibles que se usarán. |
||
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. | ||
outputs.best_model |
objeto | Diccionario de las configuraciones de salida de mejor modelo. Para obtener más información, consulte Configuración de salida de mejor modelo. |
Otra sintaxis usada en las configuraciones:
Límites
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
max_concurrent_trials |
entero | Representa el número máximo de iteraciones que se ejecutarán en paralelo. | 1 |
|
max_trials |
entero | Representa el número máximo de pruebas en las que un trabajo de NLP de AutoML puede intentar ejecutar un algoritmo de entrenamiento con una combinación diferente de hiperparámetros. | 1 |
|
timeout_minutes |
entero | Representa la cantidad máxima de tiempo en minutos que puede tardar en ejecutarse el trabajo de AutoML enviado. Después de esto, el trabajo finalizará. El tiempo de espera predeterminado en los trabajos de NLP de AutoML es de 7 días. | 10080 |
|
trial_timeout_minutes |
entero | Representa la cantidad máxima de tiempo en minutos que puede tardar en ejecutarse cada prueba (trabajo secundario) en el trabajo de AutoML enviado. Después de esto, el trabajo secundario finalizará. | ||
max_nodes |
entero | El número máximo de nodos del clúster de proceso de respaldo que se usarán para el trabajo. | 1 |
Hiperparámetros admitidos
En la tabla siguiente se describen los hiperparámetros que admite AutoML NPL.
Nombre de parámetro | Descripción | Sintaxis |
---|---|---|
gradient_accumulation_steps | Número de operaciones hacia atrás cuyos degradados se van a resumir antes de realizar un paso de descenso de degradado mediante una llamada a la función de paso del optimizador. Esto se aprovecha para usar un tamaño de lote efectivo que es gradient_accumulation_steps veces mayor que el tamaño máximo que se ajusta a la GPU. |
Debe ser un entero positivo. |
tasa de aprendizaje | Velocidad de aprendizaje inicial. | Debe ser un valor flotante en el intervalo [0, 1]. |
programador de tasa de aprendizaje | Tipo de programador de velocidad de aprendizaje. | Debe elegirlo en linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup . |
model_name | Nombre de uno de los modelos admitidos. | Debe elegirlo en bert_base_cased, bert_base_uncased, bert_base_multilingual_cased, bert_base_german_cased, bert_large_cased, bert_large_uncased, distilbert_base_cased, distilbert_base_uncased, roberta_base, roberta_large, distilroberta_base, xlm_roberta_base, xlm_roberta_large, xlnet_base_cased, xlnet_large_cased . |
número_de_épocas | Número de épocas de entrenamiento. | Debe ser un entero positivo. |
training_batch_size | Tamaño del lote de entrenamiento. | Debe ser un entero positivo. |
tamaño_de_lote_de_validación | Tamaño del lote de validación. | Debe ser un entero positivo. |
warmup_ratio | Proporción de los pasos de entrenamiento totales usados para un calentamiento lineal de 0 a learning_rate. | Debe ser un valor float en el intervalo [0, 1]. |
weight_decay | Valor de decadencia de peso cuando el optimizador es sgd, adam o adamw. | Debe ser un valor float en el intervalo [0, 1]. |
Datos de entrenamiento o validación
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
description |
cuerda / cadena | Información detallada que describe estos datos de entrada. | ||
path |
cuerda / cadena | La ruta de acceso desde la que se deben cargar los datos. La ruta de acceso puede ser una ruta de acceso file , una ruta de acceso folder o pattern para rutas de acceso.
pattern especifica un patrón de búsqueda para permitir comodines (* y ** ) de archivos y carpetas que contienen datos. Los tipos de URI admitidos son azureml , https , wasbs , abfss y adl . Para más información sobre cómo usar el formato de URI azureml:// , consulte Sintaxis principal de YAML. URI de la ubicación del archivo de artefacto. Si este URI no tiene un esquema (por ejemplo, http:, azureml: o similar), se considera una referencia local y el archivo al que apunta se carga en el almacenamiento de blobs del área de trabajo predeterminado a medida que se crea la entidad. |
||
mode |
cuerda / cadena | Mecanismo de entrega del conjunto de datos. | direct |
direct |
type |
Const | Para generar modelos de NLP, el usuario debe aportar datos de entrenamiento en formato de tabla MLTable. Para obtener más información, consulte Preparación de los datos. | mltable | mltable |
Configuración de salida de mejor modelo
Clave | Tipo | Descripción | Valores permitidos | Valor predeterminado |
---|---|---|---|---|
type |
cuerda / cadena | Necesario. Tipo de mejor modelo. AutoML solo permite modelos mlflow. | mlflow_model |
mlflow_model |
path |
cuerda / cadena | Necesario. URI de la ubicación donde se almacenan los archivos de artefacto del modelo. Si este URI no tiene un esquema (por ejemplo, http:, azureml: o similar), se considera una referencia local y el archivo al que apunta se carga en el almacenamiento de blobs del área de trabajo predeterminado a medida que se crea la entidad. | ||
storage_uri |
cuerda / cadena | Dirección URL HTTP del modelo. Use esta dirección URL con az storage copy -s THIS_URL -d DESTINATION_PATH --recursive para descargar los datos. |
Comentarios
El comando az ml job
se puede usar para administrar los trabajos de Azure Machine Learning.
Ejemplos
Hay ejemplos disponibles en el repositorio de GitHub de ejemplos. A continuación se incluyen vínculos de ejemplos relevantes para los trabajos de clasificación de texto NLP con varias etiquetas.
YAML: trabajo de clasificación de texto con varias etiquetas de AutoML
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-text-classification-multilabel-paper-cat
description: A text classification multilabel job using paper categorization data
compute: azureml:gpu-cluster
task: text_classification_multilabel
primary_metric: accuracy
log_verbosity: debug
limits:
timeout_minutes: 60
target_column_name: "terms"
training_data:
path: "./training-mltable-folder"
type: mltable
validation_data:
type: mltable
path: "./validation-mltable-folder"
# featurization:
# dataset_language: "eng"
YAML: trabajo de canalización de clasificación de texto con varias etiquetas de AutoML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Text Classification Multilabel task
display_name: pipeline-with-text-classification-multilabel
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
text_classification_multilabel_training_data:
type: mltable
path: ./training-mltable-folder
text_classification_multilabel_validation_data:
type: mltable
path: ./validation-mltable-folder
jobs:
preprocessing_node:
type: command
component: file:./components/component_preprocessing.yaml
inputs:
train_data: ${{parent.inputs.text_classification_multilabel_training_data}}
validation_data: ${{parent.inputs.text_classification_multilabel_validation_data}}
outputs:
preprocessed_train_data:
type: mltable
preprocessed_validation_data:
type: mltable
text_classification_multilabel_node:
type: automl
task: text_classification_multilabel
log_verbosity: info
primary_metric: accuracy
limits:
max_trials: 1
timeout_minutes: 60
target_column_name: terms
training_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_train_data}}
validation_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_validation_data}}
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.text_classification_multilabel_node.outputs.best_model}}
model_base_name: paper_categorization_model