AutoML

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

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

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

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

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

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

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

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

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

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

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

  • Data transfer service (см. 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 и иметь кодировку UTF-8. Загрузка датасета осуществляется через диалог выбора. После загрузки датасета необходимо выбрать разделитель столбцов в .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.

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

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

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

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

После запуска задачи обучения сервис переложит пользовательские данные с объектного хранилища S3 на NFS. Задача обучения модели запустится в базовом образе для 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

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

r2

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

mse

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

mae

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

rmsle

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

mape

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

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

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

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

Важно

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

../_images/s__metrics.png

Типы моделей AutoML

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

  • TabularAutoML. Использование типа TabularAutoML позволяет работать с табличными данными без дополнительной обработки текстовых признаков.

  • Natural Language Processing (обработка естественных языков). Использование типа NLP позволяет:

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

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

  • Computer Vision (компьютерное зрение). Использование типа CV позволяет:

    • Классифицировать фотографии для систем хранения.

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

    Для обучения на типе CV картинки должны быть в форматах: PNG, JPEG. В файле с датасетом путь к изображению должен быть указан как "archive_name"/"path"/"to"/"image"..../"img.jpeg".

  • Computer Vision Advanced. Использование типа CV Advanced на базе алгоритма обнаружения целей позволяет:

    • Детектировать объекты.

    • Сегментировать объекты.

    • Реализовывать дополнительные задачи визуального распознавания, например Pose Estimation.

    Для обучения на типе CV картинки должны быть в форматах: PNG, JPEG.

  • Time Series (временные ряды). Фреймфорк обучения моделей для прогнозирования временных рядов. Он позволяет:

    • Автоматически выявлять признаки в датасетах.

    • Обучать модели для прогнозирования значений на задаваемой пользователем длине предсказания.

    Важно

    Для карточки, где была обучена модель, использующая временные ряды недоступно меню Кнопка с тремя вертикальными точками. Для Time series недоступны:

    • Выполнить Batch prediction.

    • Создать образ.

    • Выполнить автовалидацию.

    Данные функции находятся в разработке.

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

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

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

Автовалидация модели

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

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

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

  • Модель Tabular AutoML училась распознавать мошеннические транзакции на открытых данных нескольких банков. При автовалидации на датасете, содержащим переводы другого финансового сервиса или банка, можно посмотреть, как модель отработает на новом наборе данных.

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

Это действие откроет форму задания на автовалидацию. В форме задания:

  1. Загрузите валидационный датасет в бакет пользователя на S3. Рекомендуем использовать для загрузки Файловый менеджер. Cм. Обзор хранилища (Файловый менеджер).

  2. Укажите бакет, в котором находится валидационный датасет.

  3. Укажите путь к валидационному датасету.

  4. Выберите требуемый Разделитель и Десятичный разделитель.

  5. Выберите требуемый Целевой признак.

  6. Нажмите Выполнить автовалидацию.

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

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

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

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

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

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

    rm -rf .aicloud_example_automl_flag