Проектная школа программирования GoTo

Система выдачи грантов на блокчейне и разработка рекомендательных систем: в Университете ИТМО прошла проектная школа программирования GoTo

Каждые школьные каникулы смены проектной школы программирования GoTo проходят в разных уголках России и собирают десятки старшеклассников и студентов. Здесь они получают возможность поработать над проектами в области анализа данных и машинного обучения, промышленного программирования, интернета вещей, биоинформатики, а также распределенных систем и блокчейна. В осенней школе GoTo, которая прошла на площадке Технопарка Университета ИТМО, приняли участие 50 студентов 1-2 курсов и старшеклассников со всей России, прошедшие предварительный отбор. Во время смены GoTo участники поработали над индивидуальными проектами под руководством экспертов из ведущих IT-компаний, а также посетили открытые мастер-классы и лекции от гостей и преподавателей школы.

В этот раз про «обучение с подкреплением» (Reinforcement learning) рассказал Александр Панин из компании «Яндекс», Федор Царев из WorldQuant провел мастер-класс в области машинного обучения в финансовой среде, а Александр Шевченко из Bitfury Group провел и лекцию, и мастер-класс в области приватного блокчейна. Чем проектная школа выгодно отличается от классического метода преподавания и какие проекты интересуют школьников и студентов? Об этом ITMO.NEWS рассказали основатели школы, менторы, а также сами ученики.

Дмитрий Волков
Дмитрий Волков

Дмитрий Волков, куратор направления по распределенным системам GoTo, FLOSS-разработчик

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

Объем данных растет, у нас появляется все больше сенсоров в мире – от погодных станций до новых методов секвенирования ДНК, появляются терабайты данных, которые надо обрабатывать. Наш первый блок «Корпоративные распределенные системы и обработка и хранение данных» как раз про то, как работать с этими новыми вызовами. Есть программные инструменты, которые используются, например, Яндексом, Mail.Ru и Google. Они позволяют работать с теми случаями, когда у нас есть несколько терабайт данных, не помещающихся в оперативную память – стандартная задача больших данных.

Две проблемы в блоке: нужно больше хранить и быстрее обрабатывать. Здесь изучаются темы от базовых механизмов параллельного и конкурентного программирования (потоки, процессы, мьютексы и так далее) до более продвинутых концепций – например, memory barriers и высокоуровневых подходов типа Software Transactional Memory и Actor model. Также обсуждаются кластерные платформы типа Hadoop.

Второй блок – децентрализация. Сейчас люди задумываются над тем, что централизация доверия в разных ипостасях – от доверия одному мессенджеру или платформе типа Twitter до какой-либо одной коммерческой сущности – не всегда хорошо. Как с точки зрения информационной безопасности, так и с точки зрения открытости и прозрачности часто имеет смысл распределение. Так, в MIT недавно начали тестировать выпуск дипломов на блокчейне.

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

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

Степан Кузнецов
Степан Кузнецов

Степан Кузнецов, 11 класс,  Лицей «Вторая школа», Москва

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

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

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

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

Технически система состоит из трех частей: блокчейн-основы (здесь мы используем решение Exonum), бизнес-логики (того, что называют «смарт-контрактами») и пользовательского интерфейса. Я занимался в основном смарт-контрактами и доработкой Exonum, а интерфейс делали мои сокомандники.

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

Алексей Щеколдин
Алексей Щеколдин

Алексей Щеколдин, директор детского Технопарка Университета ИТМО

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

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

Проектная школа GoTo – это отличная возможность показать ребятам со всей страны возможности, которые может предоставить университет для их самореализации как в научной, так и в проектной деятельности. Одним из главных партнеров школы выступил Детский Технопарк ITMO.KIDS, который был недавно создан в Университете ИТМО. В рамках него мы помогали в организации школы в целом и представляли менторскую помощь для реализации проектов участников. Также мы предоставили нашу базу контактов организаторам для проведения школы на высшем уровне. Часть школьных работ реализовывалась на базе ФабЛаба Технопарка Университета ИТМО с использованием ресурсов университета. Также в рамках культурной программы мы организовали экскурсию для ребят в Музей оптики.

Максим Манайнен
Максим Манайнен

Максим Манайнен, 11 класс, школа РИД, Санкт-Петербург

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

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

Фактически, разработчики синтезируют в лаборатории тысячи разных препаратов и смотрят, какие из них будут обладать теми или иными параметрами. Поэтому хочется перед синтезом и тестированием препаратов получить компьютерными методами структуры молекул с необходимыми свойствами.

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

Антон Ройтерштейн
Антон Ройтерштейн

Антон Ройтерштейн, 9 класс, школа № 171, Москва

В школе GoTo я попал на направление «Анализ данных и машинное обучение».  Я занимаюсь разработкой рекомендательной системы образовательных курсов, программ и вакансий в IT и смежных областях на основе персональных данных пользователя. Мой проект заключается в рекомендации курсов с различных известных ресурсов, например, Coursera, Stepik и так далее. Пользователь может зайти в приложение, указать данные о себе и ответить на другие вопросы, а также указать вакансию мечты и другие данные.

Из этих данных мы получаем необходимую информацию для того, чтобы выбрать и порекомендовать пользователю конкретный курс или программу. Над проектом я работаю один, всего на его реализацию первого прототипа ушло семь дней. Большую часть этого времени я потратил на работу с данными. Изначально не было датасета. Нужно было выкачать все данные с порталов и обработать вакансии с HH, также найти актуальные теги и протегировать все курсы и вакансии. Когда связывали курсы и вакансии через теги, не всегда все получалось корректно. Сейчас я запускаю демо-версию web-приложения с прототипом рекомендательной системы, чтобы собрать новые данные для разработки более продвинутой версии, в которой будет реализован алгоритм DSSM.

Антон Панкратов
Антон Панкратов

Антон Панкратов, куратор проектов школы GoTo, специалист по машинному обучению в Яндексе

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

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

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

Станислав Наумов
Станислав Наумов

Станислав Наумов, 2 курс, кафедра компьютерных технологий, Университет ИТМО

О GoTo я слышал много хорошего. Хоть я и студент, но все-таки решился попробовать реализовать свою идею в этой школе и ни разу не пожалел. Изначально у меня была мысль сделать удобную программу для очков смешанной реальности.

Суть ее можно описать двумя целями. Первая задача – напоминания при виде цели. Пользователь может добавлять напоминания и, когда очки «увидят» необходимый объект, появится уведомление. Например, сообщение «снять деньги» будет отображаться, когда пользователь увидит банкомат.

Вторая задача – поиск воспоминаний, то есть по запросу пользователя необходимо найти момент из прошлого, который отвечает на заданный вопрос. Например, на вопрос «Закрыл ли я дверь?» ответом будет фрагмент видео, где пользователь выходит из квартиры.

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

Задачи решались более общим подходом: при помощи нейронных сетей было создано общее пространство для картинок и текстов. Этим пространством был результат предпоследнего слоя предобученной VGG16. Для текстов я использовал word2vec с последующей обработкой одномерной сверточной сетью. К финальной презентации проектов в GoTo я сделал бота для поиска момента видео по текстовому описанию.

Алена Ильина
Алена Ильина

Алена Ильина, основатель проектной школы GoTo

История проектной школы GoTo началась в 2015 году, и после первого опыта мы уже решили делать ее каждые каникулы. К участию мы приглашаем не только школьников, но и студентов.

Поскольку проектная работа требует большого человеческого ресурса – куратор может вести только два-три проекта, иначе качество заметно снижается, численностью школы сильно не растут. Например, в самом начале к нам приезжали 30-40 человек, теперь у нас бывает от 50 до 70 участников за смену. Однако растут возможности для ребят. К постоянному составу кураторов и партнеров добавляются каждый раз новые специалисты  и компании,  курирующие проекты и формирующие образовательные блоки.

В этот раз в школе впервые приняли участие WorldQuant, Bitfury и акселератор IDealMachine. Если компания ставит перед ребятами задачу, как в этот раз сделала, например, компания BIOCAD, то мы с ними стараемся основательно проработать план и договоренности о том, что может ожидать проект и его разработчика в будущем.

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

Редакция новостного портала
Архив по годам:
Пресс-служба