Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Расширение машинного обучения Azure CLI версии 2 (current)
Python SDK azure-ai-ml версии 2 (current)
Из этой статьи вы узнаете, как настроить задание обучения AutoML с помощью пакета SDK для Python для Машинного обучения Azure версии 2. AutoML выбирает алгоритм и гиперпараметры для вас и создает модель, готовую к развертыванию. В этой статье содержатся сведения о различных параметрах, которые можно использовать для настройки экспериментов AutoML.
Если вы предпочитаете работу без кода, вы также можете настроить обучение AutoML без кода для табличных данных с помощью пользовательского интерфейса студии.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу. Попробуйте бесплатную или платную версию Машинного обучения Azure.
- Рабочая область Машинного обучения Azure. Если у вас нет ресурсов, см. статью "Создание ресурсов для начала работы".
Чтобы использовать сведения о пакете SDK, установите пакет SDK Машинное обучение Azure версии 2 для Python.
Пакет SDK можно установить двумя способами:
- Создайте вычислительный экземпляр, который уже имеет последнюю версию пакета SDK для Python Машинное обучение Azure и настроен для рабочих процессов машинного обучения. Дополнительные сведения см. в статье "Создание Машинное обучение Azure вычислительного экземпляра".
- Установите пакет SDK на локальном компьютере.
Настройка рабочей области
Чтобы подключиться к рабочей области, необходимо предоставить подписку, группу ресурсов и рабочую область.
Сведения о рабочей области переходят MLClient на azure.ai.ml подключение к рабочей области Машинного обучения Azure.
В следующем примере используется проверка подлинности Azure по умолчанию с конфигурацией рабочей области по умолчанию или конфигурацией из config.json файла в структуре папок. Если он не config.jsonнайден, необходимо вручную указать идентификатор подписки, группу ресурсов и рабочую область при создании MLClient.
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
Указание источника данных и формата
Чтобы предоставить обучающие данные в пакете SDK версии 2, необходимо передать его в облако через MLTable.
Требования к данным, отправляемым в MLTable:
- Данные должны иметь табличный формат.
- Значение для прогнозирования, целевого столбца должно находиться в данных.
Обучающие данные должны быть доступны из удаленной вычислительной среды. AutoML версии 2 (пакет SDK для Python и CLI/YAML) принимает ресурсы данных MLTable (версия 2). Для обратной совместимости он также поддерживает табличные наборы данных версии 1 из версии 1, зарегистрированный табличный набор данных через те же свойства входного набора данных. Рекомендуется использовать MLTable, доступную в версии 2. В этом примере данные хранятся по локальному пути . /train_data/bank_marketing_train_data.csv.
Вы можете создать MLTable с помощью mltable Python SDK , как показано в следующем примере:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
Этот код создает новый файл . /train_data/MLTable, содержащий формат файла и инструкции по загрузке.
Теперь в папке ./train_data есть файл определения MLTable, а также файл данных bank_marketing_train_data.csv.
Дополнительные сведения о MLTable см. в статье "Работа с таблицами в Машинное обучение Azure".
Обучение, проверка и тестирование данных
Можно указать отдельные обучающие данные и наборы данных проверки. Необходимо предоставить обучающие данные training_data параметру в функции фабрики задания AutoML.
Если вы явно не укажете validation_data или n_cross_validation параметр, AutoML применяет методы по умолчанию, чтобы определить, как выполнять проверку. Это определение зависит от количества строк в наборе данных, назначенном в параметре training_data.
| Объем данных обучения | Метод проверки |
|---|---|
| Более 20 000 строк | AutoML применяет разделение данных обучения и проверки. Значение по умолчанию принимает 10% начального набора обучающих данных в качестве набора проверки. Затем AutoML использует этот набор проверки для вычисления метрик. |
| Не больше 20 000 строк | AutoML применяет подход перекрестной проверки. Стандартное количество сверток зависит от числа строк. Если набор данных меньше 1000 строк, AutoML использует десять сверток. Если строки равны или от 1000 до 20 000, AutoML использует три свертывания. |
Вычисление для запуска эксперимента
Задания AutoML с пакетом SDK для Python версии 2 (или CLI версии 2) в настоящее время поддерживаются только в удаленном вычислительном кластере машинного обучения Azure или экземпляре вычислений. Дополнительные сведения о создании вычислений с помощью PYTHON SDKv2 или CLIv2 см. в статье об обучении моделей с помощью интерфейса командной строки машинного обучения Azure, пакета SDK и REST API.
Настройка параметров эксперимента
Для настройки эксперимента AutoML можно использовать несколько вариантов. Эти параметры конфигурации задаются в методе задачи. Вы также можете задать параметры обучения заданий и условия выхода с training помощью параметров и limits параметров.
В следующем примере показаны необходимые параметры для задачи классификации, которая указывает точность в качестве основной метрики и пять разных перекрестных проверок.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
Выбор типа задачи машинного обучения
Перед отправкой задания AutoML определите тип проблемы машинного обучения, которую вы хотите решить. Эта проблема определяет, какую функцию использует задание и какие алгоритмы модели она применяет.
AutoML поддерживает различные типы задач:
Задачи на основе табличных данных
- классификация данных
- регрессия
- прогноз
Задачи компьютерного зрения, включая
- Классификация изображений
- Обнаружение объектов
Задачи обработки естественного языка, включая
- Классификация текстов
- Распознавание сущностей
Дополнительные сведения см. в разделе "Типы задач". Дополнительные сведения о настройке заданий прогнозирования см. в разделе " Настройка AutoML для обучения модели прогнозирования временных рядов".
Поддерживаемые алгоритмы
AutoML пытается использовать различные модели и алгоритмы во время процесса автоматизации и настройки. Как пользователь, вам не нужно указывать алгоритм.
Метод задачи определяет список применяемых алгоритмов или моделей. Чтобы дополнительно изменить итерации с доступными моделями для включения или исключения, используйте allowed_training_algorithms параметры blocked_training_algorithms или параметры в training конфигурации задания.
В следующей таблице изучите поддерживаемые алгоритмы для каждой задачи машинного обучения.
С другими алгоритмами:
- Алгоритмы многоклассовой классификации изображений
- Алгоритмы многометочной классификации изображений
- Алгоритмы обнаружения объектов на изображениях
- Алгоритмы многометочной классификации текста для обработки естественного языка
- Алгоритмы распознавания именованных сущностей текста для обработки естественного языка
Примеры записных книжек каждого типа задачи см. в разделе automl-standalone-jobs.
Основная метрика
Параметр primary_metric определяет метрику, используемую во время обучения модели для оптимизации. Тип задачи, который вы выбираете, определяет метрики, которые можно выбрать.
Выбор основной метрики для autoML для оптимизации зависит от многих факторов. Рекомендуется выбрать метрику, которая лучше соответствует потребностям вашего бизнеса. Затем рассмотрите, подходит ли метрика для профиля набора данных, включая размер данных, диапазон и распределение классов. В следующих разделах приведены рекомендуемые основные метрики, исходя из типа задач и бизнес-сценария.
Чтобы узнать о конкретных определениях этих метрик, ознакомьтесь с результатами эксперимента AutoML.
Метрики для сценариев многоклассовой классификации
Эти метрики применяются ко всем сценариям классификации, включая табличные данные, изображения или компьютерное зрение, а также текст обработки естественного языка (NLP-Text).
Метрики, зависящие от пороговых значений, например accuracyrecall_score_weighted, norm_macro_recallи precision_score_weighted могут не оптимизироваться для наборов данных, которые являются небольшими, имеют большое отклонение класса (дисбаланс класса), или если ожидаемое значение метрики очень близко к 0,0 или 1.0. В таких случаях AUC_weighted может быть лучшим выбором в качестве основной метрики. После завершения AutoML вы можете выбрать выигрышную модель на основе метрики, оптимально подходящей для вашей компании.
| Метрика | Примеры вариантов использования |
|---|---|
accuracy |
Классификация изображений, анализ тональности, прогнозирование оттока клиентов |
AUC_weighted |
Обнаружение мошенничества, классификация изображений, обнаружение аномалий или нежелательной почты |
average_precision_score_weighted |
Анализ тональности |
norm_macro_recall |
Прогнозирование оттока клиентов |
precision_score_weighted |
Метрики для сценариев многометочной классификации
Для классификации текста с несколькими метками в настоящее время "Точность" является единственной основной поддерживаемой метрикой.
Для классификации изображений с несколькими метками в перечислении определяются ClassificationMultilabelPrimaryMetrics основные метрики.
Метрики для сценариев распознавания именованных сущностей NLP
Для распознавания именованных сущностей NLP (NER) в настоящее время "Точность" является единственной основной поддерживаемой метрикой.
Метрики для сценариев регрессии
r2_score, normalized_mean_absolute_errorи normalized_root_mean_squared_error все пытаются свести к минимуму ошибки прогнозирования.
r2_score и normalized_root_mean_squared_error оба свести к минимуму средние квадратные ошибки, свести normalized_mean_absolute_error к минимуму среднее абсолютное значение ошибок. Абсолютное значение обрабатывает ошибки на всех величинах, как и квадратные ошибки, имеют гораздо больший штраф за ошибки с большими абсолютными значениями. В зависимости от того, следует ли наказать больше ошибок, можно оптимизировать квадратную ошибку или абсолютную ошибку.
Основное различие между r2_score и normalized_root_mean_squared_error тем, как они нормализованы и их смыслы.
normalized_root_mean_squared_error представляет собой корень среднеквадратической погрешности, нормализованный по диапазону, и может быть интерпретирован как средняя величина ошибки для прогноза.
r2_score представляет собой среднее значение ошибки, нормализованное с помощью оценки вариантности данных. Это доля вариантов, которые модель может захватывать.
Примечание.
r2_score и normalized_root_mean_squared_error также ведут себя как основные метрики. Если применяется фиксированный набор проверки, эти две метрики оптимизированы для одного целевого объекта, среднеквадратической ошибки и оптимизированы одной и той же моделью. Если доступен только набор обучения и применяется перекрестная проверка, они будут немного отличаться, так как нормализатор для normalized_root_mean_squared_error зафиксирован в диапазоне обучающего набора, но нормализатор для r2_score будет отличаться для каждой свертки, представляя собой вариантность для каждой свертки.
Если ранг, а не точное значение, имеет интерес, spearman_correlation может быть лучшим выбором. Он измеряет корреляцию ранжирования между реальными значениями и прогнозами.
AutoML в настоящее время не поддерживает какие-либо основные метрики, которые измеряют относительную разницу между прогнозами и наблюдениями. Метрики, r2_scoreи normalized_mean_absolute_error все меры абсолютной разницыnormalized_root_mean_squared_error. Например, если прогноз отличается от наблюдения на 10 единиц, эти метрики вычисляют то же значение, если наблюдение составляет 20 единиц или 20 000 единиц. В отличие от этого, процентная разница, которая является относительной мерой, дает ошибки 50% и 0,05%, соответственно. Чтобы оптимизировать относительную разницу, можно запустить AutoML с поддерживаемой основной метрикой, а затем выбрать модель с лучшим mean_absolute_percentage_error или root_mean_squared_log_error. Эти метрики не определены, если значения наблюдения равны нулю, поэтому они не всегда могут быть хорошим выбором.
| Метрика | Примеры вариантов использования |
|---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Прогноз цен (на недвижимость или продукт), проверка прогнозируемой оценки |
r2_score |
Задержка авиарейса, оценка зарплаты, время разрешения ошибки |
normalized_mean_absolute_error |
Метрики для сценариев прогнозирования временных рядов
Рекомендации аналогичны рекомендациям для сценариев регрессии.
| Метрика | Примеры вариантов использования |
|---|---|
normalized_root_mean_squared_error |
Прогнозирование цен, оптимизация запасов, прогнозирование спроса |
r2_score |
Прогнозирование цен, оптимизация запасов, прогнозирование спроса |
normalized_mean_absolute_error |
Метрики для сценариев обнаружения объектов на изображениях
Для обнаружения объектов изображения в перечислении поддерживаются ObjectDetectionPrimaryMetrics основные метрики.
Метрики для сценариев сегментации экземпляров изображений
Для сценариев сегментации экземпляра изображений в перечислении поддерживаются InstanceSegmentationPrimaryMetrics основные метрики.
Конструирование признаков
В каждом эксперименте AutoML данные автоматически преобразуются в числа и векторы чисел. Данные также масштабируются и нормализованы, чтобы помочь алгоритмам, которые чувствительны к функциям, которые находятся в разных масштабах. Эти преобразования данных называются признаками.
Примечание.
Этапы создания признаков AutoML, такие как нормализация признаков, обработка отсутствующих данных и преобразование текста в числовые, становятся частью базовой модели. При использовании модели для прогнозирования те же шаги признаков, применяемые во время обучения, применяются автоматически к входным данным.
При настройке заданий AutoML можно включить или отключить featurization параметры.
В приведенной ниже таблице показаны допустимые параметры для конструирования признаков.
| Конфигурация конструирования признаков | Описание |
|---|---|
"mode": 'auto' |
Указывает, что в рамках предварительной обработки действия защиты данных и признаков выполняются автоматически. Это значение является настройкой по умолчанию. |
"mode": 'off' |
Указывает, что шаг конструирования признаков не должен выполняться автоматически. |
"mode": 'custom' |
Указывает, что следует использовать настраиваемый шаг определения признаков. |
В следующем коде показано, как предоставить настраиваемую признаков в данном случае для задания регрессии.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
Условия выхода
Вы можете определить несколько параметров в set_limits() функции, чтобы завершить эксперимент до завершения задания.
| Критерии | описание |
|---|---|
| Нет условий | Если вы не определяете параметры выхода, эксперимент продолжается до тех пор, пока не будет выполнен дальнейший прогресс на первичной метрии. |
timeout |
Определяет продолжительность выполнения эксперимента в минутах. Если это не указано, общее время ожидания задания по умолчанию составляет шесть дней (8640 минут). Чтобы указать время ожидания меньше или равно 1 часу (60 минут), убедитесь, что размер набора данных не превышает 10 000 000 (столбец времени строк) или результаты ошибки. Это время ожидания включает настройку, признаки и учебные запуски, но не включает ensembling и объяснение модели выполняется в конце процесса, так как эти действия должны произойти после выполнения всех испытаний (дочерних заданий). |
trial_timeout_minutes |
Максимальное время в минутах, в течение которого каждое испытание (дочернее задание) может выполняться до завершения. Если не указано, AutoML использует значение 1 месяца или 43200 минут. |
enable_early_termination |
Следует ли завершить работу, если оценка не улучшается в краткосрочной перспективе. |
max_trials |
Максимальное количество проб или запусков каждого из них с различным сочетанием алгоритмов и гиперпараметров, которые необходимо попробовать во время задания. Если это не указано, по умолчанию используется 1000 пробных версий. При использовании enable_early_terminationAutoML может использовать меньше пробных версий. |
max_concurrent_trials |
Максимальное количество испытаний (дочерних заданий), которые будут выполняться параллельно. Рекомендуется сопоставить это число с количеством узлов кластера. |
Выполнение эксперимента
Отправьте эксперимент для выполнения и создания модели.
Примечание.
Если вы выполняете эксперимент с одинаковыми параметрами конфигурации и первичной метрикой несколько раз, вы можете увидеть изменения в итоговой оценке и созданных моделях каждого эксперимента. Алгоритмы, используемые AutoML, имеют присущую случайность, которая может привести к незначительным вариациям выходных данных моделей в эксперименте и окончательной оценке метрик рекомендуемой модели, такой как точность. Кроме того, могут отображаться результаты с одинаковым именем модели, но используются разные гиперпараметров.
Предупреждение
Если в рабочей области установлены правила брандмауэра или группы безопасности сети, убедитесь, что необходимые разрешения предоставляются для входящего и исходящего сетевого трафика, как определено в настройке входящего и исходящего сетевого трафика.
Используя созданные MLClient в предварительных требованиях, можно выполнить следующую команду в рабочей области.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
Множественные дочерние запуски в кластерах
Дочерний элемент эксперимента AutoML можно запустить в кластере, который уже выполняет другой эксперимент. Время зависит от количества узлов кластера и от того, доступны ли эти узлы для выполнения другого эксперимента.
Каждый узел в кластере выступает в качестве отдельной виртуальной машины, которая может выполнять одно обучение. Для AutoML это означает дочерний запуск. Если все узлы заняты, AutoML очереди нового эксперимента. Если доступны бесплатные узлы, новый эксперимент выполняет дочерний эксперимент параллельно на доступных узлах или виртуальных машинах.
Чтобы управлять дочерними запусками и когда они могут выполняться, рекомендуется создать выделенный кластер для каждого эксперимента и сопоставить количество max_concurrent_iterations узлов в кластере. Таким образом, вы используете все узлы кластера одновременно с числом параллельных дочерних запусков и итераций, которые требуется выполнить.
Настройка max_concurrent_iterations в limits конфигурации. Если оно не настроено, по умолчанию разрешено только одно параллельное выполнение итерация дочернего запуска и итерации для каждого эксперимента. Для вычислительного экземпляра можно задать max_concurrent_trials одинаковое количество ядер на виртуальной машине вычислительного экземпляра.
Изучение моделей и метрик
AutoML предлагает варианты мониторинга и оценки результатов обучения.
Определения и примеры диаграмм производительности и метрик, предоставляемых для каждого запуска, см. в разделе оценки результатов эксперимента AutoML.
Чтобы получить сводку о признаках и понять, какие функции были добавлены в определенную модель, см. сведения о прозрачности признаков.
На странице модели Машинное обучение Azure пользовательского интерфейса можно также просмотреть гиперпараметров, используемых при обучении конкретной модели, а также просмотреть и настроить используемый код обучения внутренней модели.
Регистрация и развертывание моделей
После проверки модели и подтверждения ее использования в рабочей среде ее можно зарегистрировать для последующего использования.
Совет
Для зарегистрированных моделей можно использовать одно щелчок развертывания с помощью Студия машинного обучения Azure. См. сведения о развертывании модели.
Использование AutoML в конвейерах
Чтобы использовать AutoML в рабочих процессах операций машинного обучения, можно добавить шаги задания AutoML в конвейеры машинного обучения Azure. Такой подход позволяет автоматизировать весь рабочий процесс, подключив скрипты подготовки данных к AutoML. Затем зарегистрируйте и проверьте полученную лучшая модель.
Этот код представляет собой пример конвейера с компонентом классификации AutoML и компонентом команды, отображающим результирующий результат. Код ссылается на входные данные (данные обучения и проверки) и выходные данные (лучшую модель) в различных шагах.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
Дополнительные примеры включения AutoML в конвейеры см. в репозитории примеров.
Использование AutoML в масштабе: распределенное обучение
Для сценариев больших данных AutoML поддерживает распределенное обучение для ограниченного набора моделей:
| Распределенный алгоритм | Поддерживаемые задачи | Ограничение размера данных (приблизительное) |
|---|---|---|
| LightGBM | Классификация, регрессия | 1 TБ |
| TCNForecaster | Прогнозирование | 200 ГБ |
Распределенные алгоритмы обучения автоматически секционирует и распределяет данные между несколькими вычислительными узлами для обучения модели.
Примечание.
Кросс-проверка, модели ансамбля, поддержка ONNX и создание кода в настоящее время не поддерживаются в распределенном режиме обучения. Кроме того, AutoML может делать такие варианты, как ограничение доступных признаков и данных под выборки, используемых для проверки, объяснимости и оценки модели.
Распределенное обучение для классификации и регрессии
Чтобы использовать распределенное обучение для классификации или регрессии, задайте training_mode и max_nodes свойства объекта задания.
| Свойство | Описание |
|---|---|
| режим обучения | Указывает режим обучения: distributed или non_distributed. По умолчанию — non_distributed. |
| max_nodes | Количество узлов, используемых для обучения для каждой пробной версии. Этот параметр должен быть больше или равен 4. |
В следующем примере кода показан пример этих параметров для задания классификации:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
Примечание.
Распределенное обучение для задач классификации и регрессии в настоящее время не поддерживает несколько одновременных пробных версий. Пробные версии модели выполняются последовательно с каждой пробной версией с помощью max_nodes узлов. Параметр max_concurrent_trials ограничения в настоящее время игнорируется.
Распределенное обучение для прогнозирования
Сведения о том, как распределенное обучение работает для задач прогнозирования, см . в статье "Прогнозирование в масштабе". Чтобы использовать распределенное обучение для прогнозирования, необходимо задать training_modeenable_dnn_trainingmax_nodesи при необходимости max_concurrent_trials свойства объекта задания.
| Свойство | Описание |
|---|---|
| режим обучения | Указывает режим обучения; distributed или non_distributed. По умолчанию — non_distributed. |
| enable_dnn_training | Пометка для включения моделей глубокой нейронной сети. |
| Максимальное_количество_одновременных_экспериментов | Это значение — максимальное количество пробных моделей для параллельного обучения. По умолчанию равен 1. |
| max_nodes | Общее количество узлов, используемых для обучения. Этот параметр должен быть больше или равен 2. Для задач прогнозирования каждая пробная модель обучена с помощью узлов $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$. |
В следующем примере кода показан пример этих параметров для задания прогнозирования:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
Примеры полного кода конфигурации см. в предыдущих разделах по настройке и отправке заданий.
Связанный контент
- Узнайте больше о том, как и где можно развернуть модель.
- Узнайте больше о настройке AutoML для обучения модели прогнозирования временных рядов.