Привет, Хабр!

Это исследователи из NSS Lab ИТМО и создатели сообщества ITMO.OpenSource. Мы считаем, что важно делать не просто науку, а открытую науку, результатами которой можно легко воспользоваться. Поэтому пишем об открытом коде, проводим митапы «Scientific Open Source» и разрабатываем научные решения с открытым кодом. Эта статья написана на материале исследования, которое мы презентовали на последнем митапе. В ней поговорим об открытом научном коде, посмотрим, как с ним обстоят дела в разных организациях, и поделимся подборкой репозиториев, которые могут решать различные научные задачи.

Зачем вообще нужен научный открытый код?

В машинном обучении научная статья перестаёт быть достаточным артефактом исследования. Можно собрать данные, провести эксперименты, написать статью и даже опубликовать её, но вашими результатами никто не сможет воспользоваться, потому что датасеты закрыты, моделей нет, эксперименты и методы описаны недостаточно подробно, чтобы их воспроизвести… Список можно продолжить. А открытые данные (включая код) к статье резко повышают вероятность, что вашу статью не просто прочитают и скажут: «Ага, хорошо», ― но и попробуют воспроизвести результаты, использовать идеи и методы в своём исследовании и – last but not least – процитировать.

Что такое ITMO.OpenSource?

Мы делаем все эти заявления не на пустом месте. Сообщество научного опенсорса Университета ИТМО объединяет более 700 разработчиков и пользователей открытого ПО по всей России. Среди наших разработок ― более 30 репозиториев с сотнями звезд и сотнями тысяч скачиваний из более чем 40 стран. Наши регулярные митапы привлекают широкий круг опенсорс-энтузиастов из Санкт-Петербурга и других городов, а чат является популярной площадкой для общения. При сообществе действует одноименный студенческий клуб, мы помогаем в менторстве проектов в ИТМО и за его пределами. Также мы активно участвуем в сообществе Open Data Science и уже не один год организуем опенсорс-секции в рамках конференции ODS DataFest. Казалось бы, всё довольно неплохо ― но это не совсем так.

А в чём проблема?

В России создается много интересных открытых решений, реализующих или использующих различные технологии ИИ. Однако зачастую их разработчики ничего не знают друг о друге. Даже существующие опенсорс-сообщества весьма разрозненны ― они формируются вокруг энтузиастов, но часто так и не выходят за пределы своих «информационных пузырей». Это затрудняет популяризацию новых проектов, привлечение аудитории в уже существующие, усложняет продвижение интересов открытого кода, да и в целом не дает понять, не изобретаем ли мы велосипед в виде yet-another-community. Поэтому мы решили провести небольшое исследование и более тщательно разобраться, кто есть кто в мире российского ИИ-опенсорса.

Методология

Мир открытого кода в ИИ не ограничивается библиотеками и фреймворками. Свободно распространяются модели, бенчмарки, код к статьям. Возможно, в будущем мы напишем и про них, но в этой статье (и в нашем исследовании) рассматриваются только библиотеки и фреймворки, предназначенные для решения исследовательских задач. На то есть причина: модели, код к статьям и бенчмарки не нуждаются в постоянной доработке, они выкладываются на github или hugging face и часто консервируются. Библиотеки, напротив, дают больше информации о ходе разработки и о развитии и поддержке проекта. Кроме того, библиотеки встраиваются в другие проекты и могут расширяться до решения задач, о которых core-разработчики не предполагали. Анализ этой информации даёт более глубокое понимание контекста научного open source как динамической сети взаимосвязанных акторов (людей, научных групп, лабораторий и так далее).

Какие данные мы использовали и как мы их искали?

Как выяснилось в первые часы исследования, найти репозитории с научными ИИ-библиотеками ― весьма нетривиальная задача. Некоторые проекты и лаборатории мы вспомнили, другие пытались найти через Google, Хабр и сайты университетов. Некоторые проекты было сложно найти из-за того, что о них нигде не писали, некоторые лежали на личных аккаунтах разработчиков, а репозитории МФТИ и Сколтеха были вовсе удалены из-за санкций.

Мы проанализировали более 50 проектов из 5 университетов (ИТМО, МФТИ, ВШЭ, Сколтех, Иннополис) и 4 компаний (Яндекс, Сбер, Тинькофф, AIRI).

Как мы оценивали?

До сих пор не существует общепринятого способа оценить open source проект. Звёздочки на гитхабе мало говорят о качестве кода, частота коммитов зависит от числа заинтересованных разработчиков (а для нишевых библиотек оно может быть кратно меньше, чем для более широких), наличие readme и документации показывает, что авторы задумались об удобстве использования их проекта, но это не значит, что пользоваться проектом стало понятно и удобно.

В качестве компромиссного варианта мы взяли метрику SourceRank агрегатора репозиториев libraries.io. Это кумулятивная метрика, учитывающая как базовые вещи типа наличия readme и лицензии, так и частоту релизов, количество зависимых репозиториев и число контрибьюторов. Для уравновешивания нишевых и массовых проектов SourceRank использует логарифмическую шкалу при расчёте некоторых её составляющих.

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

Дисклеймер

Отсутствие однозначно хорошего способа оценить проекты и низкая осведомленность научного open source сообщества о разработках коллег – причины, склонившие нас к мысли, что главный результат нашего исследования – это не рейтинг open source проектов, а их обновляемый список.

А теперь – к результатам.

Результаты

Университетские лаборатории

Большинство исследованных репозиториев имеют небольшое число звёзд (до 100) и малое количество контрибьюторов. Помимо этого, существует явный дисбаланс между количеством репозиториев от каждого университета (доля репозиториев ИТМО составляет 40% общей выборки, некоторые организации представлены 1–2 репозиториями). Поэтому для сравнительного анализа были выбраны по 3 самых популярных (число звёзд) проекта. Исследуемые репозитории университетов представлены в таблице.

Организация

Описание

Самые популярные репозитории

ITMO AIM.CLUB

Объединенный репозиторий AI/ML фреймворков ИТМО

FEDOT, BAMT, GOLEM

ВШЭ

Репозитории AI/ML фреймворков ВШЭ

hsemotion, roerich, probaforms

МФТИ, SPC

Подборка проектов МФТИ

DeepPavlov, kmath

Сколтех

Новые официальные форки бывшего репозитория Сколтеха

ttpy, h2tools

Сводная оценка по метрике SourceRank представлена на рисунке.

SourceRank университетских проектов
SourceRank университетских проектов

У репозиториев ИТМО высокое значение метрики с низкой дисперсией. Это объясняется наличием базовых элементов (readme, лицензии) в каждом фреймворке, а также частыми релизами и наличием библиотек, имеющих зависимости от этих фреймворков. У репозиториев ВШЭ тоже присутствуют базовые элементы, но они релизятся не так часто и не имеют зависимостей.

Для расчёта итогового значения метрики по каждому университету мы решили учитывать не только SourceRank самого популярного репозитория, но и общее количество «значимых» проектов (брали все проекты, у которых было 20+ звёздочек на гитхабе). Если упорядочить репозитории по числу звёзд, то формула предлагаемого критерия имеет вид:

SR_{UNI} = SR_1 + \frac{SR_2}{2} + \ldots + \frac{SR_n}{n}

где SRUNI – итоговое значение метрики SourceRank для университета, SRn – значение метрики SourceRank для n-ного проекта. Результаты представлены на рисунке.

Нормализованное значение SourceRank для университетов
Нормализованное значение SourceRank для университетов

Можно заметить, что итоговая оценка ИТМО выше, чем у остальных организаций. Это связано с бóльшим числом проектов. У МФТИ и ВШЭ показатели близки, но МФТИ представлен только двумя проектами, а DeepPavlov широко известен за пределами Физтеха, привлёк научных и индустриальных партнёров и имеет большое число внешних контрибьюторов. При этом состав репозиториев ВШЭ достаточно диверсифицирован, хотя их средний SourceRank ниже.

Лаборатории коммерческих компаний

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

Организация

Описание

Самые популярные репозитории

Yandex

Open source продукты, зародившиеся в Яндексе

catboost

ETNA-team, corl-team

Новые официальные форки бывшего репозитория Tinkoff

etna, corl, reBRAC

sb-ai-lab

Репозитории с проектами Сбера

lightautoml, autowoe, eco2ai

AIRI

Репозитории с проектами AIRI

pogema, ai_toolbox, eco4cast

Сводная оценка по метрике SourceRank представлена на рисунке:

SourceRank библиотек компаний
SourceRank библиотек компаний

Нельзя сказать, что небольшое число репозиториев говорит о низком вкладе этих компаний в опенсорсный ИИ. Просто они концентрируются преимущественно на выпуске моделей и бенчмарков (примеров масса: Russian SuperGlue Benchmark, датасет и модели РЖЯ Slovo, датасет для распознавания эмоций Dusha, YaLM-100B…). Также проекты ClickHouse и YTsaurus, хотя и используются в работе с big data, не рассматривались из-за большей ориентированности на продуктовый ML, нежели на ресёрч. Всё это показывает, что компании направляют силы на создание проектов, слишком ресурсоёмких для академических групп.

Выводы

У вас могло возникнуть ощущение, что это исследование особо ни о чём не говорит. Это в какой-то мере правда: сделать обобщённые выводы об уровне развития научного open source в университетах и институтах нельзя, потому что могут быть интересные проекты, которые мы не смогли найти. Хочется верить, что в ИТМО больше открытого кода, но, возможно, проекты наших коллег просто лучше представлены в информационном поле. Про коммерческие компании вообще трудно сказать хоть что-то: они делают акцент на моделях и бенчмарках, которые мы вообще не рассматривали.

Но не бывает неудачных исследований. Мы упомянули много интересных проектов и постарались очертить поле научного open source. Набросок ландшафта – это площадка для будущих дискуссий и исследований. Надеемся, что они возникнут.

Вместо заключения

Перечни проектов научных организаций и компаний выложены в нашем репозитории open-source-ops. В этом репозитории также содержатся гайды, лучшие практики и многое другое, связанное с open source разработкой. Если вы знаете библиотеки, которых там нет, – пишите в комментариях или смело создавайте PR, мы будем вам очень благодарны!

Если вам интересна деятельность сообщества ITMO.OpenSource – заходите в наш чат и следите за обновлениями. Уже совсем скоро мы проведём онлайн-митап «Scientific Open Source», на который вас с удовольствием приглашаем.

Андрей Гетманов, Юрий Каминский, Николай Никитин

Комментарии (1)


  1. dmitrykabanov
    04.04.2024 20:48
    +2

    Спасибо за материал!