Как подготовиться к ML-соревнованию и занять первое место

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

В этой статье – самые полезные инструменты для соревнований по Data Science и практический опыт участников таких мероприятий.   

Как проходит соревнование

Конкурсы по разработке ML-решений отличаются от обычных продуктовых хакатонов. На старте участники получают как минимум два датасета: один для тренировки нейросети, второй для проверки ее работы. Всегда существует и третий набор данных, скрытый до окончания соревнования от конкурсантов – именно по нему определяется победитель. Это необходимо, чтобы не получилось «подогнать» модель под работу только с публичным датасетом. 

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

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

Предварительная работа 

После старта ML-соревнования времени на раскачку не будет – нужно разрабатывать проект. Поэтому важно как можно больше успеть сделать до начала конкурса. 

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

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

На крупных хакатонах, помимо обучения ИИ, нередко требуется представить рабочий прототип продукта. Если чувствуете, что не хватает компетенций параллельно с тренировкой модели заниматься бэкендом и интерфейсом, лучше заранее собрать команду специалистов, которые хотят поучаствовать в конкурсе. 

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

Александр Саранов, капитан команды WB HEROES, 3 место в треке «Предсказание конверсий пользователей в рекламном аукционе» хакатона GPM AdTech Challenge

Практика

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

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

  • Kaggle. Самый известный проект от Google, международная платформа для проведения DS-соревнований. Предоставляет онлайн-среду, в которой можно писать Python/R-скрипты и работать в Jupyter Notebooks, а также предлагает мини-курсы по машинному обучению. 
  • Codenrock. На сайте на постоянной основе открыта песочница – набор бессрочных соревнований, где можно тренироваться, разбирать задачи, улучшать свои навыки. Все задания используют стандартный инструментарий платформы, поэтому помогают лучше понять, как она устроена, и подготовиться к крупным конкурсам с призовым фондом. Главные преимущества площадки – большой выбор соревнований на разные темы и дружелюбное сообщество ML-специалистов любого уровня.

Никогда не задавался целью специальной подготовки к ML-соревнованию. Просто стараюсь держать себя в форме: постоянно учусь на каких-нибудь курсах по Python, обычно на 1-3 параллельно, т.к. надоедает монотонность курса по одной теме и хочется разнообразия. Я каждый день решаю по 10-20 задачек.

Александр Павлов, капитан команды «Дайте два», 1 место в треке «Предсказание конверсий пользователей в рекламном аукционе» хакатона GPM AdTech Challenge

Полезные инструменты

На Data Science соревновании организатор всегда предоставляет участникам готовые материалы. Точно будет выдан доступ к датасетам – без них никуда. Могут быть и другие требования и ограничения – например, использовать для обучения модели конкретный сервис. 

Лучше сразу изучить и подготовить инструменты, которые будут востребованы в конкурсе. Во-первых, понадобится среда разработки, желательно предназначенная для ML-вычислений. Тут могут пригодиться:

  • Jupyter Notebook. Базовый инструмент для любого специалиста по Data Science. Концепция «ноутбуков» позволяет запустить любой фрагмент код без компиляции и деплоя. Это ускоряет прототипирование и позволяет быстро обучить модель на малой выборке. 
  • Google Colab. Бесплатный облачный сервис на базе Jupyter Notebook. Предлагает заранее собранное окружение, которое будет подходящим для решения большинства ML-задач. Есть возможность использовать для вычислений и GPU, и CPU на выбор. Также поддерживает интеграцию с Google Drive, в том числе сохранение промежуточных состояний. 
  • Kaggle Notebooks. Еще один облачный сервис от Google. По функционалу аналогичен Colab, но главное преимущество – простое взаимодействие с ML-платформой Kaggle, что позволяет выкладывать разработки и применять решения других участников в своих проектах, использовать базу датасетов, параллельно изучать курсы. 
  • Yandex DataSphere. Сервис использует собственную файловую систему для сохранения результатов вычислений без необходимости повторного развертывания проекта. Поддерживается интеграция с другими инструментами «Яндекса» для ML-разработки, например, Yandex Data Proc. Есть возможность командной работы.
  • Виртуальная инфраструктура с GPU от МТС. Позволяет использовать облачный сервис на базе NVIDIA Tesla A 100 для машинного обучения. Подходит для создания собственной Deep Learning платформы и работы с ИИ. 

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

Александр Саранов, капитан команды WB HEROES, 3 место в треке «Предсказание конверсий пользователей в рекламном аукционе» хакатона GPM AdTech Challenge

Предобученные модели

Готовые модели очень полезны в DS-соревнованиях, где важна скорость разработки с сохранением качества результата. Их преимущества:

  • Экономия времени. Не нужно тратить драгоценные часы на обработку данных и обучение модели с нуля. 
  • Высокая производительность. Дают хорошую отправную точку для дальнейшего улучшения проекта. 
  • Перенос обучения. Transfer Learning позволяет использовать опыт, накопленный во время решения одной задачи, для другой аналогичной проблемы. 

Самые популярные и крупные базы с предобученными моделями:

  1. Hugging Face. Платформа и ML-сообщество, образовавшееся вокруг библиотеки Transformers. Предлагает большой выбор моделей для обработки естественного языка и функции совместной работы. 
  2. TensorFlow Hub. Репозиторий от Google для одноименной библиотеки, а также TensorFlow Lite и TensorFlow.js для мобильных и веб-приложений. 
  3. PyTorch Hub. Аналог TensorFlow Hub, но для пользователей PyTorch – простого фреймворка, отлично подходящего для прототипирования. 
  4. Model Zoo. Открытый репозиторий предобученных моделей для OpenVINO от Intel и TensorFlow.

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

Александр Павлов, капитан команды «Дайте два», 1 место в треке «Предсказание конверсий пользователей в рекламном аукционе» хакатона GPM AdTech Challenge

Где искать соревнования

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

Чтобы лучше подготовиться к конкурсу, рекомендуем изучить кейсы Codenrock по проведению хакатонов для специалистов по Data Science:

  1. GPM AdTech Challenge от «Газпром-Медиа», где участники разрабатывали сервис для дубляжа видеороликов и модель предсказания рекламных конверсий. 
  2. AgroCode DataScience Cup от Россельхозбанка. Задачей конкурсантов было создание модели, которая сможет определять продуктивность животных.
  3. Aeroclub Challenge 2023 от компании «Аэроклуб». Участники представили ИИ-решения для командировок, деловых поездок и бизнеса. 
  4. Cardio data hack UFA 2022 для Евразийского конгресса по лечению сердечно-сосудистых заболеваний. Проекты были направлены на метаанализ лекарств и анализ данных ЭКГ для выявления признаков аритмии. 
  5. Health Data Hack от Московсковского физико-технического института и технопарка «Московский центр инновационных технологий в здравоохранении», где конкурсанты подготовили модели для предсказания тяжести пневмонии, поиска раковых клеток и новых методов лечения онкологических заболеваний. 


    Оставьте заявку, мы подберем для вас лучшие решения для работы с ИТ-сообществом

    Блог Codenrock — Кейсы, истории успеха и интервью с экспертами