Настройка обучения AutoML с помощью Python

ОБЛАСТЬ ПРИМЕНЕНИЯ:Пакет SDK для Python для ML Azure версии 1

Из этого руководства вы узнаете, как настроить запуск автоматизированного машинного обучения AutoML с помощью пакета SDK для Машинного обучения Azure Python с помощью автоматизированного машинного обучения AML. Автоматизированное машинное обучение выбирает алгоритм и гиперпараметры, а также создает модель, готовую для развертывания. В этом разделе содержатся подробные сведения о различных параметрах, которые можно использовать для настройки экспериментов автоматизированного машинного обучения.

Полный пример см. в разделе Учебник. AutoML — модель регрессии.

Если вы предпочитаете работать без кода, можно также настроить обучение AutoML без кода в Студии машинного обучения Azure.

Необходимые компоненты

Для работы с этой статьей вам потребуется следующее:

Выбор типа эксперимента

Прежде чем начать эксперимент, следует определить тип задачи машинного обучения, которую необходимо решить. Автоматическое машинное обучение поддерживает задачи типов classification, regression и forecasting. Дополнительные сведения о типах задач.

Примечание.

Поддержка задач обработки естественного языка (NLP). Классификация изображений (с несколькими классами и несколькими метками) и распознавание именованных сущностей доступны в общедоступной предварительной версии. Дополнительные сведения об NLP см. в статье об автоматизированном машинном обучении.

Эти возможности предварительной версии предоставляются без соглашения об уровне обслуживания. Некоторые функции могут не поддерживаться или их функциональность может быть ограничена. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

В следующем коде параметр task в конструкторе AutoMLConfig использован для указания типа эксперимента classification.

from azureml.train.automl import AutoMLConfig

# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")

Источник данных и формат

Автоматическое машинное обучение поддерживает данные, находящиеся на локальном компьютере или в облаке в хранилище BLOB-объектов Azure. Данные можно считать в кадр данных Pandas или табличный набор данных Машинного обучения Azure. Дополнительные сведения о наборах данных.

Требования к обучающим данным в машинном обучении:

  • Данные должны иметь табличный формат.
  • Прогнозируемое значение (целевой столбец) должно присутствовать в данных.

Важно!

Эксперименты автоматизированного ML не поддерживают обучение с наборами данных, которые используют доступ к данным на основе удостоверений.

Для удаленных экспериментов обучающие данные должны быть доступны из удаленной вычислительной среды. При работе с удаленным вычислением автоматизированное машинное обучение принимает только табличные наборы данных для Машинного обучения Azure.

Наборы данных Машинного обучения Azure предоставляют следующие функциональные возможности:

  • простая передача данных из статических файлов или ресурсов с URL-адресами в рабочую область;
  • предоставление доступа к данным обучающим скриптам в облачной вычислительной среде. В статье Обучение с использованием наборов данных приведен пример использования класса Dataset для подключения данных к удаленной целевой вычислительной среде.

Следующий код создает TabularDataset на основе URL-адреса. В статье Создание TabularDataset приведены примеры кода, демонстрирующие создание наборов данных из других источников, таких как локальные файлы и хранилища данных.

from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)

Для локальных вычислительных экспериментов рекомендуется использовать кадры данных pandas за счет их более быстрой обработки.

import pandas as pd
from sklearn.model_selection import train_test_split

df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"

Обучение, проверка и тестирование данных

Можно указать отдельно учебные данные и проверочные наборы данных непосредственно в конструкторе AutoMLConfig. Дополнительные сведения о настройке обучения, проверки, перекрестной проверки, а также о тестовых данных для экспериментов AutoML.

Если параметр validation_data или n_cross_validation не задан явным образом, то автоматическое Машинное обучение применяет стандартные методы для определения способа проверки. Это определение зависит от количества строк в наборе данных, назначенном в параметре training_data.

Объем данных обучения Метод проверки
Более 20 000 строк Применяется разбиение данных по обучению и проверке. Значение по умолчанию — использовать 10 % начального набора данных для обучения в качестве набора проверки. В свою очередь, этот набор проверки используется для вычисления метрик.
Менее 20 000 строк Применяется подход перекрестной проверки. Стандартное количество сверток зависит от числа строк.
Если набор данных содержит менее 1000 строк, то используется 10 сверток.
Если имеется от 1000 до 20 000 строк, то используются три свертки.

Совет

Вы можете отправить тестовые данные (предварительная версия), чтобы проанализировать модели, созданные для вас посредством автоматизированного ML. Эти функции являются экспериментальными возможностями предварительной версии и могут быть изменены в любое время. Вы узнаете, как выполнять следующие задачи:

Если вы предпочитаете работать без кода, см. Шаг 12 статьи "Настройка AutoMLл с помощью пользовательского интерфейса студии"

Данные большого объема

Автоматизированное машинное обучение поддерживает ограниченное количество алгоритмов для обучения на больших данных, которые могут создавать модели для больших данных на небольших виртуальных машинах. Автоматизированная эвристика машинного обучения зависит от таких свойств, как размер данных, размер памяти виртуальной машины, время ожидания эксперимента и параметры конструирования признаков, чтобы определить, следует ли применять эти алгоритмы больших данных. Сведения о том, какие модели поддерживаются в автоматизированном машинном обучении см. в этом разделе.

Если вы хотите переопределить эту эвристику, примените приведенные ниже настройки.

Задача Параметр Примечания.
Блокировать алгоритмы потоковой передачи данных blocked_models в объекте AutoMLConfig и перечислите модели, которые вы не хотите использовать. Приводит либо к сбою выполнения, либо к длительному времени выполнения.
Использовать алгоритмы потоковой передачи данных allowed_models в объекте AutoMLConfig и перечислите модели, которые вы хотите использовать.
Использование алгоритмов потоковой передачи данных
(эксперименты с пользовательским интерфейсом Studio)
Заблокируйте все модели, кроме алгоритмов больших данных, которые вы хотите использовать.

Вычисление для запуска эксперимента

Затем следует определить, где модель будет обучаться. Эксперимент автоматического машинного обучения можно запустить в следующих вычислительных средах.

  • Выберите локальные вычислительные ресурсы: если ваш сценарий относится к первоначальным исследованиям или демонстрациям с использованием небольших данных и коротких поездов (т. е. секунд или нескольких минут на каждый дочерний запуск), обучение на локальном компьютере может оказаться лучшим вариантом. Нет необходимости в настройке, а ресурсы инфраструктуры (ваш компьютер или виртуальная машина) доступны напрямую. Пример для локальных вычислительных ресурсов см. в этой записной книжке.

  • Выберите удаленный вычислительный кластер машинного обучения. Если обучение ведется на больших наборах данных, например, при создании моделей для обучения в производственной среде, требующих более длительного обучения, то удаленное вычисление обеспечит более высокую производительность, т. к. AutoML будет параллельно вести обучение на узлах кластера. При использовании удаленного вычисления время запуска внутренней инфраструктуры составит около 1,5 минуты на каждый дочерний запуск, плюс дополнительные минуты для инфраструктуры кластера, если виртуальные машины еще не запущены.Вычислительная среда Машинного обучения — это управляемая служба, позволяющая обучать модели машинного обучения в кластерах виртуальных машин Azure. Вычислительный экземпляр также поддерживается в качестве целевого объекта вычислений.

  • Кластер Azure Databricks в подписке Azure. Дополнительные сведения см. здесь: Настройка кластера Azure Databricks для автоматического Машинного обучения. На сайте GitHub доступны примеры записных книжек с Azure Databricks.

При выборе целевого объекта вычислений учитывайте следующие факторы.

Преимущества Недостатки
Локальный целевой объект вычислений
  • Не требуется время на запуск среды
  • Подмножество функций
  • Не удается параллелизировать запуски
  • Не подходит для больших объемов данных
  • Нет потоковой передачи данных во время обучения
  • Нет признаков на основе DNN
  • Только пакет SDK для Python
  • Удаленные вычислительные кластеры ML
  • Полный набор функций
  • Параллелизация дочерних запусков
  • Поддержка больших наборов данных
  • Определение признаков на основе DNN
  • Динамическая масштабируемость вычислительного кластера по запросу
  • Также доступен интерфейс без кода (веб-интерфейс)
  • Время запуска узлов кластера
  • Требуется время на каждый дочерний запуск
  • Настройка параметров эксперимента

    Доступно несколько параметров, с помощью которых можно настроить эксперименты автоматического машинного обучения. Эти параметры задаются путем создания экземпляра объекта AutoMLConfig. Полный список параметров см. в статье AutoMLConfig class (Класс AutoMLConfig).

    Следующий пример предназначен для задачи классификации. В эксперименте AUC используется в качестве основной метрики, а время ожидания эксперимента установлено равным 30 минутам и 2 сверткам перекрестной проверки.

        automl_classifier=AutoMLConfig(task='classification',
                                       primary_metric='AUC_weighted',
                                       experiment_timeout_minutes=30,
                                       blocked_models=['XGBoostClassifier'],
                                       training_data=train_data,
                                       label_column_name=label,
                                       n_cross_validations=2)
    

    Можно также настроить задачи прогнозирования, требующие дополнительной настройки. Подробные сведения см. в статье Настройка AutoML для прогнозирования временных рядов.

        time_series_settings = {
                                'time_column_name': time_column_name,
                                'time_series_id_column_names': time_series_id_column_names,
                                'forecast_horizon': n_test_periods
                               }
        
        automl_config = AutoMLConfig(
                                     task = 'forecasting',
                                     debug_log='automl_oj_sales_errors.log',
                                     primary_metric='normalized_root_mean_squared_error',
                                     experiment_timeout_minutes=20,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     path=project_folder,
                                     verbosity=logging.INFO,
                                     **time_series_settings
                                    )
    

    Поддерживаемые модели

    Автоматическое машинное обучение в процессе настройки проверяет различные модели и алгоритмы. Пользователю не нужно указывать алгоритм.

    Тремя разными значениями параметра task определяется перечень алгоритмов или моделей, которые будут использоваться. Используйте параметры allowed_models или blocked_models для дополнительного изменения итераций с помощью доступных моделей для включения или исключения. В следующей таблице перечислены поддерживаемые модели по типам задач.

    Примечание.

    Если вы планируете экспортировать модели, созданные автоматизированным машинным обучением, в модель ONNX, преобразовать в формат ONNX можно только алгоритмы, обозначенные символом "*" (звездочка). Дополнительные сведения о преобразовании моделей в ONNX.

    Также обратите внимание, что в настоящее время ONNX поддерживает только задачи классификации и регрессии.

    Классификация Регрессия Прогнозирование временных рядов
    Логистическая регрессия* Эластичная сеть* AutoARIMA
    Упрощенный алгоритм GBM* Упрощенный алгоритм GBM* Prophet
    Градиентное усиление* Градиентное усиление* Эластичная сеть
    Дерево принятия решений* Дерево принятия решений* Упрощенный алгоритм GBM
    Алгоритм "К ближайших соседей"* Алгоритм "К ближайших соседей"* Градиентное усиление
    Линейная классификация опорных векторов* Лассо LARS* Дерево принятия решений
    Классификация опорных векторов (SVC)* Стохастический градиентный спуск (SGD)* Arimax
    Случайный лес* Случайный лес Лассо LARS
    Крайне случайные деревья* Крайне случайные деревья* Стохастический градиентный спуск (SGD)
    Xgboost* Xgboost* Случайный лес
    Классификатор усредненного восприятия Регрессор вероятностного градиентного спуска Xgboost
    Упрощенный алгоритм Байеса* Быстрый линейный регрессор ForecastTCN
    Стохастический градиентный спуск (SGD)* Naive
    Линейный классификатор SVM* SeasonalNaive
    Average
    SeasonalAverage
    ЭкспоненциальнаяSmoothing

    Основная метрика

    Параметр primary_metric определяет используемые метрики во время обучения и оптимизации модели. Доступная для выбора метрика определяется выбранным вами типом задачи.

    Выбор основной метрики для оптимизации автоматического машинного обучения зависит от многих факторов. Рекомендуется выбрать метрику, которая лучше соответствует потребностям вашего бизнеса. Затем рассмотрите, подходит ли метрика для профиля набора данных (размер данных, диапазон, распределение классов и т. д.). В следующих разделах приведены рекомендуемые основные метрики, исходя из типа задач и бизнес-сценария.

    Сведения об определениях этих метрик см. в статье Общие сведения о результатах автоматизированного машинного обучения.

    Метрики для сценариев классификации

    Основанные на пороговых значениях метрики, такие как accuracy, recall_score_weighted, norm_macro_recall и precision_score_weighted, не всегда годятся для оптимизации наборов данных небольших размеров, имеющих большой разброс (дисбаланс) классов или когда ожидаемые значения метрики близки к 0,0 или 1,0. В таких случаях AUC_weighted может быть лучшим выбором в качестве основной метрики. После завершения автоматического машинного обучения можно выбрать эффективную модель на основе метрики, наиболее подходящей для ваших бизнес-задач.

    Метрика Пример (-ы) использования
    accuracy Классификация изображений, анализ тональности, прогнозирование оттока клиентов
    AUC_weighted Обнаружение мошенничества, классификация изображений, обнаружение аномалий или нежелательной почты
    average_precision_score_weighted Анализ тональности
    norm_macro_recall Прогнозирование оттока клиентов
    precision_score_weighted

    Метрики для сценариев регрессии

    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 может быть лучшим выбором, так как измеряет корреляцию между реальными значениями и прогнозами.

    Однако в настоящее время никакие первичные метрики для регрессии не связаны с относительными различиями. Как r2_score, так и normalized_mean_absolute_error, и normalized_root_mean_squared_error обрабатывают ошибку прогнозирования 20 тыс. долл. как для работника с заработной платой 30 тыс. долл., так и для работника, зарабатывающего 20 млн долл., если эти две точки данных относятся к одному и тому же набору данных для регрессии или к тому же временному ряду, заданному идентификатором временного ряда. В реальности же прогноз с погрешностью $20 000 для величин порядка $20 000 000 — это очень высокая точность (относительное отклонение всего 0,1 %), в то время как погрешность $20 000 от суммы $30 000 трудно назвать прогнозом (относительное отклонение 67 %). Для решения проблемы относительной разницы можно обучить модель с доступными основными метриками, а затем выбрать модель с лучшим 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

    Конструирование признаков

    В каждом эксперименте по автоматизированному машинному обучению данные автоматически масштабируются или нормализуются, что способствует эффективному выполнению некоторых алгоритмов, чувствительных к разным масштабам признаков. Такое масштабирование и нормализация называются конструированием признаков. Дополнительные сведения и примеры кода см. в статье Конструирование признаков в автоматическом Машинном обучении.

    Примечание.

    Шаги конструирования признаков автоматизированного машинного обучения (нормализация признаков, обработка недостающих данных, преобразование текста в числовой формат и т. д.) становятся частью базовой модели. При использовании модели прогнозирования те же этапы конструирования признаков, которые выполнялись во время обучения, автоматически выполняются для входных данных.

    При настройке экспериментов в объекте AutoMLConfig можно включить или отключить параметр featurization. В приведенной ниже таблице показаны допустимые параметры для конструирования признаков в объекте AutoMLConfig.

    Конфигурация конструирования признаков Description
    "featurization": 'auto' Указывает, что в рамках предварительной обработки проверка данных и шаги конструирования признаков выполняются автоматически. Значение по умолчанию.
    "featurization": 'off' Указывает, что шаг конструирования признаков не должен выполняться автоматически.
    "featurization": 'FeaturizationConfig' Указывает, что следует использовать настраиваемый шаг конструирования признаков. Узнайте, как настроить конструирование признаков.

    Конфигурация ансамбля

    Модели ансамблей включены по умолчанию и отображаются как окончательные итерации выполнения при запуске автоматического Машинного обучения. В настоящее время поддерживаются ансамбли VotingEnsemble и StackEnsemble.

    Голосование реализует мягкое голосование, в котором используются средневзвешенные значения. Стогование — это реализация двухслойного ансамбля, где первый слой использует те же модели, что и ансамбль голосования, а модель второго слоя используется для определения оптимального сочетания моделей первого слоя.

    В случае использования моделей ONNX или если применяется метод объяснимости моделей, стогование будет отключено и используется только голосование.

    Обучение с использованием ансамблей можно отключить логическими параметрами enable_voting_ensemble и enable_stack_ensemble.

    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=data_train,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     enable_voting_ensemble=False,
                                     enable_stack_ensemble=False
                                    )
    

    Для изменения стандартного поведения ансамбля предусмотрено несколько аргументов, которые можно передавать через kwargs в объект AutoMLConfig.

    Важно!

    Следующие параметры не являются явными параметрами класса AutoMLConfig.

    • ensemble_download_models_timeout_sec: во время создания модели VotingEnsemble и StackEnsemble скачиваются несколько встроенных моделей из предыдущих дочерних запусков. Если возникает ошибка AutoMLEnsembleException: Could not find any models for running ensembling, может потребоваться дополнительное время для скачивания моделей. Значение по умолчанию составляет 300 секунд для параллельного скачивания этих моделей. Время ожидания не ограничено. Если требуется больше времени, настройте для этого параметра значение более 300 секунд.

      Примечание.

      Если время ожидания истекло и имеются скачанные модели, то сборка продолжается с тем количеством моделей, которое было скачано. Не все модели должны быть обязательно скачаны до истечения времени ожидания. Перечисленные ниже параметры применимы только к моделям StackEnsemble.

    • stack_meta_learner_type: мета-обучение — это модель, обученная на основе выходных данных отдельных разнородных моделей. Модели мета-обучения по умолчанию: LogisticRegression для задач классификации (или LogisticRegressionCV, если включена перекрестная проверка) и ElasticNet для задач регрессии и прогнозирования (или ElasticNetCV, если включена перекрестная проверка). Значением этого параметра может быть одна из следующих строк: LogisticRegression, LogisticRegressionCV, LightGBMClassifier, ElasticNet, ElasticNetCV, LightGBMRegressor или LinearRegression.

    • stack_meta_learner_train_percentage: определяет долю обучающего набора (при выборе типа обучения "обучение и проверка"), зарезервированного для обучения модели мета-обучения. Значение по умолчанию: 0.2.

    • stack_meta_learner_kwargs: необязательные параметры для передачи в инициализатор мета-обучения. Эти параметры и типы параметров отражают параметры и типы параметров из соответствующего конструктора модели и перенаправляются в конструктор модели.

    В приведенном ниже коде показан пример настройки пользовательского поведения коллективных моделей в объекте AutoMLConfig.

    ensemble_settings = {
                         "ensemble_download_models_timeout_sec": 600
                         "stack_meta_learner_type": "LogisticRegressionCV",
                         "stack_meta_learner_train_percentage": 0.3,
                         "stack_meta_learner_kwargs": {
                                                        "refit": True,
                                                        "fit_intercept": False,
                                                        "class_weight": "balanced",
                                                        "multi_class": "auto",
                                                        "n_jobs": -1
                                                      }
                        }
    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     **ensemble_settings
                                    )
    

    Условия выхода

    Для завершения эксперимента в классе AutoMLConfig предусмотрено несколько параметров.

    Критерии description
    Нет условий Если не определить параметры выхода, эксперимент будет продолжаться до тех пор, пока улучшение по основной метрике не прекратится.
    По истечении периода времени Используйте параметр experiment_timeout_minutes, чтобы задать продолжительность, в течение которой ваш эксперимент будет выполняться.

    Чтобы избежать сбоев по времени выполнения экспериментов, предусмотрена минимальная продолжительность 15 минут или 60 минут для наборов данных размером свыше 10 млн (произведение строк и столбцов).
    Достигнуто значение оценки При использовании experiment_exit_score эксперимент будет завершен по достижении определенного значения основной метрики.

    Выполнение эксперимента

    Предупреждение

    Если вы запускаете эксперимент с одними и теми же настройками конфигурации и основным показателем несколько раз, вы, вероятно, увидите различия в итоговой оценке каждого эксперимента и созданных моделей. Алгоритмы автоматизированного машинного обучения имеют присущую им случайность, которая может вызвать небольшие отклонения в моделях, выводимых в результате эксперимента, и в окончательной оценке рекомендованной модели, например в точности. Скорее всего, вы также увидите результаты с тем же именем модели, но с разными гиперпараметрами.

    Для автоматизированного машинного обучения можно создать объект Experiment, который будет именованным объектом в Workspace для запуска экспериментов.

    from azureml.core.experiment import Experiment
    
    ws = Workspace.from_config()
    
    # Choose a name for the experiment and specify the project folder.
    experiment_name = 'Tutorial-automl'
    project_folder = './sample_projects/automl-classification'
    
    experiment = Experiment(ws, experiment_name)
    

    Отправьте эксперимент для выполнения и создания модели. Передайте AutoMLConfig в метод submit, чтобы создать модель.

    run = experiment.submit(automl_config, show_output=True)
    

    Примечание.

    Сначала зависимости устанавливаются на новую виртуальную машину. Это может занять до 10 минут, прежде чем отобразятся выходные данные. Если для параметра show_output задать значение True, выходные данные отобразятся в консоли.

    Множественные дочерние запуски в кластерах

    В кластере, на котором уже выполняется другой эксперимент, можно выполнять дочерние запуски эксперимента автоматического Машинного обучения. Однако время выполнения зависит от количества узлов в кластере, а также от того, доступны ли эти узлы для выполнения другого эксперимента.

    Каждый узел в кластере выступает в качестве отдельной виртуальной машины (ВМ), которая может завершить один обучающий запуск. Для автоматического выполнения Машинного обучения это будет дочерний запуск. Если все узлы заняты, новый эксперимент помещается в очередь. Но если имеются свободные узлы, новый эксперимент будет начинать дочерние запуски автоматического Машинного обучения параллельно в доступных узлах или ВМ.

    Для упрощения управления дочерними запусками и времени их выполнения рекомендуется создать выделенный кластер для каждого эксперимента и сравнять количество max_concurrent_iterations узлов в этом кластере по количеству экспериментов. Таким образом, одновременно используются все узлы кластера по количеству одновременно выполняемых дочерних запусков и итераций.

    Настройте max_concurrent_iterations в объекте AutoMLConfig. Если параметр не настроен, то по умолчанию для каждого эксперимента разрешен только один одновременный дочерний запуск (итерация). В случае с вычислительным экземпляром можно задать то же значение max_concurrent_iterations, что и число ядер в виртуальной машине вычислительного экземпляра.

    Изучение моделей и метрик

    Автоматическое Машинное обучение позволяет отслеживать и оценивать результаты обучения.

    Используя код , print_model(), можно настроить гиперпараметры, методы масштабирования и нормализации, алгоритм, применяемый для отдельных запусков автоматического Машинного обучения.

    Совет

    Автоматизированное ML также позволяет просматривать созданный код обучения модели для моделей, обученных посредством автоматизированного машинного обучения. Этот функционал доступен в общедоступной предварительной версии и может меняться в любое время.

    Мониторинг автоматизированных запусков машинного обучения

    Для запусков автоматизированного машинного обучения, чтобы получить доступ к диаграммам из предыдущего выполнения, замените <<experiment_name>> на соответствующее имя эксперимента.

    from azureml.widgets import RunDetails
    from azureml.core.run import Run
    
    experiment = Experiment (workspace, <<experiment_name>>)
    run_id = 'autoML_my_runID' #replace with run_ID
    run = Run(experiment, run_id)
    RunDetails(run).show()
    

    Jupyter notebook widget for Automated Machine Learning

    Тестовые модели (предварительная версия)

    Важно!

    Тестирование моделей с помощью тестового набора данных для оценки моделей, созданных посредством автоматизированного ML — это предварительная версия функции. Этот возможность является предварительной версией экспериментальной функции и может быть изменена в любое время.

    Передача параметров test_data или test_size в AutoMLConfig автоматически запускает удаленный тестовый запуск, использующий предоставленные проверочные данные для оценки лучшей модели, которую автоматизированное ML рекомендует при завершении эксперимента. Этот удаленный тестовый запуск выполняется в конце эксперимента, как только будет определена лучшая модель. См. статью Передача тестовых данных в AutoMLConfig.

    Получение результатов тестового задания

    Прогнозы и метрики можно получить из удаленного тестового задания из Студии машинного обучения Azure или с помощью следующего кода.

    best_run, fitted_model = remote_run.get_output()
    test_run = next(best_run.get_children(type='automl.model_test'))
    test_run.wait_for_completion(show_output=False, wait_post_processing=True)
    
    # Get test metrics
    test_run_metrics = test_run.get_metrics()
    for name, value in test_run_metrics.items():
        print(f"{name}: {value}")
    
    # Get test predictions as a Dataset
    test_run_details = test_run.get_details()
    dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
    test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
    predictions_df = test_run_predictions.to_pandas_dataframe()
    
    # Alternatively, the test predictions can be retrieved via the run outputs.
    test_run.download_file("predictions/predictions.csv")
    predictions_df = pd.read_csv("predictions.csv")
    
    

    Тестовое задание модели создает файл predictions.csv, который хранится в хранилище данных по умолчанию, созданном с помощью рабочей области. Это хранилище могут видеть все пользователи с одинаковой подпиской. Тестовые задания не рекомендуются для сценариев, если какая-либо информация, используемая для тестового задания или созданная им, должна оставаться закрытой.

    Тестирование существующей модели автоматизированного ML

    Чтобы протестировать другие существующие модели автоматизированного ML, созданные, выполненные в порядке оптимального задания или дочернего задания, используйте ModelProxy() для тестирования модели после завершения основного запуска AutoML. ModelProxy() уже возвращает прогнозы и метрики и не требует дальнейшей обработки для получения выходных данных.

    Примечание.

    ModelProxy является предварительной версией экспериментального класса и может измениться в любое время.

    В следующем коде показано, как протестировать модель из любого запуска с помощью метода ModelProxy.test(). В методе test () можно указать, если нужно видеть только прогнозы тестового запуска с параметром include_predictions_only.

    from azureml.train.automl.model_proxy import ModelProxy
    
    model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
    predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
    )
    

    Регистрация и развертывание моделей

    После проверки модели и подтверждения ее использования в рабочей среде ее можно зарегистрировать для последующего использования и

    Чтобы зарегистрировать модель во время запуска автоматического Машинного обучения, используйте метод register_model().

    
    best_run = run.get_best_child()
    print(fitted_model.steps)
    
    model_name = best_run.properties['model_name']
    description = 'AutoML forecast example'
    tags = None
    
    model = run.register_model(model_name = model_name, 
                                      description = description, 
                                      tags = tags)
    

    Дополнительные сведения о создании конфигурации развертывания и развертывании зарегистрированной модели в веб-службе см. в статье Как и где развертывается модель.

    Совет

    Для зарегистрированных моделей развертывание одним щелчком доступно через Студию машинного обучения Azure. См. статью Развертывание зарегистрированных моделей из студии.

    Интерпретируемость модели

    Интерпретируемость модели позволяет понять, почему модели дали тот или иной прогноз, а также важность базовых признаков. Пакет SDK содержит различные пакеты для включения функций интерпретации модели как во время обучения, так и во время вывода для локальных и развернутых моделей.

    См. порядок включениея функций интерпретации, в частности в экспериментах автоматизированного машинного обучения.

    Общие сведения о том, как можно включить пояснения к моделям и важность признаков в других компонентах пакета SDK, не относящихся к автоматизированному машинному обучению, см. в концептуальной статье об интерпретируемости.

    Примечание.

    Модель ForecastTCN в настоящее время не поддерживается в Explanation Client. Эта модель не будет возвращать панель мониторинга с объяснением, если она возвращается в качестве лучшей модели и не поддерживает запуски объяснения по требованию.

    Следующие шаги