Хабрахабр

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

Меня зовут Саша и я люблю машинное обучение, а также обучение людей. Сейчас курирую образовательные программы в 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!
Теги
Показать больше

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

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

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

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