Open source

FEDOT

Что такое FEDOT?

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


01

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

02

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

03

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

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

FEDOT поддерживает задачи классификации (бинарной и многоклассовой), регрессии, кластеризации, а также прогнозирования временных рядов и успешно применяется при решении реальных задач в различных областях.Проектные задачи:
  • Геология: гибридное моделирование дебита нефти (описание)
  • Медицина: предсказание эффективности лечения осложнений COVID-19 (описание)
  • Гидрометеорология: прогнозирование моделирование временных рядов уровня моря (описание)
  • Промышленность: прогнозирование сигналов сенсоров (описание)
Хакатоны:
  • Emergency DataHack 2021 – I место Задача – прогнозирование уровня реки Лена в ходе половодья (код).
  • AgroCode Hack 2022 Задача – выявление неэффективных протоколов лечения (код).
  • Цифровой прорыв 2022 – III место Задача – прогнозирование экономических данных (код).
  • AIRI Molhack 2022 – III место Задача – прогнозирование энергии молекул (код).
Кроме того, благодаря тому, что фреймворк FEDOT позволяет разработчикам существенно сократить время и силы, он успешно используется командами дата-сайентистов, участвующими в различных соревнованиях.
Как наш фреймворк может вам помочь?

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

Для науки:

01

Совместные исследования в области AutoML, алгоритмов оптимизации и машинного обучения в целом

02

Применение возможностей FEDOT в новых разных предметных областях науки
Для бизнеса:

01

Консультация и помощь в применении AutoML методов на бизнес-кейсах

02

Адаптация и реализация новых функций FEDOT для ваших типов данных, задач и инфраструктуры

03

Улучшение и оптимизация существующего ML-решения при помощи FEDOT

04

Построение новых сервисов “с нуля” или внедрение в существующие решения функций FEDOT для автоматизации рутинных задач
Немного о нас

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

Правообладатель - ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИТМО».

Программное обеспечение распространяется на условиях открытой лицензии 3-Clause BSD.