Практикум для студентов-разработчиков. Программа рассчитана на четыре недели. В течение двух из них участники проходили дистанционное обучение, а затем в «Сириусе» работали в командах под руководством кураторов – аналитиков, разработчиков и исследователей из Яндекса и ФКН ВШЭ на базе Центра искусственного интеллекта и информационных технологий Научного парка «Сириус». Каждая команда занималась своим проектом, посвященным full stack, мобильной разработке или анализу данных. В конце интенсива команды презентовали свои проекты.
По вопросам можно обращаться по адресу:
sirius@yandex-team.ru — вопросы по содержанию программы, включая выполнение отборочных заданий
gid@talantiuspeh.ru — организационные вопросы (приезд, размещение, отбор и участие в программе, предоставление документов и сведений для организации приезда и зачисления на программу)
Программа ориентирована на студентов, имеющих уверенные знания алгоритмов, умеющих программировать и стремящихся работать в IT-компании.
Участники программы распределяются на команды для работы над проектами. У каждой команды будет куратор — разработчик или аналитик с опытом. Куратор ставит задачу команде, помогает распределить роли и декомпозировать на подзадачи. В процессе работы отвечает на вопросы, помогает в сложных местах и делает код ревью. В завершении команды презентуют проекты друг другу и всем желающим.
Обучение инженерным навыкам будет происходить непосредственно в работе команды над проектом.
Направление программы: Искусственный интеллект и информационные технологии
Направление СНТР РФ: Переход к передовым цифровым, интеллектуальным производственным технологиям, роботизированным системам, новым материалам и способам конструирования, создание систем обработки больших объемов данных, машинного обучения и искусственного интеллекта (пункт 20а)
Формат программы: Реализация практических проектов. Full stack проекты, мобильная разработка, анализ данных. Командная работа под руководством опытных наставников — аналитиков и разработчиков из Яндекса и ФКН ВШЭ.
Объем и длительность программы
Всего — 216 часов, 4 недели, из них:
Заочный модуль — 120 часов, 2 недели;
Очный модуль — 96 часов, 2 недели (12 рабочих дней по 8 часов в день).
Авторы и руководители программы
Александр Авдюшенко, к.ф.-м.н., руководитель Школы Анализа Данных в Новосибирске, аналитик образовательных проектов Яндекса, старший преподаватель СУНЦ НГУ и НГУ
Целевая аудитория: Студенты российских вузов (в 2018/2019 учебном году), достигшие возраста 18 лет. Целевое число участников программы — 20.
Цели и задачи программы
• решение близкой к реальной практической задачи
• развитие навыков программирования и командной работы
• развитие практико-ориентированного мышления
• обретет устойчивые навыки программирования
• существенно повысит свой уровень готовности к работе разработчиком или аналитиком в IT-компании
• на основе анализа конкретных ситуаций научиться ставить перед собой задачи и самостоятельно их решать
• приобретет первичные навыки презентации полученных результатов
Результаты проектов: код, презентации, прототипы сервисов.
Постпрограммное сопровождение будет осуществляться кураторами через электронную почту и/или чат команды в соцсетях и мессенджерах. Результаты выполненного проекта будут хорошим пунктом в резюме, повышающим вероятность трудоустройства. Знания, полученные при работе в команде над близким к рабочему проекте, позволят быстро расти в IT-компании или науке.
Содержательная характеристика программы
Все обучение происходит через выполнение проектов. Перечень тем проектов, описаний проектов приведен на отдельной вкладке «Описание проектов». Тематику реализуемых проектов определяют партнеры программы.
1. Дистанционная составляющая программы (заочный модуль)
Набор материалов для каждого студента определяется в зависимости от выбранного им проекта. Выбираем нужные компетенции и покрываем за счет следующих материалов:
• Прослушать лекции по Python от Сергея Лебедева, для практики решить на Python 40-50 задач по алгоритмам (https://leetcode.com, https://www.topcoder.com) – 120 часов
• Пройти специализацию по машинному обучению от МФТИ и Яндекса – 120 часов
• Пройти курс от НИУ ВШЭ «How to Win a Data Science Competition: Learn from Top Kagglers» + поучаствовать в 1-2 соревнованиях на Kaggle – 120 часов
• Ознакомиться с мануалом – 40 часов
• Прочитать книгу – 20 часов
• Пройти курс Generative Adversarial Networks
2. Очный модуль
Учебно-тематический план занятий
Пример разбиения проекта на задачи - для проекта «Конвертер чертежей в код»
Требования к условиям организации образовательного процесса
(Форма организации образовательного процесса: Необходимые ресурсы)
1. Лекции (открытие и закрытие программы): Большая аудитория (актовый зал) с проектором, микрофоном.
2. Выполнение проектов: Несколько (по числу проектов) аудиторий на 5-10 чел., в которых есть маркерные или меловые доски. Каждому участнику – ноутбук, программное обеспечение по списку, стабильный интернет. Возможность проводить вычисления на сервере (требуемые CPU/GPU/память по проектам).
3. Презентация результатов проекта: 1-2 аудитории с проектором для прогонов и одна большая аудитория для общей презентации результатов.
Оценка реализации программы и образовательные результаты программы
Содержательный модуль
|
Максимум баллов | Кто оценивает |
1. Распределение по задачам проекта |
10 | Куратор |
2. Работа над задачами |
50 | Куратор и команда |
3. Подготовка презентации |
20 | Куратор и команда |
4. Презентация результатов |
20 | Куратор и публичная оценка |
Итого | 100 |
Кадровое обеспечение программы
Требования к кураторам проектов:
• опыт программирования от 2 лет или опыт DS от 2 лет
• отличное знание классических алгоритмов машинного обучения/
• опыт работы с UNIX : cli, ssh, etc
• умение объяснять технические понятия простым языком
• английский язык для чтения литературы по теме
• нацеленность на интересы детей и молодежи
• готовность работать в команде, умение выстраивать партнерские отношения.
• высшее техническое образование
• опыт управления командой или ML проектами
• навыки работы с основными deep learning фреймворками: TensorFlow, PyTorch, Caffe
• опыт разработки веб-сервисов (Python, Java)
• знание SQL
• знание статистики и теории вероятностей
• успехи на Kaggle или других соревновательных площадках.
Наличие кураторов для участников программы обеспечивают партнеры.
Образовательные ресурсы
В целом на программе будут использованы образовательные ресурсы Яндекса и НИУ ВШЭ, активно разрабатываемые в течение многих лет. Конкретные онлайн-курсы, книги и статьи будут рекомендовать кураторы в зависимости от задач проекта.
Электронные ресурсы программы
https://github.com
https://www.kaggle.com
https://compscicenter.ru
https://yandexdataschool.ru
https://www.hse.ru
https://leetcode.com
https://www.coursera.org
В программе приняли участие 38 студентов, в том числе 28 — обучающиеся, чьи достижения включены в государственный информационный ресурс о детях, проявивших выдающиеся способности, из них 12 - получатели грантов Президента РФ.
Для участия в конкурсном отборе необходимо пройти регистрацию на сайте Образовательного центра «Сириус» в срок с 24 ноября по 23 декабря 2018 года.
Чтобы попасть на обучение по программе нужно:
1. быть студентом (18+) в 2018/2019 учебном году;
2. пройти регистрацию на сайте Образовательного центра «Сириус» не позднее 23 декабря 2018 года. К заявке прикрепите:
- резюме (файл размером до 5 МБ);
- мотивационное письмо, в котором расскажите о том, почему программа и конкретный проект будут вам полезны, а также наименование трех проектов, которые вам интересны в порядке уменьшения приоритета (описание проектов);
3. решить тестовые задания (ссылку кандидат на участие получит после того, как отправит заявку) не позднее 26 декабря 2018 года. Задачи подобраны таким образом, чтобы проверить, насколько хорошо кандидаты знают алгоритмы и умеют писать код на языке программирования (Python, C++, C).
Отбор участников образовательной программы производится на основании результата решения задач в соревновании Яндекс.Контест, ссылка на которое придет после регистрации. Задачи в соревновании подобраны так, чтобы проверить наличие у кандидатов знаний по алгоритмам (в объеме курса Алгоритмов и структур данных 1 в ШАД) и умению писать код на языке программирования (Python, C++, C). На программу попадут те кандидаты, которые лучше других справились с задачами.
Результаты отбора будут опубликованы на данном сайте в срок до 31 декабря 2018 г.
Целевое число участников программы — 20 человек.
Для участия в программе приглашаются студенты российских образовательных организаций.
Если студент:
1. является получателем гранта Президента РФ для лиц, проявивших выдающиеся способности (в соответствии с Указом Президента РФ № 607 от 7 декабря 2015 г.),
2. имеет достижения (является победителем / призером конкурсных мероприятий), внесенные в государственный информационный ресурс о детях, проявивших выдающиеся способности (формируемый в соответствии с постановлением Правительства РФ № 1239 от 17 ноября 2015 г.),
то участие в программе бесплатное (Фонд «Талант и успех» обеспечивает проезд / перелет по территории РФ, проживание и питание на базе Образовательного центра «Сириус» и иных объектов Фонда). Проездные документы приобретаются сотрудниками Фонда и направляются участнику не позднее чем за 2 дня до отправления.
Студенты, не относящиеся к указанным выше категориям, несут затраты на участие в программе (проезд, проживание, питание) самостоятельно. При этом плата за обучение на программе не взимается.
1. Конвертер геометрических чертежей в код
Мы вместе разработаем программу, которая будет конвертировать картинку с геометрическими фигурами, например, в LaTeX. Для этого мы, скорее всего, сделаем генератор картинок и обучим на них свёрточную нейросеть или попробуем обойтись преобразованием Хафа. Приходите, если вам нравится школьная геометрия и небезразличен Python.
2. Создание своего пайплайна для соревнований по анализу данных
В этом проекте вы погрузитесь в мир публичных соревнований и будете создавать удобный вам пайплайн: первичный анализ данных и их исследование, очистка и подготовка данных для разных моделей, подбор гиперпараметров и получение итоговых предсказаний. Мы ожидаем, что кандидаты на этот проект знакомы с Python, уже принимали участие в паре конкурсов на kaggle.com и хотят развиваться в соревнованиях по машинному обучению.
3. Мобильное приложение для велошеринга на основе блокчейн
Летом, особенно в местах массового отдыха, очень востребован велопрокат. В хорошую погоду найти свободный велосипед сложно, приходится ждать его у пункта проката. Решить эту проблему и сэкономить время поможет мобильное приложение, в котором желающие покататься смогут оставлять заявки с отметкой их местоположения на карте, а человек, который собирается завершить велопрогулку, сможет увидеть на карте ближайших к нему ожидающих, подъехать к любому из них и передать велосипед из рук в руки. При этом им обоим достаточно подтвердить в приложении факт передачи с автоматическим заключением смарт-контракта. С этого момента ответственность за велосипед несет уже другой человек.
4. Мобильное приложение-гид для indoor-навигации с использованием iBeacon-маяков
В помещениях (конференц-холлах или музеях) развешиваются iBeacon-маяки. С помощью технологии BLE эти маяки взаимодействует с мобильным приложением. Оно показывает текущее местоположение пользователя на плане и предлагает ему пройти по заранее выбранному маршруту с отслеживанием пройденного пути, попутно информируя его об объектах, на которые стоит обратить внимание – например, об экспонатах. Приложение также позволит пользователю обменяться визитками и пообщаться в чате с другими посетителями мероприятия, оказавшимися в данный момент в его ближайшем окружении.
5. Разработка метода реконструкции топологии генной сети по экспериментальным данным с помощью методов машинного обучения
Современный уровень развития экспериментальной геномики позволяет проводить масштабное исследование активности генов в разных типах клеток и тканей. Ключевой практический аспект использования полученной информации – это установление взаимосвязи между генетическими данными и функциональными свойствами клеток (например, влияние на развитие какого-либо заболевания). Для интерпретации результатов данные необходимо обработать. Решение этой задачи в значительной степени опирается на современные методы машинного обучения и анализа данных. Чтобы исследовать влияния генов, применяются вычислительные методы реконструкции генной сети, представляющей собой граф, описывающий связи между генами. В рамках проекта предполагается разработка алгоритма реконструкции топологии генной сети из экспериментальных данных с использованием комбинации методов машинного обучения и статистики. Важным аспектом проекта является интеграция сразу нескольких типов геномных данных в одной модели.
6. Карта оптимизма новостей
Насколько оптимистичны новости в вашем регионе? В проекте вам предстоит построить интерактивную карту России, отражающую позитивность новостей по регионам и крупным городам. Взяв статьи с основных новостных сайтов, вам предлагается методами NLP и машинного обучения оценить их эмоциональную окраску и уровень оптимизма. А по итогам составить карту позитива России и запустить своего Telegram бота - советчика ближайших мест "с хорошим настроением". Креатив и инициатива приветствуются: смело добавляйте свои крутые фишки!
7. Emotion detector
Этот проект для вас, если вам интересно попробовать себя в создании приложения, решающего задачу компьютерного зрения с помощью нейронных сетей, а также научиться создавать веб-сервис для удобной работы с приложением. В рамках проекта мы с вами поговорим о том, как устроены нейронные сети, работающие с картинками. Мы также напишем приложение с использованием нейронных сетей и других алгоритмов машинного обучения, решающее задачу определения эмоции человека по фотографии, и сделаем сервис с удобным интерфейсом для работы нашего приложения. По мере работы над проектом задача может незначительно видоизменяться в зависимости от текущих результатов. Писать будем на Python.
8. Сервис постановки и достижения целей
Мы разработаем сервис, который будет помогать правильно ставить и достигать цели. Все мы чего-то хотим достичь или сделать. Гораздо проще исполнить своё желание, если превратить его в цель. Цель от желания отличается тем, что она чётко сформулирована и ограничена по времени. «Хочу быть богатым» – это желание, о которым можно думать всю жизнь, но так и не исполнить. «Хочу иметь на своём банковском счету 100 млн рублей 1 января 2020 года» – цель, к которой можно стремиться и которую можно достигнуть. Сервис будет состоять из веб-версии и мобильного приложения. Он будет позволять создавать новые цели и отслеживать по ним прогресс. Мы добавим в него игровые механики и список достижений, которые будут мотивировать достигать поставленные цели.
9. Кэширование данных в ядре PostgreSQL
Код PostgreSQL разрабатывается хакерами со всего мира. В большинстве случаев он является примером точного баланса между поддерживаемостью кода и оптимальностью алгоритма. Но учёные по всему миру предлагают всё новые и новые классные и быстрые алгоритмы буквально для всего. Поддерживая сотни платформ PostgreSQL, Global Development Group ожидаемо не спешит с реализацией всего имеющегося алгоритмического арсенала. К этому добавляется желание исследователей патентовать алгоритмы, делая их неприменимыми в открытых проектах с PostgreSQL License. И во многих аспектах накапливается существенный лаг, отставание практики от теории. Так случилось и c алгоритмами кэширования страниц данных. В этом проекте мы попробуем сократить этот лаг, реализовав и сравнив наиболее перспективные алгоритмы. Поучаствовав в проекте, вы сможете оставить свой след в самой продвинутой открытой базе данных – PostgreSQL.
10. Поиск в СУБД
PostgreSQL давно стал богат на способы поиска данных. И в этом богатстве накопилось внушительное количество унаследованных технических решений, с которыми СУБД придётся жить, кажется, всегда. Но не всё так плохо – PostgreSQL, расширяемая СУБД и индексы могут быть представлены в качестве расширения. Наша задача – вынести существующий инструментарий поиска в расширение и реализовать в нём новые идеи более быстрого поиска. Также хочется, чтобы разработчики PostgreSQL (например, мы – команда этого проекта) услышали и учли пожелания от разработчиков типов данных (например, PostGIS).
11. Классификация и генерация текста в определенном стиле
В службу поддержки постоянно приходит огромное количество обращений в виде текстов. Эти тексты размечены на шесть классов: вежливое, угрозы, оскорбления, переход на личности и т.п. (есть набор данных на русском и похожий – на английском). Задача в том, чтобы научиться классифицировать новые тексты на основе этой выборки. Затем можно будет поднять веб-сервис, куда любой желающий сможет написать текст, и этот текст будет классифицирован. Если останется время, хочется научить генеративную сеть создавать тексты определенного класса/стилистики.
12. Тревожность на рабочем месте: анализ количественных и текстовых данных психологического исследования
Планируемое мультидисциплинарное исследование посвящено остро актуальной проблеме тревожности на рабочем месте (т.н. «фобии рабочего места»), связанной с неблагоприятными последствиями в виде прогулов, потери работы и снижения производительности организации в целом. В ходе он-лайн тестирования с помощью специальных зарубежных психометрических шкал-опросников будут установлены показатели тревожности испытуемых (сотрудников ряда государственных и частных компаний) и комплекс дополнительных психологических характеристик, включающих в себя ответы в свободной форме на часть вопросов. Задачи анализа данных заключаются в:
а) валидизации русскоязычной версии Job-Anxiety-Scale;
б) сопоставлении количественных показателей тревожности на рабочем месте и речевых паттернов испытуемых;
в) выделении ключевых словосочетаний – предикторов принадлежности испытуемого к группе с высоким уровнем тревоги на рабочем месте и риском утраты трудоспособности.
Проект выполняется совместно с научными сотрудниками Московского государственного психолого-педагогического университета.
13. PHOTOCLO (Photo closet)
Всегда хотели почувствовать себя Пашей Дуровым? У вас будет такая возможность при реализации собственного сервиса аля Google Photo.
Проблема: у всех много фоток на разных девайсах, да по ним еще и нельзя найти что-то дельное.
Решение: сервис, который хранит их в одном месте. На десерт: распознавание лиц и интеграция с Яндекс.Диском.
Что в итоге: научимся проектировать интерфейсы, распознавать лица с помощью CNN, работать с API стороннего сервиса, спроектируем и реализуем отказоустойчивое приложения (docker и все такое). Все будем делать на Python (+фронтенд).
14. TRIPORNOT
Знаете Яндекс.Маркет? Не так давно они стали анализировать отзывы людей и выделять из них то, о чем именно отзывается человек и с каким настроением. Полезная штука, не так ли? А что, если сделать такую же, но для форумов о путешествиях? Идея: находить и с помощью методов NLP «понимать» комментарии людей о разных достопримечательностях или местах, выделять определенные сущности, полезные для путешественника и оценивать отношение человека к этому месту. Этот проект для тех, кто хочет немного «постартапить». В ходе работы придется понять, а что же полезно путешественнику и как ему это преподнести.
Результат: научимся майнить данные с форумов, извлекать полезные данные из естественного языка, определять тональность текста, создадим web-приложение для путешественников. Работать будем на Python (+фронтенд).
15. Тиндер для поиска работы
Многие люди пользуются различными приложениями и интернет-ресурсами для поиска работы, но не все они удобны в использовании. В рамках этой программы мы сделаем удобное современное приложение, которое позволит быстро рассортировать вакансии в стиле всем известного Тиндера и найти себе работу мечты! Участниками будет предложено самим придумать внутреннюю логику работы и разработать востребованное приложение согласно нуждам современного пользователя.
16. Приложение-помощник
В рамках данного проекта мы сделаем приложение, которое будет полезно для абсолютно разной аудитории. Оно может помочь пенсионеру правильно спланировать поход в магазин или спортсмену успеть на пробежку до дождя. С помощью доступных данных о погоде и гибкой настройке приложение позволит всегда быть не только быть в курсе метеорологических условий за окном, но и получить расширенные данные о том, что рекомендуется и не рекомендуется делать сегодня. С участниками курса мы вместе придумаем алгоритмы работы и дальнейшую стратегию развития приложения.
17. Машинное обучение в психиатрии: эмбеддинги графов и тензорные разложения для диагностики депрессии по данным фМРТ
Депрессия является одним из наиболее распространенных психических расстройств; по оценкам всемирной организации здравоохранения, от нее страдают около 300 миллионов людей по всему миру. Важной задачей является разработка объективных диагностических методов для диагностики депрессии. При этом наиболее перспективными признаками для диагностики депрессии служат векторные представления (графовые эмбеддинги) коннектома, выделяемые по временному ряду фМРТ. В предлагаемом проекте рассматриваются признаки, получаемые автоматически по выборкам данных с помощью методов машинного обучения (признаки на основе т.н. «анонимных случайных блужданий»). Предсказательная сила этих признаков используется для построения классификаторов депрессии по выборке данных фМРТ испытуемых, размеченных либо как депрессивные, либо как здоровые. При этом для решения задачи диагностики депрессии используют современные алгоритмы машинного обучения (например, градиентный бустинг, решающие леса и др.).
18. Быстрая симуляция прохождения элементарных частиц через вещество
Заряженные частицы, проходя через материал, оставляют следы. Эти следы в дальнейшем могут быть использованы для идентификации типа пролетевшей частицы и дальнейшего анализа. Обычно при построении анализа важную роль играют симуляция прохождения частицы через вещество. В этом случае, реальный след частицы сравнивается с его симулированным изображением. Обычно для симуляции изображений используется точное описание всех физических процессов, происходящих внутри детектора. Подобный подход требователен к компьютерным ресурсам, потому мы не может применяться отдельными пользователями на своих компьютерах. Для этой же симуляции могут быть использованы генеративно-состязательные сети, построенные на основе более детальной симуляции физического процесса, что позволит существенно ускорить процесс, без большой потери качества. В данном проекте предлагается построить генеративную сеть, которая позволит симулировать прохождение заряженных частиц через материал детектора LHCb в ЦЕРН.
19. Реконструкция событий эксперимента JUNO
Реконструкция субатомных частиц в детекторе JUNO (http://juno.ihep.cas.cn). Детектор JUNO представляет собой сферу (35м в диаметре) с жидкостью, на границе сферы - фотодетекторы. В жидкость прилетает нейтрино, взаимодействует с ней, выделяются фотоны, фотоны детектируются фотодетекторами, получаются красивые картинки, из которых нужно научиться восстанавливать (реконструировать) характеристики частиц - их энергию и координаты. Эксперимент JUNO будет запущен в 2020-м году. Успешные алгоритмы и их реализации имеют хорошие шансы оказаться в production эксперимента.
20. Cегментация изображений городских сцен для управления беспилотными автомобилями
Для управления беспилотным автомобилем ключевой является задача правильной идентификации объектов на изображении от камеры. В рамках этого проекта нужно будет научиться работать с форматом изображений, приближенным к камерам беспилотных автомобилей, и научиться решать задачу сегментации изображений - разбиение картинки на несколько заданных классов (пешеход, автомобиль, велосипедист, дерево и т.п.). Основной задачей будет являться разработка алгоритма, сравнимого по качеству сегментации с сегодняшним state-of-the-art.
Партнерами Фонда по программе выступают:
Компания «Яндекс»
Факультет компьютерных наук Национального исследовательского университета
«Высшая школа экономики»
Куратор академических программ CS-центра/ Школы анализа данных Яндекса, доцент факультета математики и компьютерных наук СПбГУ, кандидат физико-математических наук
Профессор факультета компьютерных наук Высшей школы экономики
Преподаватель факультета компьютерных наук Высшей школы экономики
Директор по моделированию и анализу данных в Х5 Retail Group, руководитель группы аналитики в Яндексе, преподаватель факультета компьютерных наук Высшей школы экономики
Руководитель подразделения разработки открытых РСУБД в Яндекс.Облаке, преподаватель Школы Анализа данных, к.т.н., доцент УрФУ
Доцент базовой кафедры Яндекса в Высшей школе экономике
Преподаватель факультета компьютерных наук Высшей школы экономики
Доцент факультета компьютерных наук Высшей школы экономики
Аспирантка НИУ ВШЭ, выпускница МГУ и Школы анализа данных Яндекса
Заведующий научно-учебной лабораторией методов анализа больших данных Высшей школы экономики
Презентации проектов, реализованных на программе:
Карта оптимизма новостей
Конвертер геометрических чертежей в код
Lingofunk: Когда ваш бизнес любят?
Оптимизация кэша в ядре PostgreSQL
Мобильное приложение-гид для indoor-навигации
Photoclo
Разработка метода реконструкции топологии генной сети по экспериментальным данным с помощью методов машинного обучения
Сегментация изображений городских сцен для управления беспилотными автомобилями
Сервис постановки и достижения целей
Создание пайплайна для соревнований по машинному обучению