Руководитель группы научно-технического развития исследовательского центра «Сильный искусственный интеллект в промышленности» ИТМО Николай Никитин
 Руководитель группы научно-технического развития исследовательского центра «Сильный искусственный интеллект в промышленности» ИТМО Николай Никитин

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

Как ИТМО пришел от проектов к сообществу

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

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

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

Программа менторства открытого кода

Чтобы сформировать такое пространство, мегафакультет трансляционных информационных технологий и исследовательский центр «Сильный искусственный интеллект в промышленности» запустили программу менторства открытого исходного кода. По задумке авторов проекта программа объединяет потребности ученых, которые создают открытые библиотеки для расчетов в своих предметных областях, а также студентов IT-специальностей, готовых поучаствовать в open source проектах.

Программа работает одновременно по нескольким направлениям, на каждом из которых мы остановимся подробнее.

Помощь ученым

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

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

Из-за подхода — создавать открытые решения — научные проекты проходят некую общественную апробацию, в том числе и с технической стороны. Такую апробацию, например прошли проекты НИРМА:

Участие студентов и аспирантов в подобных проектах обычно финансируется в рамках НИР. Причем, необязательно непосредственно участвовать в разработке решений с нуля, можно улучшать качество уже созданного проекта (кода). Фактически студенты могут выступить в роли менторов открытых библиотек. 

Практика для студентов

Из архива  исследовательского центра «Сильный искусственный интеллект в промышленности»
Из архива исследовательского центра «Сильный искусственный интеллект в промышленности»

Для студентов разработка проектов с открытым исходным кодом — отличная возможность совершенствовать технические навыки и софт скиллз параллельно с учебой. Механика такой распределенной команды напоминает то, как выстроены процессы в современных IT-компаниях. Так что это фактически готовые строчки в резюме — то, чем можно похвастаться не только на словах, но и на деле. И готовая демонстрация возможностей. Если у студента есть репозиторий в GitHub, которым пользуется 100 человек, у него уже явно есть опыт, которым можно поделиться. В будущем это могло бы оцениваться и как индивидуальное достижение в рамках учебы.

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

«Программа решает две проблемы. С одной стороны, есть научные команды, которые создают открытые библиотеки в рамках своих R&D-проектов, но у них не всегда есть достаточный опыт разработки ПО. С другой — студенты ИТМО, которые хотят стать контрибьюторами проектов с открытым кодом. Мы объединили эти две стороны. На программе студенты-менторы помогают создателям открытых библиотек в области искусственного интеллекта», — отмечает руководитель группы научно-технического развития исследовательского центра «Сильный искусственный интеллект в промышленности» Николай Никитин.

Программа менторства ориентирована на студентов третьего и четвертого курсов бакалавриата, магистрантов и аспирантов, которые работают с Python.  В общей сложности через нее прошло около 40 человек. Каждый из них на период работы был оформлен в ИТМО и получал зарплату.

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

Чтобы расширить вовлечение студентов в сообщество открытого кода, команда исследовательского центра подала заявку на создание студенческого клуба ITMO.OpenSource под руководствам магистранта ФЦТ ИТМО Андрея Гетманова. Клуб даст студентам дополнительную возможность попробовать себя в роли контрибьюторов и рецензентов в реальных проектах.

Очные встречи

Одна из инициатив в рамках программы поддержки открытого кода — организация мероприятий, посвященных open source продуктам. ИЦ СИИП организует их как на площадках университета, так и во внешних локациях, а также помогает с приглашением спикеров и слушателей.

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

Участвовать в митапах могут не только представители научной среды, но и студенты вузов, а также представители IT-компаний. Как правило, каждая встреча транслируется онлайн, а после окончания можно посмотреть записи основных докладов. На будущие митапы можно предложить свою тему — по разработке конкретных открытых инструментов для решения задач или особенностям самих опенсорсных проектов. После одобрения организаторами можно выступить с докладом.

На митапах поднимаются самые разные вопросы: от обсуждения применения ChatGPT и Github Copilot в открытых проектах до обмена опытом по применению созданных в ИТМО библиотек на хакатонах.

Следующий митап уже анонсирован - он пройдет в рамках секции "Научный open-source: перспективные решения для AI/ML" конференции ODS DataFest.

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

TG-чат

В качестве платформы для общения сообщества в ИТМО создали Telegram-чат ITMO.Opensource. В нем обсуждают различные аспекты разработки продуктов с открытым исходным кодом. В первую очередь речь идет о научном программном обеспечении, но многие вопросы относятся к открытому коду, который создается не только в ИТМО, но и за его пределами.

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

Репозиторий

Для размещения университетских проектов в области ИИ ИТМО создал отдельную группу репозиториев: https://github.com/aimclub. У подразделений ИТМО есть собственные репозитории GitLab (размещенные на локальных серверах). Но Github — это в первую очередь площадка для общения мирового сообщества. Когда проект публикуется на GitHub, его легко найти, использовать и предложить доработки. Кроме того, сервис предоставляет инфраструктуру для автоматизации и запуска тестов.

На платформе университета все это было бы сложнее развернуть и популяризовать.

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

Николай Никитин на митапе ИТМО по open source.
Николай Никитин на митапе ИТМО по open source.

Инициаторы проекта ожидают, что собранная в репозитории информация будет полезна не только научным сотрудникам из ИТМО, но и тем, кто хочет разрабатывать собственные открытые проекты вне стен университета.

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

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