Open-source библиотеки от команд ИТМО: оптимизация графовых структур, генеративный дизайн, оптимизация гиперпараметров

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Источник: https://github.com/aimclub
Источник: https://github.com/aimclub

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

Уделяя много внимания подготовке специалистов и развитию проектов в области искусственного интеллекта, Университет ИТМО поддерживает этот курс на открытость. В этой статье мы собрали небольшую подборку уже реализованных библиотек с открытым исходным кодом, предназначенных для решения различных задач машинного обучения. Сотрудники лабораторий ИТМО создают универсальные решения, не ограниченные своей предметной областью. И готовы развивать их, расширяя спектр возможных применений.

Все эти проекты написаны на Python с использованием стандартного стека технологий для задач обработки данных и графов: numpy, scipy, networkx. Их можно найти на GitHub и даже поучаствовать в дальнейшем развитии.

GOLEM — оптимизация графовых структур

Граф как способ представления данных широко используется не только в разработке, но и в других предметных областях. Графовые структуры позволяют описывать математические модели (пайплайны машинного обучения, уравнения, вероятностные модели) и структуру физических объектов (дамбы, волнорезы, мосты) или их динамику (от поведения клеточных автоматов до движения манипуляторов роботов).

Хотя задачи, сводящиеся  к применению графов, относятся к различным сферам, проблема поиска подходящей структуры и ее оптимизации с точки зрения логики выглядит везде одинаково (и, откровенно говоря, проблема это не новая). Для ее решения в ИТМО разработали библиотеку GOLEM (Graph Optimization and Learning by Evolutionary Methods). Она позволяет строить и оптимизировать композитные графовые структуры, в том числе довольно экзотические, например, совмещающие байесовские сети, алгоритмы машинного обучения и дифференциальные уравнения. 

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

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

О примененных в библиотеке алгоритмах можно прочитать по ссылке: https://doi.org/10.1016/j.future.2021.08.022

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

Архитектурная схема GOLEM. Источник: https://aim.club/solutions/golem
Архитектурная схема GOLEM. Источник: https://aim.club/solutions/golem

Библиотека GOLEM — проект исследовательского центра "Сильный искусственный интеллект в промышленности" (ИЦ СИИП) ИТМО, реализуемый командой ученых, разработчиков и студентов-стажеров, в которую входят Григорий Киргизов, Любовь Ямщикова (студент магистратуры факультета цифровых трансформаций), Майя Пинчук (студент бакалавриата факультета информационных технологий и программирования) и к. т. н., руководитель группы научно-технического развития исследовательского центра Николай Никитин.

У библиотеки уже есть первый стабильный релиз, который используется в некоторых проектах ИТМО. GOLEM позволяет сократить время, необходимое на поиск подходящих моделей. В частности, библиотека применяется во фреймворках автоматического машинного обучения FEDOT и структурного обучения байесовских сетей BAMT — проектах той же NSS Lab, которые имеют и коммерческие применения.

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

Познакомиться с проектом можно по ссылке: https://github.com/aimclub/GOLEM. В него можно внести свой вклад: помочь как с задачами по разработке, так и с постановками экспериментов. Кроме того, группа заинтересована в обсуждении научного сотрудничества и применении библиотеки в новых прикладных областях.

GEFEST — генеративный дизайн физических объектов

В одной из предыдущих статей мы рассказывали о применении генеративного дизайна для сокращения веса цилиндрических лопастей ветрогенератора на эффекте Магнуса. Но в том проекте речь шла об оптимизации готовой структуры — ее нужно было просто улучшить (облегчить). С такими задачами справляются многие инструменты, например, средства для генеративного дизайна от Autodesk. А вот для решения задачи с нуля, то есть оптимизации структуры и расположения нового объекта, в ИТМО разрабатывают библиотеку GEFEST (Generative Evolution For Encoded STructures). Ее задача — проработка физических объектов “с чистого листа” под конкретные внешние условия, а именно — сокращение затрат времени на начальные этапы проектирования, а заодно расширение пространства поиска возможных решений.

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

В основе GEFEST — эволюционные алгоритмы. В библиотеке реализованы модули вычислительной геометрии, работы с полигональными структурами, “коннекторы” для различных моделей, а также блок оптимизации. Ускорение достигается за счет применения методов глубокого обучения для быстрого порождения решений и предсказания значений целевой функции. 

Реализованный в библиотеке процесс генеративного дизайна. Источник: https://aim.club/solutions/gefest
Реализованный в библиотеке процесс генеративного дизайна. Источник: https://aim.club/solutions/gefest

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

Архитектурная реализация GEFEST
Архитектурная реализация GEFEST

Разработкой библиотеки занимается Николай Никитин, а также студенты магистратуры факультета цифровых трансформаций и одновременно сотрудники NSS Lab ИТМО —  Никита Стародубцев и Денис Сидоренко.

Научная группа выпустила статью, где описаны алгоритмы GEFEST и продемонстрирована их эффективность для ряда прикладных задач в Q1-журнале Engineering Applications of Artificial Intelligence (Starodubcev N. O. et al. Generative design of physical objects using modular framework //Engineering Applications of Artificial Intelligence. – 2023. – Т. 119. – С. 105715.).

Hidden text

Про частные применения фреймворка можно почитать:

  • Grigorev G. V. et al. Single Red Blood Cell Hydrodynamic Traps via the Generative Design //Micromachines. – 2022. – Т. 13. – №. 3. – С. 367. Статья посвящена оптимизации “искусственных селезенок”. Опубликована совместно с представителями Беркли (University of California in Berkeley) и ряда других университетов. 

  • Starodubcev N. O., Nikitin N. O., Kalyuzhnaya A. V. Surrogate-Assisted Evolutionary Generative Design Of Breakwaters Using Deep Convolutional Networks //2022 IEEE Congress on Evolutionary Computation (CEC). – IEEE, 2022. – С. 1-8.и статья описывает решение задачи суррогатной оптимизации волнозащитных сооружений.

Репозиторий проекта: https://github.com/aimclub/GEFEST. Текущую версию библиотеки уже можно использовать при решении конкретных инженерных задач. Но активное развитие продолжается: API для конечного пользователя и документация еще будут дорабатываться. Еще одно направление работы — повышение алгоритмической эффективности для конкретных прикладных задач.

Проект развивается за счет гранта РНФ для молодых ученых, полученного в 2022 году. Группа открыта для научного взаимодействия и вклада в библиотеку со стороны сообщества.

iOpt — контролируемый подбор гиперпараметров для МL

Целевые метрики качества алгоритмов машинного обучения могут существенно варьироваться в зависимости от начальных параметров. Так что перед исследователями стоит задача выбора оптимального набора этих параметров, и она актуальна в любой предметной области, где в принципе применяется машинное обучение — и в математике, когда нужно адаптировать модели под имеющиеся данные, и в рамках исследований в области ИИ, когда нужно добиться максимально возможного качества используемых методов. Для подбора оптимальных параметров в ИЦ СИИП разработали фреймворк iOpt, который помогает выбирать их значения в рамках широкого класса процессов и алгоритмов, например для методов машинного обучения или эвристической оптимизации.

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

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

Визуализация решения задачи оптимизации. Пример целевой функции подбора параметров в рамках решения одной из задач. Точки соответствуют выполненным поисковым испытаниям.  Источник:https://aim.club/solutions/iopt
Визуализация решения задачи оптимизации. Пример целевой функции подбора параметров в рамках решения одной из задач. Точки соответствуют выполненным поисковым испытаниям. Источник:https://aim.club/solutions/iopt

Про алгоритмы, использованные в библиотеке, можно прочитать по ссылке: https://doi.org/10.1007/978-1-4615-4677-1

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

Основная разработка iOpt ведется сотрудниками, совмещающими работу в ИТМО и ННГУ им. Н.И. Лобачевского. В составе команды —  Александр Сысоев, Евгений Козинов, Илья Лебедев, Антон Штанюк, Марина Усова, Денис Карчков, Дарья Черных, Янина Силенко, Денис Родионов и Виктор Москаленко. Также в работе участвуют и студенты ИТМО — например, Любовь Ямщикова, решающая задачу интеграции iOpt и фреймворка FEDOT. 

Репозиторий проекта: https://github.com/aimclub/iOpt. Библиотека готова к использованию, в том числе коммерческому, но продолжает развиваться.

Источник: https://habr.com/ru/company/spbifmo/blog/725800/


Интересные статьи

Интересные статьи

АвторВыполняйте свои скрипты Python, как команды bashНаписание скриптов Python для создания интерфейсов командной строки (CLI) — широко используемый метод для DevOps и бэкенд разработки.Ключом к реали...
В большинстве IT-компаний, где я работала, настолки были важной частью корпоративной культуры. Стандартно раз в неделю за «Катаном» и «Имаджинариумом» собираются многие команды. Самая популярная страт...
Не знаю, можно ли построить удачную удаленку без регулярных встреч один на один с каждым членом команды. Если посчитать, на такие разговоры тратится огромное количество времени, но зато мы параллельно...
Большинство новоиспеченных тимлидов доводят своих сотрудников до выгорания, пока учатся управлять командой. Если эти советы помогут избежать таких ситуаций, то стоит их написать. Статья будет полезна ...
Привет, Хабр! Вам приходила мысль сделать свою систему управления проектами и задачами? Нам да! И мы делаем YouGile. Знаете, в чем самая большая сложность? Выбрать и...