Гроссмейстеры больших данных: интервью с чемпионом мирового рейтинга Kaggle Станиславом Семеновым
Сейчас на Kaggle можно проходить курсы по AI, пользоваться облачными ресурсами для решения задач, общаться со специалистами по всему миру, искать работу и, конечно, участвовать в соревнованиях. В 2017 году платформу купила компания Google, усилив свои позиции в сообществе исследователей по искусственному интеллекту и повысив шансы в борьбе за лучших специалистов на рынке.
Мастер над соревнованиями
Всего в Kaggle пять уровней: новичок, участник, эксперт, мастер и гроссмейстер. Причем пройти в высшую лигу, перескакивая через ступени, не получится. Стать гроссмейстером можно в одной из четырех категорий: «соревнование», «блокноты», «наборы данных» и «обсуждение». Самым крутым считается гроссмейстер в соревнованиях.
Новичком пользователь становится автоматически, как только присоединяется к Kaggle. Приняв участие во всех четырех категориях, попадаешь в участники. Переход в следующую категорию, эксперт, обеспечивают медали — например, две бронзовые за соревнования или 50 бронзовых — за обсуждения. Чтобы стать мастером соревнований потребуется одна золотая и две серебряные медали, а для мастера наборов данных — одна золотая и четыре серебряных. Но цель каждого участника (а их уже более 16 млн!) — звание гроссмейстера. В категории соревнований для этого надо иметь пять золотых медалей и еще одно сольное золото — взятое в одиночку. А в категории обсуждений потребуется 50 золотых медалей и 500 наград других достоинств.
Как правило, золотые медали получают первые 10% соревнующихся с лучшими результатами. Серебро — те, кто вошел в топ-20, бронзу — топ-40. При очень большом количестве участников (более 250 команд) условия немного меняются. По словам специалиста по обработке данных Nvidia и гроссмейстера Kaggle Бояна Тунгуза, чтобы получить звание гроссмейстера, нужно разбираться в машинном обучении и прогнозной аналитике лучше, чем кто-либо другой, и при этом постоянно пересматривать гипотезы. Боян был первым, кто пробился в топ-10 во всех четырех категориях Kaggle после участия в 252 соревнованиях и победы в двух.
Сейчас на сайтах крупнейших компаний в области анализа данных и машинного обучения указывается, сколько там работает мастеров и гроссмейстеров Kaggle. Например, на сегодня в мире всего 312 гроссмейстеров, из них в Nvidia работает 10 из топ-100 и еще 9 — в H2O.ai. Интересно, что 70 гроссмейстеров родом из США, 31 — из Японии, 29 — из России и 25 — из Китая.
Как проходят соревнования
Как правило, в Kaggle приходят студенты, занимающиеся анализом данных и желающие попрактиковаться в этой области. Если на профильном форуме задать вопрос, где набраться опыта, ответ будет один: иди решай Kaggle.
Станислав Семенов, российская легенда, который в 2016 году стал № 1 в мировом рейтинге, попал туда, решая задачи, которые размещала на платформе Школа анализа данных «Яндекса», где он учился.
В каждом соревновании организаторы выкладывают описание задачи, данные для решения, метрику, по которой оно будет оцениваться, устанавливают сроки и назначают призы. Все участники вправе выкладывать свой вариант решения от трех до пяти раз в день. Дается обучающая выборка, где есть данные и ответы, и тестовая — только данные без ответов. Задача заключается в том, чтобы как можно лучше предсказать ответы, удовлетворяющие метрике качества, то есть создать модель, которая, обученная на тренировочной части данных, выдаст максимальный результат на тестовой. Модели оценивает робот, итоги отображаются на лидерборде.
Работать над моделью можно индивидуально, а можно в команде. «Я в одиночку решил чуть меньше половины задач, остальные — вместе с другими участниками, — говорит Станислав Семенов. — Как происходит объединение в команду? Допустим, ты целый месяц один возишься с задачей и поднялся с ней высоко в рейтинге — например, на пятое место. И видишь рядом, месте на шестом, другого одиночку. Ну и предлагаешь: мол, давай объединимся в команду, соединим свои идеи и решения и сможем занять первое место».
Чем ближе к концу соревнования, тем крупнее становятся команды, чтобы повысить шансы на лидерство, но за неделю до конца отведенного времени группироваться уже нельзя. Однако, когда на кону стоят крупные денежные призы, люди объединяются неохотно: в случае победы делить выигрыш придется между всеми участниками команды. И призов гораздо меньше, чем золотых медалей, — обычно только первые три места.
Главный учитель
Несмотря на то, что за плечами у Станислава Семенова факультет общей и прикладной физики — самый сложный в МФТИ — и факультет компьютерных наук ВШЭ, главным учителем в области машинного обучения он считает Kaggle. «У тебя есть данные, и ты сидишь и ищешь в них какие-то интересные закономерности. Для этого никто не нужен: о том, как код писать или необходимые алгоритмы, можно в интернете прочитать», — делится Станислав.
А новичкам советует посещать тренировки по машинному обучению в московском офисе «Яндекса», где разбирают недавно завершившиеся конкурсы. И участвовать в «зарешиваниях» — встречах по выходным, когда группы энтузиастов собираются и пытаются совместно решить текущие задачи.
Как стать чемпионом
Больше всего мне о Kaggle рассказал начальник центра технологий искусственного интеллекта «Газпромбанка» Адель Валиуллин — человек, входивший в мировой топ-100 этой платформы. Понятное дело, я сразу же спросил его: «Как?!.»
Выяснилось, что впервые с Kaggle Адель столкнулся в магистратуре, когда на курсах по машинному обучению на Coursera пришлось решать задачу из Kaggle по предсказанию победителя онлайн-игры Dota 2. Из 810 участников состязания Валиуллин занял 39-е место, и после этого его было уже не остановить. На вопрос, сколько времени у него уходило на работу над задачами, Адель просто ответил: «Все свободное. И еще немного несвободного».
В день можно отправить до пяти сабмитов, и если какой-то день пропустить, то теряешь возможность протестировать решения и идеи. К тому же параллельно идет несколько соревнований, и на определенных отрезках времени необходимо решать ряд задач одновременно. В среднем это занимало два-три часа в будни, весь день в выходные, а под конец приходилось засиживаться до последней секунды дедлайна — на Kaggle он наступает в три часа ночи по Москве. Отпуск у Аделя также проходил в обнимку с ноутбуком: задачи он начинал решать прямо в аэропорту и заканчивал там же по возвращении.
Менее чем за три года Валиуллин сумел подняться на 68-е место в мировом рейтинге. И кстати, он ни о чем не жалеет; более того, этот период своей жизни Адель вспоминает с восторгом и рассказывает о нем с заметным воодушевлением.
Еще невероятнее история Станислава Семенова. Впервые он принял участие в соревнованиях Kaggle всего через пару месяцев после того, как начал изучать машинное обучение в ВШЭ, — и сразу попал в первую пятерку участников с самым высоким результатом. Состязания Станиславу понравились, и он поставил себе задачу: за полтора года стать № 1 в мировом рейтинге. «Через полтора года — номером один в мировом рейтинге, я не ослышался?» — переспросил я. «Да», — последовал спокойный ответ. «И как?» — «Стал».
Как правило, Станислав работал над двумя-тремя задачами параллельно, причем у него была собственная стратегия: несмотря на то что соревнования длятся три месяца, он любил заходить в последние несколько недель, быстро все решать, побеждать и приступать к следующему заданию. «Мне не нужно было трех месяцев — обычно хватало от двух до четырех недель», — Семенов не делает из этого секрета. За каждое соревнование он получал медали, обычно золотые, реже серебряные — ни одной бронзовой.
В то время Станислав одновременно учился в вузе, работал на полную ставку и решал Kaggle. «Но как можно все это успеть?» — изумляюсь я. «Если не спать, то успеваешь везде», — отвечает мой визави, и я не могу понять, шутит он или говорит серьезно.
Есть спортсмены с доступом к почти неограниченным ресурсам — например, участники команды гроссмейстеров Kaggle из Nvidia — KGMoN. Адель Валиуллин в свое время купил сервер с четырьмя видеокартами Nvidia GeForce GTX 1080 Ti 11 Гб, 64 ядрами и оперативной памятью на 128 Гб за 300 тыс. рублей. «Думаю, это было одним из самых удачных вложений в моей жизни», — смеется он. Станислав арендовал сервера на Amazon.
«А что с призовыми? — полюбопытствовал я напоследок. — Говорят, были конкурсы с выплатами более 1 млн долларов?» «Я не обращал на это особого внимания. У меня много денег уходило на аренду серверов — наверное, с призовыми все же оставался в плюсе, — говорит Семенов. — Выплаты в Kaggle для меня никогда не были основным заработком. Мой главный источник дохода и тогда, и сейчас — навыки, которые я приобрел, участвуя в соревнованиях».