Как организовать Data Science соревнование на Codenrock

Как организовать Data Science соревнование на Codenrock

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

Что такое Data Science чемпионат?

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

Концепция чемпионата проста:

  1. Компания определяет проблему, предоставляет необходимые для ее анализа и решения публичные данные — датасет (набор структурированных данных и информации, предназначенных для обучения моделей нейронных сетей) и определяет призовой фонд для лучших решений;
  2. Специалисты подают свои заявки на участие в чемпионате и предлагают лучшие решения проблемы;
  3. Все решения, созданные на основе публичного датасета, автоматически проверяются на приватном датасете — часть данных, которые не публикуются до полного завершения чемпионата;
  4. Специалисты, чьи решения получили лучшие результаты на приватном датасете, получают призы.

Теперь, когда понятна концепция, перечислим основные причины, побуждающие компании организовывать Data Science чемпионаты:

  • Создание новых продуктов
  • Поиск готовых команд и продуктов
  • Развитие HR бренда и найм специалистов

Как работает платформа?

В час «X» мы открываем страницу конкурса, которая содержит всю необходимую информацию, такую как описание конкурса, правила участия, вопросы-ответы и другие информационные блоки.
При регистрации на мероприятие участникам предлагается заполнить анкету, заранее установленную организатором.

Платформа для Data Science соревнований
Платформа для Data Science соревнований

После заполнения анкеты участнику доступен функционал командообразования: он может или присоединиться к уже существующим командам на мероприятии, или создать свою. К слову, по решению организатора конкурс может быть настроен и на одиночное участие, в котором этот шаг не требуется.

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

Для формирования задачи по ML (Machine Learning) организатор должен предоставить:

  • Учебный датасет (данные, которые передаются участникам для обучения своих моделей)
  • Публичный (и, при наличии, приватный) тестовый датасет (данные, на которых проверяются решения участников)
  • Benchmark-файл (файл с ответами, чаще всего .csv)
  • Пример ответа (sample-submission)
  • Метод расчета результата решения (scoring), который представляет собой один или несколько .py файлов.

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

Когда участник открывает задачу, платформа генерирует для команды Gitlab репозиторий с бейзлайном решения. Участник может перейти в него, авторизоваться и приступить к выполнению задания. Система построена на контейнеризированной сборке. Это значит, что в выданном репозитории обязательно будет готовый Dockerfile, который будет собирать код решения участников и отправлять на инференс (расчет модели). Все хлопоты по организации сборки и инференса, а также процесса расчёта решений Codenrock берёт на себя.

Gitlab интеграция

Gitlab участников настроен таким образом, что после каждого изменения в основной (main) ветке последний commit собирается с помощью Gitlab CI/CD и по готовности может быть рассчитан. После сборки на странице задачи на Codenrock появляется кнопка «Проверить решение», при нажатии на которую запускается инференс последней сборки на сервере с GPU, чаще всего используем NVIDIA Tesla T4 или NVIDIA A100.

Вид задачи на Codenrock

При проверке к решению “подкладываются” тестовые данные, и после выполнения забирается результат —  как правило, .csv файл. Полученное решение проходит проверку через предоставленную метрику (scoring.py), и полученный результат записывается в лидерборд. Краткая схема работы DS соревнования с использованием Gitlab нарисована ниже.

Схема работы с Data Science соревнованием

Стоит отметить, что такая схема набирает популярность как у нас, так и на других площадках, а у участников становится всё меньше проблем с освоением docker, чем было раньше.

Тем не менее, если вам кажется, что использование контейнезированной разработки при решении Data Science задач — это излишне в вашем случае, Codenrock поддерживает и более стандартный вариант проведения Data Science соревнования, в котором участник генерирует файл-решение (submission.csv) самостоятельно, загружает на платформу, а платформа только считает scoring и записывает его в лидерборд.

Подготовка к Data Science чемпионату

Данные и описание задачи

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

Стоит сконцентрировать внимание на то, какие данные вы можете сделать публичными, а какие нет, и как сделать данные безопасными для публикации, чтобы не скомпрометировать ваш бизнес или ваших клиентов. Этап подготовки данных — один из самых продолжительных в процессе подготовки чемпионата. В зависимости от ваших целей, вам могут подойти и синтетически данные, например, если ваша цель — это в первую очередь развитие HR-бренда и найм специалистов.

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

Когда задача и данные готовы, наступает момент подготовки baseline модели —  базовое решение, отталкиваясь от которого участники начнут создавать свои решения, улучшая базовое, или начнут с нуля, чтобы создать свое уникальное. Этот этап также важен для организаторов —  он позволят провалидировать задачу и данные на ошибки, тем самым обеспечив качество чемпионата и полученных решений.
В этом материале мы не будем сильно углубляться в процессы организации, связанные с упаковкой и продвижением чемпионата — с этим вы можете ознакомится в одной из наших статей Как организовать офлайн и онлайн-хакатон. Тут мы только обратим внимание на то, что следует учитывать специфику задач при подготовке медиаплана, чтобы получить аудиторию, которая будет способна решить вашу задачу. У нас этот процесс поставлен, база пользователей Codenrock отлично отсегментирована, что позволяет достаточно точно приглашать пользователей к участию в вашем чемпионате.

Оценка решений

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

Лидерборд на Codenrock

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

Награждение победителей

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

В конце хочется привести немного статистики за последние 12 месяцев:

  • 10 хакатонов, связанных с Data Science, из которых 5 были именно DS чемпионатами;
  • На эти хакатоны зарегистрировалось более 8 000 участников;
  • На момент написания этой статьи аудитория Codenrock составляет 48 000 пользователей.
Оцените статью
Codenrock Blog


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

    X


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