Хабрахабр

Как я организовал тренировки по машинному обучению в НГУ

Меня зовут Саша и я люблю машинное обучение, а также обучение людей. Сейчас курирую образовательные программы в Computer Science центре и руковожу бакалавриатом по анализу данных в СПбГУ. До этого работал аналитиком в Яндексе, а ещё раньше — учёным: занимался математическим моделированием в ИВТ СО РАН.

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

image

Это казалось отличной идеей: Мне давно хотелось организовать спецкурс по подготовке к соревнованиям по анализу данных на Kaggle и других платформах.

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

Запуск

В Академгородке Новосибирска очень благодатная почва для подобных начинаний: студенты, выпускники и преподаватели Computer Science центра и сильных технических факультетов, например, ФИТ, ММФ, ФФ, мощная поддержка администрации НГУ, активное ODS-сообщество, опытные инженеры и аналитики разных IT-компаний. Примерно тогда же мы узнали о грантовой программе от Botan Investments — фонд поддерживает команды, которые показывают хорошие результаты в соревнованиях по спортивному ML.

На первое занятие пришли 19 человек. Мы нашли аудиторию в НГУ для еженедельных встреч, создали чатик в Телеграме и с 1 октября запустились вместе со студентами и выпускниками CS центра. Всего за учебный год на встречу хотя бы раз пришел 31 человек. Шесть из них стали постоянными участниками тренировок.

Первые результаты

Мы с ребятами познакомились, обменялись опытом, обсудили соревнования и примерный план на будущее. Довольно быстро поняли, что борьба за места в соревнованиях по анализу данных — это регулярный изнурительный труд, похожий на неоплачиваемую full-time работу, но очень интересную и захватывающую 🙂 Один из участников, Kaggle-master Максим, посоветовал нам сначала продвигаться в конкурсах индивидуально, и только через несколько недель после этого объединяться в команды, учитывая public score. Мы так и сделали! На очных тренировках обсуждали модели, научные статьи и тонкости Python-библиотек, вместе решали проблемы.

И одно третье место в конкурсе ЦФТ по исправлению опечаток с первыми выигранными деньгами (in the money, как говорят опытные кегглеры). Результатами осеннего семестра стали три серебра в двух соревнованиях на Kaggle: TGS Salt Identification и PLAsTiCC Astronomical Classification.

Его вычислительные мощности заметно улучшили нашу соревновательную жизнь: 40 CPU, 755Gb RAM, 8 GPU NVIDIA Tesla V100. Ещё одним очень важным косвенным результатом спецкурса стал запуск и настройка кластера ВКИ НГУ.

image

У одной команды даже был самописный скрипт, который автоматически сохранял модель и перезапускал расчёт, остановившийся по лимиту времени. До этого мы выживали как могли: считали на личных ноутбуках и десктопах, в Google Colab и в Kaggle-kernels.

К нам стали приходить новые заинтересованные участники. В весеннем семестре мы продолжили собираться, обмениваться успешными находками и рассказывать о своих решениях соревнований. За весенний семестр получилось взять уже одно золото, три серебра и девять бронз в восьми конкурсах на Kaggle: PetFinder, Santander, Gendered pronoun resolution, Whale Identification, Quora, Google Landmarks и других, бронзу в Recco challenge, третье место в Changellenge>>Cup и первое место (снова in the money) в соревновании по машинному обучению на чемпионате по программированию от Яндекса.

Что говорят участники тренировок

Михаил Карчевский
«Я очень рад, что такая деятельность ведётся у нас в Сибири, так как считаю, что участие в конкурсах — самый быстрый способ освоить ML. Для таких конкурсов железо достаточно дорогое, чтобы купить самостоятельно, а тут можно пробовать идеи бесплатно».

Первый семестр ходил как слушатель. Кирилл Бродт
«До появления мл-тренировок я особо не участвовал в конкурсах за исключением учебных и индусских соревнований: не видел в этом смысла, так как работа у меня в области МО была, да и с ним я знаком. И меня это затянуло. А начиная со второго семестра, как только появились вычислительные ресурсы, подумал, почему бы и не поучаствовать. Если бы не тренировки и, не менее важно, вычислительные ресурсы, я бы не скоро начал участвовать». Задачу, данные и метрики за тебя придумали и приготовили, бери да используй всю мощь МО, проверяй state-of-the-art модели и техники.

Также это отличный вариант для тех, у кого нет особо свободного времени на самостоятельный разбор и погружение в тему конкурсов, но быть в теме все же хочется». Андрей Шевелев
«Очные ML-тренировки помогли мне найти единомышленников, совместно с которыми удалось углубить свои знания в области машинного обучения и анализа данных.

Присоединяйтесь к нам

Соревнования на Kaggle и других площадках оттачивают практические умения и быстро конвертируются в интересную работу в области data science. Люди, которые вместе поучаствовали в трудном соревновании, часто становятся коллегами и продолжают успешно решать уже рабочие задачи. Такое случалось и у нас: Михаил Карчевский в паре с другом из команды перешли работать в одну компанию над рекомендательной системой.

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

Вот маленькая шпаргалка, которая поможет сделать первые шаги:

  1. Продумайте удобное место и время регулярных занятий. Оптимально — 1-2 раза в неделю.
  2. Напишите потенциально заинтересованным участникам о первой встрече. В первую очередь это студенты технических вузов, участники ODS.
  3. Заведите чатик для обсуждения текущих дел: Telegram, VK, WhatsApp или любой другой удобный большинству мессенджер.
  4. Ведите общедоступный план занятий, список соревнований и участников, следите за результатами.
  5. В близких университетах, научных институтах или компаниях найдите свободные вычислительные мощности или гранты на них.
  6. PROFIT!
Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть