AutoML

AutoML — сервис для автоматического построения и обучения моделей на пользовательских данных (табличные данные) на базе библиотеки LightAutoML. Он позволяет решать задачи бинарной и многоклассовой классификации и регресии в различных постановках. Полученные сериализованные модели можно впоследствии развернуть в виде микросервисов на высокопроизводительных мощностях с целью прогнозирования на новых данных. Пример по использованию сервиса размещен на GitHub. Некоторые особенности работы с примерами описаны в соответствующем разделе ниже.

Работа с сервисом предполагает следующую последовательность действий:

  1. Подготовка набора данных (dataset) для обучения и загрузка этих данных в объектное хранилище S3.

  2. Создание задачи обучения.

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

  4. Запуск задачи обучения AutoML с указанными параметрами.

Результатом обучения станет сериализованная модель (формат pickle) на бакете S3.

Загрузка данных

До начала работы с сервисом AutoML необходимо загрузить данные в объектное хранилище S3. Для этой цели можно использовать:

  • Интерфейс Файлового менеджера (вкладка Обзор хранилища, кнопка Создать).

  • Сторонние клиентские приложения с графическим интерфейсом (Cyberduck, S3 Browser).

  • Data transfer service (см. Миграция данных).

Важно

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

Создание задачи обучения

Для создания задачи обучения:

  1. Нажмите на вкладку AutoML → Задачи AutoML для перехода на страницу сервиса.

  2. На панели Задачи нажмите кнопку Новый AutoML.

  3. В открывшемся диалоговом окне задайте необходимые параметры. Описание основных и расширенных настроек приведено в разделе Настройки задачи обучения.

  4. Для запуска обучения модели с указанными параметрами нажмите Начать обучение.

Настройки задачи обучения

При создании задачи AutoML необходимо задать основные настройки:

  • Имя модели.

  • Бакет в хранилище S3.

  • Датасет и его настройки.

Имя модели — имя файла, в который сохраняется сериализованная модель после окончания обучения. Например, если ввести в данном поле название «Sample model», то модель сохранится в директорию, указанную в поле Расположение модели (см. Загрузка и хранение данных).

Выбор бакета S3. Бакет можно выбрать из списка (значение по умолчанию) или указать параметры подключения к бакету вручную. При выборе типа подключения «Указать вручную» пользователь вводит параметры подключения самостоятельно. Необходимые параметры:

  • S3 Endpoint — endpoint объектного хранилища S3. Подробная информация о том, как узнать параметры подключения приведена в разделе Credentials S3 и копирование пути к объекту на S3.

  • Access Key ID — ключ доступа к объектному хранилищу S3.

  • Security Key — ключ безопасности объектного хранилища S3.

Загрузка датасета и определение задачи

Необходимые наcтройки описаны в таблице ниже.

Параметр

Значение

Dataset

Путь до датасета на S3. Датасет должен быть в формате .csv. Загрузка датасета осуществляется через диалог выбора. После загрузки датасета необходимо выбрать разделитель столбцов в .csv файле — запятая, точка с запятой, пробел, символ табуляции, пользовательский разделитель. Десятичный разделитель — точка, запятая.

Целевой признак

Название колонки, которая будет использоваться в качестве целевого признака обучения. Выбор целевого признака становится доступным после загрузки датасета.

Задача обучения

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

Расширенные настройки задаются по желанию. Они описаны в таблице ниже.

Параметр

Значение

Расположение модели

Путь, по которому сохранится обученная модель; указывается в формате s3://<bucket>/<folder>. Обратите внимание на то, что также можно не указывать префикс s3:// в наименовании бакета.

Целевая метрика

Показатели, по которым оценивается качество обучения. Выбор целевой метрики зависит от типа задачи. См. подробнее в разделе Целевые метрики.

Функция потерь

Стандартные метрики ошибок в зависимости от постановки задачи.

Роли и расширенные параметры признаков

Если дополнительные настройки, предусмотренные данным пунктом, не заданы, это означает, что признаки датасета не размечены, и роли для этих признаков определяются автоматически, исходя из следующей логики:

  • Если признак можно преобразовать в дату, используется роль «Datetime».

  • Если признак можно преобразовать в число, используется роль «Numeric».

  • Во всех остальных случаях признак будет интерпретироваться как «Category».

Пользователи также могут явно проставить роли для признаков датасета. При этом, некоторые роли могут изменить дефолтное поведение AutoML в интерпретации данных.

Например, «Drop» для признака означает, что указанный признак не будет использоваться для построения модели. «Text» означает, что колонка является текстом, и ее по умолчанию не стоит интерпретировать как категорию.

Следует отметить, что AutoML автоматически делит признаки на значимые и незначимые. По умолчанию незначимые признаки исключаются при обучении модели. Для изменения этого поведения отметьте чекбоксом поле Включить признак в обучение при любом результате отбора признаков.

При выборе роли «Datetime» можно задать следующие дополнительные настройки:

  • Указать, что дата является базовой.

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

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

  • Задать интервалы сезонности и установить формат даты.

    Примеры форматов даты:

    • %d/%m/%y — 11/03/02.

    • %A %d. %B %Y — Monday 11. March 2002.

    Примеры формата времени:

    • %H:%M:%S — 7:45:00.

    • %I:%M%p — 04:30PM.

    • %H:%M:%S %Z — 12:10:30 +01:00.

    Пример формата даты и времени:

    • %d/%m/%y %H:%M — 21/11/06 16:30.

    Отметим, что при обработке датасета роль «Datetime» передает формат данных в функцию pandas.to_datetime.

    Возможные поддерживаемые форматы представления данных указаны в документации.

Параметры тестовой выборки

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

Рекомендуется создать тестовую выборку для получения достоверной оценки. Стандартное разбиение осуществляется в пропорции 80/20. Увеличение размера тестовой выборки уменьшает размер обучающей выборки, что может привести к снижению качества модели.

Если оценка на тестовой выборке не требуется (размер тестовой выборки равен 0), будет получена оценка качества модели на основе OOF-кроссвалидации.

Ресурсы задачи

Количество GPU на каждом рабочем узле кластера, выделяемое для запуска задачи обучения. Максимальное количество GPU на одном рабочем узле кластера — 16. 1 GPU = 3 CPU.

Обратите внимание на то, что чем больше GPU требуется для обучения модели, тем выше вероятность возникновения нехватки вычислительных ресурсов. Планировщик кластера (scheduler) поставит задачу в очередь исполнения, и она может достаточно долго находиться в статусе «pending».

Максимальное время обучения

Время в секундах, в течение которого может обучаться модель AutoML. Если обучение не завершилось к указанному моменту времени, сервис выдаст модель, обученную до того этапа, на котором завершилось обучение. По умолчанию это значение составляет 3600 секунд.

Выполнение задачи обучения и просмотр логов

После запуска задачи обучения сервис переложит пользовательские данные с объектного хранилища S3 на NFS (локальное хранилище кластера Christofari). Задача обучения модели запустится в базовом образе для AutoML. При выполнении задачи обучения можно просматривать ее логи. Подробнее про см. Логи.

Просмотр отчета о выполненной задаче обучения

После завершения обучения (статус задачи «Завершена») можно просмотреть отчет об обучении. Для просмотра отчета кликните по карточке задачи. Перейдите на вкладку Отчеты. Подробнее про структуру отчета.

Важно

Генерация отчетов недоступна для ранее созданных задач.

Batch Prediction

Для создания Batch Prediction:

  1. На карточке модели из меню Кнопка с тремя вертикальными точками выберите Выполнить Batch Prediction.

  2. В открывшемся окне выберите требуемый бакет.

  3. Выберите датасет, к которому требуется выполнить Batch Prediction.

  4. Выберите папку для сохранения результатов. В результате выполнения Batch Prediction получается файл с расширением .csv.

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

Остановка запущенной задачи обучения

Остановка выполняется на вкладке Environments, страница Задачи и окружения → Задачи при нажатии на кнопку остановки в меню Кнопка с тремя вертикальными точками в строке записи задачи

../_images/s__automl-stop.png

Типы задач обучения

Сервис AutoML позволяет решать задачи бинарной и многоклассовой классификации и регресии.

Задача классификации подразумевает получение категориального ответа на основе набора признаков. Она имеет конечное количество ответов (как правило, в формате «да» или «нет»):

  • вернет ли кредит клиент;

  • является ли сделка мошеннической;

  • болен ли пациент раком.

Задача бинарной классификации подразумевает, что на выходе имеется два ответа.

Задача многоклассовой классификации предполагает, что на выходе имеется больше двух ответов.

Задача регрессии — прогноз на основе выборки объектов с различными признаками. На выходе должно получиться вещественное число (2, 35, 76.454 и др.), к примеру цена квартиры, стоимость ценной бумаги по прошествии полугода, ожидаемый доход магазина на следующий месяц, качество вина при слепом тестировании.

Целевые метрики

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

Целевая метрика

Описание

auc

Площадь под ROC-кривой. Эта кривая ошибок является графическим инструментом для оценки точности моделей бинарной классификации и представляет из себя линию от (0,0) до (1,1) в координатах True Positive Rate (TPR) и False Positive Rate (FPR). В случае идеальной модели график ROC-кривой проходит через точку (0,1), площадь под графиком максимальна и равна 1. Для задач многоклассовой классификации используется метод усреднения macro, что означает вычисление метрики для каждого класса и получение невзвешенного среднего.

logloss

Логистическая функция потерь.

Используется в задачах классификации для оценки вероятности принадлежности объектов к каждому из классов. В задачах бинарной классификации, где количество классов M =2, логистическая функция потерь вычисляется по формуле:

\[−(y\log(p)+(1−y)\log(1−p))\]

При M > 2 (задача многоклассовой классификации) считается отдельная функция потерь для каждого класса за наблюдение, результаты суммируются. См. подробнее в документации.

accuracy

Доля правильных ответов алгоритма. Для расчета используется матрица ошибок. Объекты разбиваются на 4 категории в зависимости от комбинации истинного ответа и ответа алгоритма. Через элементы этой матрицы можно выразить долю правильных ответов:

\[accuracy = \frac{TP + TN}{TP + TN + FP + FN}\]
  • TP — True Positive

  • TN — True Negative

  • FP — False Positive

  • FN — False Negative

crossentropy

Перекрестная энтропия. Эта метрика используется для количественной оценки разницы между двумя распределениями вероятностей. См. logloss.

r2

Коэффициент детерминации. Указывает на достоверность соответствия набора прогнозов фактическим значениям. Диапазон значений находится между 0 и 1. Если значение близко к 1, то модель хорошо объясняет данные. Если значение близко к нулю, то прогнозы сопоставимы по качеству с константным предсказанием. Если r2 имеет отрицательное значение, модель хуже, чем предсказание средним значением. Формула для расчета приведена в документации.

mse

Среднеквадратичная ошибка. Для каждой точки вычисляется возведенная в квадрат разница между прогнозом и истинным значением целевой переменной, затем эти значения усредняются. Чем выше это значение относительно целевой переменной, тем хуже модель. Например: MSE = 10 является очень плохим показателем, если целевая переменная принимает значения от 0 до 1, и очень хорошим, если эта переменная лежит в интервале (10000, 100000). Формула для расчета приведена в документации.

mae

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

rmsle

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

mape

Средняя абсолютная ошибка в процентах. Формула для расчета приведена в документации.

Обратите внимание на то, что в качестве дополнительных параметров модели можно указать функцию потерь (mse, mae, rmsle или mape). Отличие между одноименными метриками обучения заключается в том, что метрики используются для оценки качества предсказаний модели после обучения. Функция потерь служит для оптимизации качества предсказаний в процессе обучения. Таким образом, любой алгоритм машинного обучения имеет целью минимизировать функцию потерь.

Результат вычисления целевой метрики (score) отображается в интерфейсе пользователя для завершенных задач в экспоненциальном представлении.

OOF Score — значение целевой метрики на предсказаниях, полученных на обучающей выборке в процессе кросс-валидации. Test Score — значение целевой метрики на тестовой выборке.

Важно

Кросс-валидация для вычисления OOF Score осуществляется по 5 фолдам. Для задач регрессии применяется k-fold кросс-валидация. Для задач бинарной и многоклассовой классификации — Stratified k-fold кросс-валидация.

../_images/s__metrics.png

Пресеты

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

  • TabularAutoML.

  • Natural Language Processing (обработка естественных языков).

Использование пресета NLP позволяет:

  • Классифицировать тексты (classification) - отнесение текста к одной из контентных категорий по содержанию, решаемая задача - классификация.

  • Анализировать эмоциональную окраску (sentiment analysis) – идентификация превалирующего эмоционального мнения – позитивного негативного/нейтрального либо позитивного/негативного. Решаемая задача - задача многоклассовой классификации.

Пресет NLP работает только с текстами. Поддерживаемые языки – нормативные и разговорные русский и английский.

Автоматическая сборка Docker-образа

В рамках сервиса AutoML можно автоматически собрать Docker-образ с предварительно обученной моделью для последующего ее развертывания на необходимой конфигурации с использованием сервиса Deployments.

Для сборки образа выберите команду Создать образ из меню Кнопка с тремя вертикальными точками. Это действие инициирует отправку запроса в сервис Deployments на сборку Docker-образа с обученной моделью и serving-скриптом.

Для просмотра статуса сборки образа:

  • Перейдите на вкладку Deployments → Деплои.

  • Нажмите кнопку Создать Deploy. Откроется диалог Создать Deploy.

  • Найдите нужный образ в списке (в названии образа есть префикс «automl-img»). Логи сборки можно просмотреть, выбрав соответствующий пункт из меню Кнопка с тремя вертикальными точками. Логи можно копировать в текстовом формате для последующего сохранения в файл. После окончания сборки (статус «Готов к работе») образ можно развернуть на сервисе. См. Развертывание модели.

Особенности работы с примерами

При работе с примерами на GitHub. важно помнить следующее:

  1. В LightAutoML в ячейках ноутбука по умолчанию выводятся предупреждения перед выполнением кода

    ../_images/s__light-auo-ml__warnings.png

    Чтобы их отключить, добавьте в ноутбук (раздел Import necessary libraries) следующие команды:

    import warnings
    warnings.filterwarnings('ignore')
    
  2. Если пользователь удалил папку с примерами AutoML, но необходимо отменить это действие, следует запустить команду из терминала Jupyter Notebook в директории /home/jovyan/ и пересоздать ноутбук.

    rm -rf .aicloud_example_automl_flag