Привет, Хабр! На связи ЕВРАЗ, и сегодня мы хотим рассказать, как организовали и провели хакатон по Data Science и Computer Vision. Казалось бы, где металлургия и где хакатон — но нет. В мире практически не осталось предприятий, которые работают без поддержки IT. Технологии помогают повышать эффективность работы, поддерживать высокий уровень безопасности на производстве, соответствовать требованиям рынка — сегодня, например, растет спрос на высококачественные марки стали. Устойчивое развитие также невозможно представить без диджитализации.  Металлургии необходимы инновации, и для участников EVRAZ AI Challenge мы подготовили задачи, соответствующие реальным запросам бизнеса. О том, что из этого получилось — под катом.  EVRAZ AI Challenge прошел в онлайне с 29 по 31 октября. Основными инструментами для общения стали Zoom и Telegram, а зарегистрироваться, собрать команду и сделать сабмиты участникам помогла специальная онлайн-платформа. Организовать и провести хак нам помогла команда Phystech.Genesis.  Хакатон длился 48 часов.  Участвовать могли как индивидуальные разработчики, так и команды до 5 человек. Мы приглашали архитекторов баз данных, дата-инженеров, аналитиков данных, специалистов по машинному обучению.     Рассказываем о двух треках EVRAZ AI Challenge. Трек 1: Продувка металла через Data Science. Командам нужно было разработать модель, прогнозирующую содержание углерода и температуру чугуна во время и по завершению процесса продувки металла на кислородном конвертере. Подробнее о задаче. При производстве стали чугун «продувается», т.е. насыщается кислородом. Этот процесс идет в среднем 15-25 минут при температуре около 1600 градусов. За процессом следит машинист дистрибьютора: на основе своего опыта и знаний он решает, когда продувку нужно остановить. Если «передуть» чугун, сгорит больше полезной части расплава — на выходе получится меньше стали, и компания потеряет часть прибыли. А если «не додуть», то марка стали не будет соответствовать заданным критериям качества. Процесс продувки придется запустить повторно, и это снизит производительность цеха.   Соответственно, участникам нужно было разработать алгоритм прогнозирования параметров чугуна для помощи машинистам и повышения экономической эффективности производства ЕВРАЗа. Но обеспечить качественное предсказание — только половина дела. Важно понимать ограничения прогнозной модели и то, каким образом ее можно задействовать в оптимизации производственного процесса.   Для того, чтобы у наших участников не случилось синдрома Kaggle-а, когда люди не спят ночами, пытаясь улучшить модель на 0.01%, мы использовали следующую систему критериев оценки проектов этого трека (используется 10-балльная шкала): Техническая реализация: скор в контесте и степень технической реализации решения. Вес критерия: 65% оценки Бизнес-ценность: чем ваше решение может помочь машинисту процесса продувки металла? Вес критерия: 20% оценки Качество проработки и оформление: насколько ваша команда хорошо выступила перед членами жюри. Вес критерия: 15% оценки Благодаря такому распределению, с одной стороны, мы сохраняем возможность победить для тех, чья модель будет драматически лучше, вне зависимости от продемонстрированного понимания задачи. С другой стороны, при небольших отличиях между моделями (это, как правило, зависит от удачи) мы оставляем возможность победить в частной схватке аналитических умов.  Трек 2: Компьютерное зрение для контроля опасных зон агломашины. Здесь требовалось автоматизировать контроль безопасного проведения работ на агломерационной фабрике. Подробнее о задаче. На одном из заводов по обработке металла происходит непрерывное перемещение сырья: концентрата из руды и агломерата. Для их перемещения используется аглолента — ограниченная заборчиком лента около 6 метров в ширину. Агломашина работает непрерывно, процесс контролируют рабочие. 3 раза в день они проверяют, что сырье не просыпается, гайки закручены, а зазоры на ленте отсутствуют. Также за работой агломашины следит диспетчер при помощи видеокамеры. Всего на производстве установлены две камеры: одна у агломашины, вторая — в рубке диспетчера. Иногда на производстве происходят инциденты. Рабочие пытаются дотянуться до агломашины руками, подкручивают гайки на ходу. Это запрещено техникой безопасности и опасно: сотрудник может оступиться и получить серьезную травму. Для обеспечения контроля безопасности мы предложили использовать камеры, детекцию людей и травмоопасных ситуаций — моментов, когда сотрудник входит в опасную зону. По аналогии с первым треком, мы стремились избежать борьбы за микроулучшения в моделях — система критериев оценки выглядела очень похоже: Техническая реализация за задачу обнаружения сотрудника: результат на лидерборде. Вес критерия: 55% оценки Техническая завершенность: насколько решение воспроизводимо в production, как оно упаковано для развёртки (s2i, venv, Docker, Kubernettes, Helm или просто jupyter notebook по рецепту "без ничто"). Вес критерия: 15% Бизнес-ценность: чем решение может помочь безопасности сотрудников? Вес критерия: 10% оценки Качество проработки и оформление: качество кода, дизайн и эргономичность, качество представления продукта, включая проведение презентации продукта. Вес критерия: 20% оценки. Общий комментарий по системе оценок проектов: Отбор на финальные питчи мы проводили по топ-7 лидерборда, а на самих питчах члены жюри уделяли внимание не только скору на лидерборде, но и воспроизводимости решения, проработке бизнес-части и презентации проектов.  В конечном итоге, топ лидерборда получился очень плотным (в полном соответствии с ожиданиям), расчет проводился по формуле 10*(скор/скор максимальный). И на питчах решающими оказались критерии, которые, казалось бы, «весят меньше». Жюри планировало это заранее — метод оценки был выбран не случайно. Участникам хотели показать, что при внедрении в реальное производство технические метрики часто отходит на второй план. В реальной жизни приходится делать выбор в пользу технологичности, воспроизводимости и продуманной экономики решения, а не «позиции в лидерборде». Проекты участников рассматривали семь членов жюри: представители ЕВРАЗа (директор по развитию цифровой трансформации Максим Феопентов, руководитель проектов цифровой трансформации Антон Мельников, начальник управления ИИ Андрей Зубков, главный специалист управления ИИ Алексей Паульс) и жюри из других компаний (основатель и директор Data Monsters Артемий Малко, основатель EORA.ru Роман Доронин и основатель ORI.team Андрей Рагимов). В каждом из треков были выбраны и награждены три команды-победителя. ТРЕК 1 В первом треке приняли участие 83 команды. 1 место заняла команда DSteam. В нее входили два специалиста:  Краткое описание проекта: В рамках хакатона команда обучила нейронную сеть для моделирования температуры чугуна и содержания углерода во время процесса продувки металла. Модель показала точность 0.61 по метрике хакатона, но содержит ряд возможностей для дальнейшего улучшения. Кроме того, на основе модели был разработан прототип советчика оператора по продувке металла, позволяющий моделировать температуру и содержание углерода во времени с учетом управляющих воздействий. Комментарий команды:  Мы получили массу удовольствия от участия в этом мероприятия и, чего уж тут скрывать, восторг, что нам удалось убедить жюри отдать первое место именно нам при таком уровне конкуренции! Хочется отметить, что организация хакатона была на высочайшем уровне, эксперты очень подробно отвечали на вопросы, давали  обратную связь. Во время самого мероприятия судьи добавили возможность выбора финального решения. Задача сама по себе очень интересная. Настоящий вызов — погружение в настолько сложный производственный процесс, попытка привнести туда что-то из мира машинного обучения. Очень радует то, что задача рассматривалась не только в рамках DS, но и в рамках бизнеса. То есть требовалось описание подхода и серьезное вложение интеллектуальных усилий. Мы получили настоящее удовольствие от двух дней полного погружения в мир и технологии плавки металла. Приз команды: 120 000 рублей. 2 место заняла команда 101-team, в состав которой вошел всего один участник: Краткое описание проекта: Никита предложил разработку системы контроля продувки для помощи машинисту дистрибутора. В основу системы заложено три функционала: поиск похожих продувок на истории данных, раннее обнаружение аномалий в работе дистрибьютора и прогноз показателей чугуна на текущий момент продувки. Первый компонент позволит быстрее обучать новых сотрудников и минимизировать ошибки прошлых операций. Второй сделает работу машиниста менее опасной, превентивно предупредив его о возможных неисправностях. А третий обеспечивает машинисту базу для оценки текущего состояния продувки. В целом, система сокращает текущие убытки компании из-за повторяющихся аномалий на производстве и ускоряет процесс обучения сотрудников. Комментарий участника:  Решил участвовать, так как люблю периодически разминаться — переключаться с основной работы на интересные реальные кейсы из других сфер (сам работаю в ретейле). Для меня соревнования —  самый быстрый способ встряхнуться и найти новые идеи и методологии в сфере DS. Победа — всегда приятно, особенно когда есть сильные соперники (а они тут были). Хакатон был проведен достаточно грамотно, как с точки зрения организации, так и с точки зрения DS-соревнования. Организаторы быстро реагировали и давали обратную связь, стараясь оптимизировать условия мероприятия для всех его участников. Приз команды: 80 000 рублей. 3 место заняла команда waico.ru: Краткое описание проекта: Команда ориентировалась на реалистичность и интерпретируемость решения. Она долго работала с признаками (очистка, преобразование, генерация, отбор), а в финальную модель включила всего 8 отобранных признаков. Лучшие результаты для задач прогноза температуры и концентрации углерода в конце процесса продувки металла давала модель CatBoost. Тем не менее участники работали над обучением линейной модели, чтобы не только увеличить интерпретируемость, но и упростить решение обратной задачи и создания рекомендательной системы (помощника) для операторов по параметрам продувки. Комментарии участников:  Классный хакатон с реальными данными и задачами. Возможно, не хватило общения с экспертами (бизнес-заказчиками), чтобы лучше понять видение целевого решения бизнес-задачи. Понравилось, что было много сильных команд, поэтому особенно приятно занять одно из призовых мест. Кроме того, хотелось бы отметить высокий уровень экспертов-жюри. Приз команды: 50 000 рублей. ТРЕК 2 Во втором треке приняли участие 35 команд. К слову, 5 команд записались сразу на оба трека. 1 место заняла команда Just me, которая состояла из одного человека:  Краткое описание проекта: В состав решения вошло 2 нейросети на основе Yolo v5. Первая — для детекции всех людей на фото. Вторая — для детекции тех рабочих, которые пытаются делать что-то руками в запрещенной зоне агломашины, нарушая технику безопасности. Обе нейросети показали высокую точность на тестовом датасете, по просьбе организаторов они были упакованы в докер-образы. Комментарий участника:  Хакатон мне понравился, задача была вполне соразмерная выделенному времени, был предоставлен датасет оптимального размера и разметка к нему. Организаторы хорошо подготовились к хакатону.  Своей победой я очень доволен. Это был первый раз, когда я участвовал в таком мероприятии в одиночку. Я усердно работал над проектом почти все выделенное для хакатона время, поэтому надеялся на положительный результат.  Приз команды: 120 000 рублей. 2 место заняла команда ammarali32, в которой тоже был один участник: Краткое описание проекта: Задача была решена путем создания скелетов Mediapipe с разработкой модели классификации обучения по изображениям скелета. Положение стыков в конкретном изображении дает возможность распознать потенциально опасные действия сотрудников и предотвратить возникновение инцидента. Комментарий участника:  Я очень рад принять участие в хакатоне. Было действительно интересно. В итоге, заняв второе место, я остался доволен. Но знаю, что могу добиться большего. Приз команды: 80 000 рублей.   3 место заняла команда Hard Chill: Краткое описание проекта: Участники рассказали, что пошли по достаточно очевидному пути с использованием ансамбля детекторов на Yolo v5 с разными аугментациями и тонкими настройками трешхолдов. Упаковали решение в докер в последний момент, параллельно проработав задачу с точки зрения бизнеса. Комментарий команды:  Формат понравился, не было лишних чекинов и созвонов. Все участники спокойно и приятно общались, инфраструктура для демонстрации результатов тоже была удобная. Но немного не хватило персональной отработки решений с экспертами. Победа была очень приятной, но еще важнее для нас было ознакомиться с промышленной задачей. Наша команда развивается в сторону промышленного анализа данных, поэтому нам очень важны и интересны подобные соревнования. Приз команды: 50 000 рублей. EVRAZ AI Challenge стал масштабным событием с широкой географией. Мы получили 647 заявок и отобрали 113 команд (или 271 человека). 90 команд в итоге сделали сабмиты. Заявки поступали из большого количества регионов. В хакатоне «участвовали» Москва, Санкт-Петербург, Чебоксары, Долгопрудный, Новосибирск, Саров, Казань, Тюмень, Сергиев Посад, Шадринск и другие города России. Конечно, кроме призов и признания, команды получили дополнительные бонусы: Развитие: прокачали свои скиллы вместе с экспертами ЕВРАЗа. Нетворкинг: познакомились с людьми со схожими интересами. Карьера: получили возможность попасть в команду ЕВРАЗа. Всем участникам большое спасибо!