Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)
Примечание.
Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.
Каждая сущность Машинного обучения Azure имеет схематизированное представление YAML. Вы можете создать новую сущность из файла конфигурации YAML с расширением .yml
или .yaml
.
В этой статье приведена ссылка на некоторые понятия синтаксиса, которые вы увидите при настройке этих файлов YAML для заданий многоуровневой классификации текста NLP.
Исходная схема JSON можно найти по адресу https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLNLPTextClassificationMultilabelJob.schema.json
Синтаксис YAML
Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|---|
$schema |
строка | Представляет расположение или URL-адрес для загрузки схемы YAML. Если пользователь использует расширение МАШИННОЕ ОБУЧЕНИЕ AZURE VS Code для создания YAML-файла, в том числе $schema в верхней части файла, пользователь может вызвать завершение схемы и ресурсов. |
||
type |
const | Обязательный. Тип задания. | automl |
automl |
task |
const | Обязательный. Тип задачи AutoML. Описание задачи для классификации нескольких меток: Существует множество возможных классов, и каждому примеру можно назначить любое количество классов. Задача — прогнозировать все классы для каждого примера. Например, классификация киносценария по жанру "Комедия", "Мелодрама" или "Комедия и мелодрама". |
text_classification_multilabel |
|
name |
строка | Имя задания. Должно быть уникальным для всех заданий в рабочей области. Если опущено, Машинное обучение Azure автоматически создает GUID для имени. | ||
display_name |
строка | Отображаемое имя задания в пользовательском интерфейсе студии. Может быть неуникальным в пределах рабочей области. Если опущено, Машинное обучение Azure автоматически создает идентификатор прилагательного имени, доступный для чтения. | ||
experiment_name |
строка | Имя эксперимента, по которому будет организовано задание. Запись выполнения каждого задания будет организована в соответствии с соответствующим экспериментом на вкладке "Эксперименты" студии. Если опущено, Машинное обучение Azure по умолчанию по умолчанию будет присвоено имя рабочего каталога, в котором было создано задание. | ||
description |
строка | Описание задания. | ||
tags |
объект | Словарь тегов для задания. | ||
compute |
строка | Имя целевого объекта вычислений для выполнения задания. Чтобы ссылаться на существующие вычислительные ресурсы в рабочей области, мы используем синтаксис: azureml:<compute_name> |
||
log_verbosity |
число/номер | Различные уровни детализации журнала. |
not_set , , debug info warning error ,critical |
info |
primary_metric |
строка | Метрика, которую AutoML оптимизирует для выбора модели. | accuracy |
accuracy |
target_column_name |
строка | Обязательный. Имя столбца, предназначенного для прогнозирования. Он всегда должен быть указан. Этот параметр применим к training_data и validation_data . |
||
training_data |
объект | Обязательный. Данные, используемые в задании. Дополнительные сведения см . в разделе с несколькими метками . | ||
validation_data |
объект | Обязательный. Данные проверки, используемые в задании. Он должен соответствовать данным обучения с точки зрения набора столбцов, типа данных для каждого столбца, порядка столбцов слева направо и по крайней мере двух уникальных меток. Примечание. Имена столбцов в каждом наборе данных должны быть уникальными. Дополнительные сведения см . в разделе проверки данных. |
||
limits |
объект | Словарь конфигураций ограничения задания. Параметры в этом разделе: max_concurrent_trials , max_nodes , max_trials , timeout_minutes , trial_timeout_minutes . Дополнительные сведения см . в ограничениях . |
||
training_parameters |
объект | Словарь, содержащий параметры обучения для задания. Дополнительные сведения см . в поддерживаемых гиперпараметров. Примечание. Гиперпараметры, заданные в наборе training_parameters , фиксируются во всех развертных запусках и поэтому не нужно включать в пространство поиска. |
||
sweep |
объект | Словарь, содержащий параметры очистки для задания. Он имеет два ключа : sampling_algorithm (обязательно) и early_termination . Дополнительные сведения см. в разделах о настройке модели и гиперпараметров. |
||
search_space |
объект | Словарь пространства поиска гиперпараметров. Ключ — это имя гиперпараметра, а значение — выражение параметра. Все параметры, которые можно исправить с помощью training_parameters , поддерживаются здесь (чтобы вместо этого переместиться). Дополнительные сведения см . в поддерживаемых гиперпараметров. Существует два типа гиперпараметров: - Дискретные гиперпараметры: дискретные гиперпараметры указываются как choice среди дискретных значений.
choice может быть одним или несколькими значениями, разделенными запятыми, range объектом или любым произвольным list объектом. Расширенные дискретные гиперпараметры также можно указать с помощью распределения — randint , qlognormal , qnormal , .quniform Дополнительные сведения см. в этом разделе. - Непрерывные гиперпараметры: непрерывные гиперпараметры задаются как распределение по непрерывному диапазону значений. В настоящее время поддерживаются дистрибутивы : lognormal , normal , loguniform . uniform Дополнительные сведения см. в этом разделе. См . раздел выражений параметров для набора возможных выражений. |
||
outputs |
объект | Словарь конфигураций выходных данных для задания. Ключ — это имя выходных данных в контексте задания, а значение — выходная конфигурация. | ||
outputs.best_model |
объект | Словарь выходных конфигураций для оптимальной модели. Дополнительные сведения см. в разделе "Лучшая конфигурация выходных данных модели". |
Другой синтаксис, используемый в конфигурациях:
Ограничения
Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|---|
max_concurrent_trials |
целое число | Это максимальное количество испытаний (дочерних параметров), которые могут выполняться параллельно. | 1 |
|
max_trials |
целое число | Представляет максимальное количество пробных версий задания AutoML nlp, которое может попытаться запустить алгоритм обучения с различным сочетанием гиперпараметров. | 1 |
|
timeout_minutes |
целое число | Представляет максимальное время в минутах, которое может занять отправленное задание AutoML для выполнения. После этого задание завершится. Время ожидания по умолчанию в заданиях NLP AutoML составляет 7 дней. | 10080 |
|
trial_timeout_minutes |
целое число | Представляет максимальное время в минутах, когда каждая пробная версия (дочернее задание) в отправленном задании AutoML может выполняться. После этого дочернее задание завершится. | ||
max_nodes |
целое число | Максимальное количество узлов из резервного вычислительного кластера для использования для задания. | 1 |
Поддерживаемые гиперпараметры
В следующей таблице описаны гиперпараметры, поддерживаемые AutoML NLP.
Наименование параметра | Описание | Синтаксис |
---|---|---|
gradient_accumulation_steps | Количество обратных операций, градиенты которых должны быть суммированы перед выполнением одного шага градиентного спуска путем вызова функции шага оптимизатора. Это используется для использования эффективного размера пакета, который gradient_accumulation_steps раз больше максимального размера, который соответствует GPU. |
Принимаются только положительные целые числа. |
learning_rate; | Начальная скорость обучения. | Должен быть плавающей запятой в диапазоне (0, 1). |
learning_rate_scheduler | Тип планировщика скорости обучения. | Должен выбрать один из вариантов linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup . |
model_name | Имя одной из поддерживаемых моделей. | Должен выбрать один из вариантов 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 . |
number_of_epochs | Число эпох обучения. | Принимаются только положительные целые числа. |
training_batch_size | Размер пакета, используемого для обучения. | Принимаются только положительные целые числа. |
validation_batch_size | Размер пакета, используемого для проверки. | Принимаются только положительные целые числа. |
warmup_ratio | Соотношение общих шагов обучения, используемых для линейной прогрева от 0 до learning_rate. | Должно быть значением типа float в диапазоне [0, 1]. |
weight_decay | Значение распада веса при оптимизаторе имеет значение оптимизатора, адама или адама. | Должно быть значением типа float в диапазоне [0, 1]. |
Обучающие или проверяющие данные
Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|---|
description |
строка | Подробные сведения, описывающие входные данные. | ||
path |
строка | Путь от места загрузки данных. Путь может быть путем, file путем folder или pattern для путей.
pattern задает шаблон поиска, позволяющий разрешать глоббинг (* и ** ) файлов и папок, содержащих данные. Поддерживаются следующие типы URI: azureml , https , wasbs , abfss и adl . Дополнительные сведения об использовании формата URI см. в основном синтаксисе azureml:// yaml. URI расположения файла артефакта. Если этот URI не содержит схему (например, http:, azureml: и т. д.), то он считается локальной ссылкой и файлом, на который он указывает, передается в хранилище BLOB-объектов рабочей области по умолчанию при создании сущности. |
||
mode |
строка | Механизм доставки набора данных. | direct |
direct |
type |
const | Чтобы создать модели nlp, пользователю необходимо предоставить обучающие данные в виде MLTable. Дополнительные сведения см. в статье о подготовке данных | mltable | mltable |
Оптимальная конфигурация выходных данных модели
Ключ | Тип | Описание | Допустимые значения | Значение по умолчанию |
---|---|---|---|---|
type |
строка | Обязательный. Тип лучшей модели. AutoML разрешает только модели машинного потока. | mlflow_model |
mlflow_model |
path |
строка | Обязательный. URI расположения, в котором хранятся файлы артефактов модели. Если этот URI не содержит схему (например, http:, azureml: и т. д.), то он считается локальной ссылкой и файлом, на который он указывает, передается в хранилище BLOB-объектов рабочей области по умолчанию при создании сущности. | ||
storage_uri |
строка | URL-адрес HTTP модели. Используйте этот URL-адрес для az storage copy -s THIS_URL -d DESTINATION_PATH --recursive скачивания данных. |
Замечания
Команду az ml job
можно использовать для управления заданиями Машинного обучения Azure.
Примеры
Примеры доступны в репозитории примеров GitHub. Ниже приведены примеры, относящиеся к многозначным заданиям классификации текста NLP.
YAML: задание многоуровневой классификации текста 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: задание конвейера многоуровневой классификации текста 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