Machine Learning сейчас одна из самых популярных тем и отношение к ней неоднозначно: где-то уже внедрены и активно работают решения на базе AI, а кто-то до сих пор считает ML эзотерикой. Вне зависимости от позиции, при правильном применении и подходе ML позволяет решать многие инженерные задачи, которые невозможно или не оптимально решать классическим алгоритмическим программированием. В IPONWEB накоплен многолетний опыт использования машинного обучения для предсказания кликов и конверсий, разработаны уникальные инструменты и процессы. Было бы глупо не воспользоваться всем этим для решения других инженерных задач. Михаил Бенюхис, CTO Machine learning, технология значимость которой сложно переоценить, активно используется в IPONWEB в реализации практически всех продуктов. И именно поэтому привлечение внимания к ML и ее продвижение стали одними из основных причин почему ML Хакатону суждено было быть. Всем нам давно известен старый добрый формат Kaggle для испытания своих ML навыков: у участников есть все необходимое от задачи и заранее собранных данных до свободы в выборе методов. Цель одна - создать лучшую модель с предопределенной метрикой качества - все прозрачно и понятно. Но вот пригодно в основном только для ML инженеров и специалистов Data Science. Мы же решили рискнуть и совместить форматы Kaggle и Hackathon, тем самым открывая доступ к Хакатону не только для ML и Data Science специалистов, но и для всех заинтересованных.  Это был эксперимент и, если вы вдруг решитесь на что-то подобное, наши наблюдения, рекомендации к проведению и выводы с нетерпением ждут вас далее по тексту.   Ну что, погнали? У нас было два трека: Закрытый, приближенный к формату Kaggle: участникам предоставлялись заранее сформулированные задачи и подготовленный датасет. Команды в Открытом треке могли принести свои задачи и самостоятельно собрать датасет, что стало прекрасной возможностью для участников пройти весь путь от обнаружения реальной проблемы/задачи до попытки решить ее с помощью инструментов ML. Для начала участникам предстояло собрать команды. На этот этап было выделено достаточно времени, чтобы все смогли подойти к первой, иногда самой важной, задаче поиска единомышленников, осознанно и с расчетом. На практике стало понятно, что наиболее сбалансированными оказались команды, имеющие кросс-функциональный состав: Data Scientists, Software engineers, Python или Lua developers, Technical Project и Product Managers и др. Итак, Вывод 1: Команды точно должны быть командами. Конечно, допускается участие соло-команд, но как же в таком случае командный драйв, сила коллективного разума и нетворкинг? Есть смысл собираться в кросс-функциональные команды, которые включают специалистов разной экспертизы и уровня:  Product Manager позволит взглянуть на задачу комплексно, узконаправленный технический гуру внесет глубокое знание технологии и инструментов, а Project Manager поможет с организацией и распределением сил команды. В разношерстной команде у всех есть свое отношение к проблеме и все смотрят на нее со своей стороны. Круто, что команда собралась практически рандомно, и если бы не хакатон, мы бы никогда и не общались, наверное)). Оксана Деева, Lua Developer Так как участие в ML Хакатоне было открыто и доступно для всех, вне зависимости от степени подготовки и уровня владения навыками ML, предварительное обучение и всесторонняя экспертная помощь участникам стали приоритетами в подготовке к Хакатону. Мы начали с того, что постарались полностью снарядить участников открытого трека знаниями о том, как верно ставить задачу для ML, и что не все задачи можно, а главное нужно, решать средствами машинного обучения. ML - не панацея и не волшебная палочка, а технология, которая может быть уместна или нет.  Очередной раз убедился, что все-таки решение реальной задачи важнее, чем применение какой-то технологии. Тимур Титов, Technical PM Также всем участникам Хакатона было доступно базовое обучение по ML. Мы рассмотрели разные курсы и в итоге остановились на курсах Coursera:  Математика и Python для анализа данных Machine Learning with TensorFlow on Google Cloud Platform Specialization Вывод 2: Подумайте, вернее, обязательно подумайте над предварительным обучением и просвещением сотрудников по технологии, используемой в хакатоне. Это позволит участникам сэкономить время на понимании базовых вещей, а команды начнут оперировать техническими понятиями, говоря друг с другом на одном языке. Как мы и ожидали, самой сложной частью для нас оказался сбор данных. Причем, уже выбрав данные, было непросто не только найти куда и как их загрузить, но и понять в каком виде и формате они должны быть, как их закодировать так, чтобы выбранные алгоритмы могли их распознать. Хакатон устроен так, что спросить было у кого, но для того чтобы это сделать все равно нужно серьезно погрузиться в тему, а это уже не так просто. Самое ценное - ощущение, что все это возможно, все эти алгоритмы и коды посильны, можно действительно стараться применять эти инструменты дальше в работе. Евгения Глейзер, Technical Account Manager Что дальше? А дальше были два дня предметной и насыщенной работы. Тут сложно написать какое-то откровение, кроме как - Не забывайте покормить участников, ведь умственная работа крайне энергозатратна)) Были сложности в практическом применении навыков, мы банально не умели нормально пользоваться Jupyter Notebook и всей предоставленной инфраструктурой, до какой-то математики дойти не успели. Возможно, следовало собрать команду, чтобы был кто-то со знаниями ml, но у нас была команда for fun. Было здорово что получили какой-то небольшой позитивный результат и вообще это было весело! Даниил Азарнов, Scala Developer Вывод 3: Смиритесь с тем, что вам не хватит времени вне зависимости от того, сколько часов и дней вы на это заложите. У участников было два дня, а у кого-то даже две ночи. И все равно этого было недостаточно. Мы остановились на двух днях Хакатона, выделив третий день на презентацию результатов и награждение победителей. Ах, да. Про победителей у нас есть Вывод 4: Как выбирать победителей и кого же в итоге награждать? Наиболее очевидное “наградить по команде в каждом треке” лежит на поверхности и первым приходит на ум. Однако, следует учитывать различный уровень подготовки участников и награждать победителей в разном весе: отдельно новичков без опыта ML и продвинутых гуру. Все по справедливости) Мы верим, что Хакатон больше про удовольствие от свободы творчества, от командной работы и от создания нового. И тут задача любой организации - помочь этому всему случиться, а не навязывать ярлыки и штампы, загоняя участников в жесткие рамки. Вы вольны воспользоваться нашим опытом и ориентироваться на наши выводы или сделать все на свой манер, главное помните, куда важнее - это Have fun! Прокручивая в голове все ситуации, которые были связаны с хакатоном и в течение самого мероприятия, наверное, можно поставить во главу угла пару вещей, которые были самыми сложными для меня. Во-первых, непростым решением было подать заявку и спасибо всем тем, кто подтолкнул ввязаться в эту историю. А второй сложной вещью было восприятие временных рамок ивента, когда модель не работает, дедлайн близко, а мозг готов взорваться. Но игра стоила свеч, лайтовая и клевая атмосфера вокруг, возможность переключиться от повседневной рутины в область, с которой постоянно сталкиваешься, но не работаешь напрямую, и какой-никакой результат и особенно интересно послушать людей, которые решали ту же задачу, но совершенно другим способом. Алексей Могильников, Python Developer