Як я організував тренування з машинного навчання в НГУ

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

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

Як я організував тренування з машинного навчання в НГУ

Мені давно хотілося організувати спецкурс із підготовки до змагань з аналізу даних на Kaggle та інших платформах. Це здавалося чудовою ідеєю:

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

запуск

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

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

перші результати

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

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

Ще одним дуже важливим непрямим результатом спецкурсу став запуск та налаштування кластера ВКІ НГУ. Його обчислювальні потужності помітно покращили наше змагальне життя: 40 CPU, 755Gb RAM, 8 GPU NVIDIA Tesla V100.

Як я організував тренування з машинного навчання в НГУ

До цього ми виживали як могли: вважали на особистих ноутбуках і десктопах, Google Colab і Kaggle-kernels. В однієї команди навіть був самописний скрипт, який автоматично зберігав модель і перезапускав розрахунок, що зупинився за лімітом часу.

У весняному семестрі ми продовжили збиратися, обмінюватися успішними знахідками та розповідати про свої рішення змагань. До нас почали приходити нові зацікавлені учасники. За весняний семестр вдалося взяти вже одне золото, три срібла та дев'ять бронз у восьми конкурсах на Kaggle: PetFinder, Сантандер, 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!

Джерело: habr.com

Додати коментар або відгук