Программный комплекс для решения задач
автоматического машинного обучения машинного
обучения FEDOT.CORE
Что такое FEDOT?
FEDOT — open-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 были использованы в различных прикладных задачах:
- — Заполнение пропусков в данных гидрометеорологических измерений (пример);
- — Neural Architecture Search в задаче обнаружения айсбергов (реализация, видео-руководство);
- — Гибридное моделирование дебита нефти (реализация)
Как наш фреймворк может вам помочь?
Наша R&D команда открыта для вариантов сотрудничества как с другими научными коллективами, так и с представителями бизнеса.
Для науки:
- — Совместные исследования в области AutoML, алгоритмов оптимизации и машинного обучения в целом
- — Применение возможностей FEDOT в новых разных предметных областях науки
Для бизнеса:
- — Консультация и помощь в применении AutoML методов на бизнес-кейсах
- — Адаптация и реализация новых функций FEDOT для ваших типов данных, задач и инфраструктуры
- — Улучшение и оптимизация существующего ML-решения при помощи FEDOT
- — Построение новых сервисов “с нуля” или внедрение в существующие решения функций FEDOT для автоматизации рутинных задач
Немного о нас
Фреймворк FEDOT разработан научной группой моделирования природных и социальных систем (NSS Team) в Национальном Центре Когнитивных Разработок.
Правообладатель - ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИТМО».
Программное обеспечение распространяется на условиях открытой лицензии 3-Clause BSD.
Контакты:
- — GitHub
- — Telegram-канал для решения возникающих проблем и ответов на вопросы по FEDOT
- — Анна Калюжная, руководитель группы (anna.kalyuzhnaya@itmo.ru)
+7 (812) 909 31 56
Наши ресурсы:
- — Новостная лента
- — Youtube-канал с видео-руководствами
Статьи:
AutoML for time series: advanced approaches with FEDOT framework
AutoML for time series: definitely a good idea
How AutoML helps to create composite AI?
Как мы “повернули реки вспять” на Emergency DataHack 2021, объединив гидрологию и AutoML
Прогнозирование временных рядов с помощью AutoML
Как нас процитировать:
- — Nikitin N. O. et al. Automated evolutionary approach for the design of composite machine learning pipelines //Future Generation Computer Systems. – 2021.
- —I. S. Polonskaia, N. O. Nikitin, I. Revin, P. Vychuzhanin and A. V. Kalyuzhnaya, "Multi-Objective Evolutionary Design of Composite Data-Driven Models," 2021 IEEE Congress on Evolutionary Computation (CEC), 2021, pp. 926-933.