Университет ИТМО

Фреймворк генеративного автоматического машинного
обучения FEDOT

Что такое FEDOT?

FEDOTopen-source фреймворк автоматического машинного обучения (AutoML), который позволяет автоматически создавать и оптимизировать цепочки задач (пайплайны) машинного обучения или отдельные их элементы (рисунок 1). 

Рисунок 1 - Структура пайплайна машинного обучения и роль фреймворка FEDOT в его автоматизации и оптимизации

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

На каких принципах основан фреймворк?

Фреймворк не ограничивается отдельными AutoML-задачами, такими как предобработка исходных данных, подбор признаков или оптимизация гиперпараметров моделей, а позволяет решать более общую задачу структурного обучения - для заданного набора данных строится решение в виде графа (DAG), узлы которого представлены моделями МО, процедурами предобработки и трансформации данных. Структура этого графа, а также параметры каждого узла и подвергаются обучению. Результирующий граф вычислений мы называем композитной моделью, т.к. обычно в нем содержатся сразу несколько моделей МО и блоков предобработки данных (как показано на рисунке 2). 

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

Рисунок 2 - Различные вариант пайплайнов, которые могут быть автоматически получены с помощью фреймворка FEDOT

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

Чтобы лучше понять идею, рекомендуем ознакомиться с intro-роликом:

Чем FEDOT отличается от существующих AutoML-фреймворков?

Да, в настоящее время существует множество популярных AutoML-фреймворков, позволяющих достигать качественных результатов моделирования (H2O, TPOT, AutoTS, LAMA и т.д).

FEDOT имеет с ними множество общих черт: например, он реализован на Python и доступен под открытой лицензией BSD-3. Однако, есть и отличия. Архитектура фреймворка позволяет гибко расширять его возможности - добавлять новые модели, методы предобработки, алгоритмы настройки гиперпараметров или другие типы данных. Взаимодействие фреймворка с различными этапами пайплайна моделирования показано на рисунке 3.

Рисунок 3 - Автоматизация различных этапов пайплайна машинного обучения с помощью фреймворка FEDOT

Основные особенности фреймворка таковы:

  • — Архитектура FEDOT обладает высокой гибкостью и поэтому фреймворк может быть использован для автоматизации создания математических моделей для различных задач, различных типов данных и моделей;
  • — FEDOT поддерживает популярные ML-библиотеки (scikit-learn, keras, statsmodels и др.), но при необходимости можно интегрировать в него другие инструменты;
  • — Алгоритмы оптимизации пайплайнов не привязаны к типам данных или задачам, но для повышения эффективности можно использовать специальные шаблоны под определенный класс задач или тип данных - прогнозирование временных рядов, NLP, табличные данные и др;
  • — Фреймворк не ограничен только машинным обучением, в пайплайны возможно встроить модели, специфичные для конкретных областей (например - модели в ОДУ или ДУЧП);
  • — Дополнительные методы настройки гиперпараметров различных моделей также могут быть “бесшовно” добавлены в FEDOT (в дополнение к уже поддерживаемым);
  • — FEDOT поддерживает any-time режим работы: в любой момент времени можно остановить алгоритм и получить результат;
  • — Итоговые пайплайны могут быть экспортированы в удобном json-формате без привязки к фреймворку, что позволяет добиться воспроизводимости эксперимента.

 

Таким образом, по сравнению с другими фреймворками FEDOT:

  • — Не ограничивается одним классом задач, а претендует на универсальность и расширяемость. 
  • — Позволяет более гибко управлять сложностью моделей и за счет этого достигать лучших результатов. Например, для задачи кредитного скоринга FEDOT достиг значения метрики качества ROC AUC равного 0.859 и успешно превзошел как baseline (0.822), так и варианты конфигураций моделей, найденных конкурентами (TPOT - 0.846, H2O - 0.856, MLBox - 0.83) за то же время. Также мы протестировали фреймворк на наборе широко используемых бенчмарков;
  • — Позволяет строить модели, использующие входные данные различной природы - тексты, изображения, таблицы и т.д и состоящие из разнотипных моделей.

 

Какие задачи можно решать с помощью фреймворка?

FEDOT поддерживает задачи классификации (бинарной и многоклассовой), регрессии, кластеризации, а также прогнозирования временных рядов.

При помощи FEDOT уже были решены различные real-world задачи:

Также функции FEDOT были использованы в различных прикладных задачах:

Как наш фреймворк может вам помочь?

Наша R&D команда открыта для вариантов сотрудничества как с другими научными коллективами, так и с представителями бизнеса.

Для науки:

  • — Совместные исследования в области AutoML, алгоритмов оптимизации и машинного обучения в целом
  • — Применение возможностей FEDOT в новых разных предметных областях науки

Для бизнеса:

  • — Консультация и помощь в применении AutoML методов на бизнес-кейсах
  • — Адаптация и реализация новых функций FEDOT для ваших типов данных, задач и инфраструктуры
  • — Улучшение и оптимизация существующего ML-решения при помощи FEDOT
  • — Построение новых сервисов “с нуля” или внедрение в существующие решения функций FEDOT для автоматизации рутинных задач 
  •  

Немного о нас

Фреймворк FEDOT разработан научной группой моделирования природных и социальных систем (NSS Team) в Национальном Центре Когнитивных Разработок. 

Наши контакты:

  • — GitHub
  • — Telegram-канал для решения возникающих проблем и ответов на вопросы по FEDOT 

 

Наши ресурсы:

 

Как нас процитировать:

Перейти в репозиторий

 
.

Документация