Привет, Хабр!
Это исследователи из 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 фреймворков ИТМО |
|
ВШЭ |
Репозитории AI/ML фреймворков ВШЭ |
|
МФТИ, SPC |
Подборка проектов МФТИ |
|
Сколтех |
Новые официальные форки бывшего репозитория Сколтеха |
Сводная оценка по метрике SourceRank представлена на рисунке.
У репозиториев ИТМО высокое значение метрики с низкой дисперсией. Это объясняется наличием базовых элементов (readme, лицензии) в каждом фреймворке, а также частыми релизами и наличием библиотек, имеющих зависимости от этих фреймворков. У репозиториев ВШЭ тоже присутствуют базовые элементы, но они релизятся не так часто и не имеют зависимостей.
Для расчёта итогового значения метрики по каждому университету мы решили учитывать не только SourceRank самого популярного репозитория, но и общее количество «значимых» проектов (брали все проекты, у которых было 20+ звёздочек на гитхабе). Если упорядочить репозитории по числу звёзд, то формула предлагаемого критерия имеет вид:
где SRUNI – итоговое значение метрики SourceRank для университета, SRn – значение метрики SourceRank для n-ного проекта. Результаты представлены на рисунке.
Можно заметить, что итоговая оценка ИТМО выше, чем у остальных организаций. Это связано с бóльшим числом проектов. У МФТИ и ВШЭ показатели близки, но МФТИ представлен только двумя проектами, а DeepPavlov широко известен за пределами Физтеха, привлёк научных и индустриальных партнёров и имеет большое число внешних контрибьюторов. При этом состав репозиториев ВШЭ достаточно диверсифицирован, хотя их средний SourceRank ниже.
Лаборатории коммерческих компаний
Некоторые крупные российские компании достаточно прочно связывают разработки в ИИ и полезность публикации их исходного кода. Например, фреймворк CatBoost, возникший в Яндексе, давно вошёл в число базовых инструментов ML-инженера. Исследуемые репозитории представлены в таблице.
Организация |
Описание |
Самые популярные репозитории |
Yandex |
Open source продукты, зародившиеся в Яндексе |
|
ETNA-team, corl-team |
Новые официальные форки бывшего репозитория Tinkoff |
|
sb-ai-lab |
Репозитории с проектами Сбера |
|
AIRI |
Репозитории с проектами AIRI |
Сводная оценка по метрике 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», на который вас с удовольствием приглашаем.
dmitrykabanov
Спасибо за материал!