IT & Digital
Компьютерное зрение для определения дефектов, VR/AR в обучении, экзоскелеты для облегчения труда — мы используем технологии, которым необходим качественный рабочий код. У наших IT-специалистов исключительно интересные и продвинутые задачи.
0:26
Цифровая сталь
2000
сотрудников
20
городов, где работает «Северсталь-инфоком»
6,7
млрд рублей — инвестиции в IT и диджитал
Big data управляет заводами
Как мы прокачали телеметрию крупного металлургического комбината
Более двух тысяч команд улучшали нашу нейросеть для поиска дефектов на металле
Как мы организовали соревнование на Kaggle
Vera в нейросети
«Северсталь» улучшила решение для поиска и классификации дефектов металла
Severstal deploys AI at Cherepovets steel mill
Severstal has started using a machine learning model to control speed optimisation at the Cherepovets steel mill’s continuous pickling line.
Causal inference for a steel mill.
How to create a data science product for a steel mill
2:43
Единая система управления инженерными данными в «Российской стали»
«Цифровое сердце» компании.
Платформа нового поколения S/4HANA, которая заменит SAP ERP
37:20
Использование Кафки в стальном производстве
Цифровое сердце компании
Диджитал в шахтах и цехах: почему IT-специалисты идут в промышленность
Блог «Северстали» на Habr.com
Это неизбежно... и отлично!
AR не сразу строилась
5:03
Слово эксперту
Интервью с директором «Северсталь Диджитал» Борисом Воскресенским
5:40
Поговорим о цифровых компетенциях
Сергей Дунаев, CIO
7:22
Трансформация в лицах: готовимся к будущему!
Интервью с Марией Лорман

Не нашли
подходящей
вакансии?

Оставьте свой e-mail и получайте уведомления
при появлении новых вакансий
Вакансии в IT & Digital
Все города
Все предприятия
digital
it
айти
диджитал
Разработчик SQL (Sybase)
Санкт-Петербург (Северсталь-инфоком)
DevOps инженер
Москва
Младший специалист направления "Автоматизация процессов интегрированного планирования"
Череповец (Северсталь-инфоком)
Старший специалист направления "Автоматизация процессов интегрированного планирования"
Череповец (Северсталь-инфоком)
Администратор системы мониторинга Zabbix
Череповец (Северсталь-инфоком)
Старший консультант SAP SD PP
Москва (Северсталь-инфоком)
Младший специалист SAP Solution Manager
Череповец (Северсталь-инфоком)
Администратор систем виртуализации (VMware vSphere, MS Hyper-V)
Череповец (Северсталь-инфоком)
Ведущий специалист SD
Череповец (Северсталь-инфоком)
Backend-разработчик (удаленно)
(Северсталь-инфоком)
Старший javascript (front-end) разработчик
Санкт-Петербург (Северсталь-инфоком)
Менеджер по информационной безопасности (администрирование сетевых средств защиты)
Москва (Северсталь Менеджмент)
Системный аналитик
Москва (Северсталь-инфоком)
Администратор хостинга web-приложений
Череповец (Северсталь-инфоком)
Специалист DevOps
Череповец (Северсталь-инфоком)
Менеджер проекта "Цифровая сталь"
Москва (Северсталь Менеджмент)
Младший консультант SAP
Воронеж (Северсталь-инфоком)
Специалист
Тюмень (Северсталь-инфоком)
Стажёр 1 линия
Череповец (Северсталь-инфоком)
Младший консультант
Череповец (Северсталь-инфоком)
Менеджер по верхнеуровневой автоматизации
Череповец (Северсталь-инфоком)
DevOps Engineer
Воронеж (Северсталь-инфоком)
Руководитель проекта
Воронеж (Северсталь-инфоком)
Специалист поддержки SAP MM
Воронеж (Северсталь-инфоком)
Стажёр технической поддержки программного обеспечения
Череповец (Северсталь-инфоком)
Старший разработчик
Москва (Северсталь-инфоком)
Специалист группы разработки Upstream
Череповец (Северсталь-инфоком)
Специалист (программист)
Череповец (Северсталь-инфоком)
Специалист-программист
Череповец (Северсталь-инфоком)
Программист
Череповец (Северсталь-инфоком)
Разработчик JS
Воронеж (Северсталь-инфоком)
Менеджер по информационному моделированию
Череповец (Череповецкий металлургический комбинат)
Менеджер системы управления инженерными данными
Череповец (Череповецкий металлургический комбинат)
Стажер роботизации процессов
Ярославль (Северсталь-Центр Единого Сервиса)
Аналитик данных
Санкт-Петербург (Северсталь Менеджмент)
Консультант SAP BW
Санкт-Петербург (Северсталь-инфоком)
Специалист отдела ТОиР в компанию Делетрон
Москва
Ведущий разработчик
Воронеж (Северсталь-инфоком)
Разработчик java
Москва (Северсталь-инфоком)
Ведущий разработчик javascript с упором на nodejs
Санкт-Петербург (Северсталь-инфоком)
Младший специалист
Воронеж (Северсталь-инфоком)
Разработчик Java Script
Москва (Северсталь-инфоком)
Разработчик JavaScript
Москва (Северсталь-инфоком)
Специалист по информационной безопасности
Череповец (Северсталь Менеджмент)
Специалист по ведению каталогов
Череповец (Череповецкий металлургический комбинат)
Старший разработчик Java
Москва (Северсталь Диджитал)
Специалист/Старший специалист SAP HCM (HR)
Череповец (Северсталь-инфоком)
Ведущий разработчик OpenText (ЭДО)
Санкт-Петербург (Северсталь-инфоком)
Специалист (по управлению данными АСУТП и КИПа)
Череповец (Северсталь-инфоком)
Младший специалист SAP SD (сбытовая логистика)
Новосибирск (Северсталь-инфоком)
Старший специалист SAP SD (сбытовая логистика)
Новосибирск (Северсталь-инфоком)
Консультант SAP SD(сбытовая логистика)
Новосибирск (Северсталь-инфоком)
Архитектор по SAP SD(сбытовая логистика)
Москва (Северсталь-инфоком)
Специалист по информационной безопасности
Череповец (Северсталь Менеджмент)
Ведущий специалист
Череповец (Северсталь-инфоком)
Специалист ТОиР (ДП)
Череповец (Северсталь-инфоком)
Программист 1С
Санкт-Петербург (Северсталь-инфоком)
Аналитик данных
Череповец (Северсталь-инфоком)
Специалист критической информационной инфраструктуры
Костомукша (Карельский окатыш)
77000 ₽
Руководитель направления
Санкт-Петербург (Северсталь-инфоком)
Специалист (автоматизированные системы управления технологическими процессами)
Костомукша (Карельский окатыш)
Руководитель группы системной аналитики
Москва (Северсталь-инфоком)
Менеджер по управлению организационными изменениями
Москва (Северсталь-инфоком)
Специалист (по автоматизации)
Череповец (Северсталь-инфоком)
Консультант OpenText
Москва (Северсталь-инфоком)
Специалист (по управлению данными АСУТП)
Череповец (Северсталь-инфоком)
Старший консультант SAP SD
Москва (Северсталь-инфоком)
Специалист группы разработки UPSTREAM Oracle
Череповец (Северсталь-инфоком)
Стажер-консультант
Санкт-Петербург (Северсталь-инфоком)
Менеджер
Москва (Северсталь-инфоком)
Администратор проекта
Череповец (Северсталь-инфоком)
Сервис-менеджер
Москва (Северсталь-инфоком)
Системный администратор
Череповец (Северсталь-инфоком)
Ведущий специалист
Москва (Северсталь-инфоком)
Старший консультант SAP BW
Москва (Северсталь-инфоком)
Разработчик ПО
Череповец (Северсталь-инфоком)
Руководитель проекта
Москва (Северсталь-инфоком)
SQL разработчик (направление отчетности)
Череповец (Северсталь-инфоком)
Консультант SAP SD
Новосибирск (Северсталь-инфоком)
Разработчик C# (vsto, backend)
Воронеж (Северсталь-инфоком)
Младший консультант SAP APO
Череповец (Северсталь-инфоком)
Менеджер
Череповец (Северсталь-инфоком)
Старший специалист SAP SD
Новосибирск
Ведущий эксперт
Череповец
Старший специалист ЭДО (OpenText)
Воронеж
Старший консультант/Архитектор по SAP SD
Москва (Северсталь-инфоком)
Старший менеджер по информационной безопасности
Воркута (Северсталь Менеджмент)
Аналитик систем безопасности в компанию Делетрон
Москва (Северсталь Менеджмент)
Менеджер по информационной безопасности
Санкт-Петербург (Северсталь Менеджмент)
Специалист группы разработки
Череповец (Северсталь-инфоком)
Администратор систем хранения данных/сетей SAN
Череповец (Северсталь-инфоком)
Администратор Oracle
Череповец (Северсталь-инфоком)
Системный администратор (стажёрская программа)
Воронеж (Северсталь-инфоком)
Системный администратор (стажёрская программа)
Череповец (Северсталь-инфоком)
Менеджер (ЯГОК)
Яковлево (Северсталь-инфоком)
Специалист технической поддержки (стажёрская программа)
Череповец (Северсталь-инфоком)
Специалист технической поддержки (стажёрская программа)
Воронеж (Северсталь-инфоком)
Android-разработчик (удаленно)
Череповец (Северсталь-инфоком)
Менеджер проектов
Оленегорск (Северсталь-инфоком)
Младший разработчик (стажёрская программа)
Череповец (Северсталь-инфоком)
Специалист SAP (стажёрская программа)
Череповец (Северсталь-инфоком)
Специалист SAP (стажёрская программа)
Воронеж (Северсталь-инфоком)
Младший разработчик (стажёрская программа)
Воронеж (Северсталь-инфоком)
Специалист ИТ
Череповец (Северсталь-инфоком)
Старший консультант SAP CRM
Москва (Северсталь-инфоком)
Ведущий специалист по информационной безопасности
Череповец (Северсталь Менеджмент)
Бизнес-аналитик
Череповец (Северсталь-инфоком)
Ведущий специалист (разработка программного обеспечения)
Череповец (Северсталь-инфоком)
Программист
Череповец (Северсталь-инфоком)
iOS-разработчик (удаленно)
Череповец (Северсталь-инфоком)
Специалист по информационной безопасности
Москва (Северсталь Менеджмент)
PHP-разработчик
Москва (Северсталь-инфоком)
Разработчик Java Middle (удаленно)
Воронеж (Северсталь-инфоком)
Ведущий специалист
Череповец (Северсталь-инфоком)
Инженер проектировщик АСУ ТП
Колпино (Северсталь Менеджмент)
Старший специалист по нагрузочному тестированию (Цифровая сталь)
Москва (Северсталь-инфоком)
Менеджер (1С)
Череповец (Северсталь-инфоком)
Ведущий сетевой инженер
Череповец (Северсталь-инфоком)
Fullstack разработчик
Санкт-Петербург (Северсталь-инфоком)
Менеджер (ИТ Консультант)
Москва (Северсталь-инфоком)
Тестировщик
Воронеж (Северсталь-инфоком)
Ведущий разработчик OpenText
Санкт-Петербург (Северсталь-инфоком)
Технический архитектор - ИТ Сервисы
Череповец (Северсталь-инфоком)
Специалист - Старший специалист
Череповец (Северсталь-инфоком)
Ведущий эксперт (автоматизация и цифровые технологии)
Череповец (Череповецкий металлургический комбинат)
Специалист (разработка программного обеспечения)
Череповец (Северсталь-инфоком)
Специалист по нагрузочному тестированию
Москва (Северсталь-инфоком)
Тест-менеджер R2R(МСФО, Налоги, Базовый учет)
Москва (Северсталь-инфоком)
Консультант SAP Solution Manager
Москва
Разработчик JavaScript (удаленный формат)
Воронеж (Северсталь-инфоком)
Старший специалист функционального тестирования
Воронеж (Северсталь-инфоком)
Все вакансии
Центральный ФО
Северо-Западный ФО
Южный ФО
Сибирский ФО
Приволжский ФО
Предприятия

Как мы прокачали телеметрию крупного металлургического комбината

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

Как сейчас: сбор данных по оптике

Для сбора информации с наиболее критичного оборудования мы используем оптическую сеть. У такого решения есть масса преимуществ. Это отличная среда передачи для сценария, где важны объёмы транслируемой информации и гарантии доставки с минимальными задержками.

Однако на деле это достаточно дорогое решение, причём и в строительстве, и при эксплуатации. И потому, что у системы должна быть возможность постоянно дооснащаться новыми датчиками, чтобы точнее знать о текущем состоянии каждого узла и агрегата. И потому, что на промышленном предприятии сложные условия окружающей среды, так что сети периодически приходят в негодность: их обрывают в результате работ на оборудовании, расплавляют высокими температурами и т.п.

В общем, кабель порой приходится прокладывать заново, что влечёт как финансовые затраты, так и производственные риски. Ведь ситуационный центр нашей службы мониторинга состояния оборудования (СМСО), который следит за состоянием агрегатов по стационарным системам мониторинга и, соответственно, предотвращает аварии на оборудовании, становится «слепым» на время восстановления.

Ещё одним недостатком коммутируемых решений можно назвать невозможность использовать их повсеместно. Есть узлы, куда проводной датчик поставить невозможно, например вращающиеся ролики.

В попытках снизить стоимость инфраструктуры и повысить оперативность подключения новых датчиков мы начали смотреть на беспроводные решения. В некоторых цехах задействовали промышленный Wi-Fi. Однако сигналы его частотного диапазона уж очень хорошо экранируются металлическими конструкциями внутри цехов, так что требования к бесперебойности сигнала не удовлетворяются. Пришлось искать альтернативу.

Пилот на LoRaWAN

Мы рассматривали несколько вариантов, в том числе Private LTE и NB-IoT. Смотрели и в сторону проприетарных решений. Но в итоге остановились на LoRaWAN, на базе которого и развернули пилотный проект. Он показал неоспоримые плюсы.

Частотный диапазон

Главный плюс, пожалуй, заключается в том, что сеть LoRaWAN, в отличие от Wi-Fi, работает в частотном диапазоне до 1 ГГц (кстати, нелицензируемом) с возможностью изменения параметров передачи. Высокая проницаемость субгигагерцевых сигналов позволяет передавать данные даже из подвала, который находится под металлопрокатным станом. Именно этот результат вдохновил нас больше всего.

Производители оборудования LoRaWAN заявляют дальность связи до 5 км в сложных условиях. В ходе пилотного внедрения в условиях «повсеместного металла» удалось получить устойчивый сигнал в радиусе 2,5 км от базовой станции. Для этого проекта мы ставили условие потери не более 5 % пакетов при передаче, но в течение полугода эксплуатации потери не превышали 1 %. Наши расчёты показывают, что 9 базовыми станциями, установленными на высоких объектах завода (трубах и т. п.), мы покроем сетью всю территорию, при этом будем работать не на предельных расстояниях, а с запасом.

Стоимость технологии

Подсчёты показали, что развертывание сети LoRaWAN для решения нашей задачи более чем в 10 раз дешевле аналогичной оптической.

Оценивая бюджет будущего масштабного проекта, мы учитывали не только стоимость передачи данных, но и затраты на подключение к сети существующих локальных контрольно-измерительных приборов (КИП). На рынке есть LoRaWAN-модемы, которые можно подключить к существующим КИП, не предпринимая серьёзной модернизации. Они избавляют от необходимости дооснащать линии датчиками там, где они уже есть.

Открытый протокол

Но даже получив хорошие результаты в частотном диапазоне LoRaWAN, мы всё ещё смотрели и на проприетарные протоколы того же участка спектра, которые заявляют большую скорость передачи данных. Они действительно работают: передают более серьёзные объёмы информации или значительно уменьшают интервал дискретности передачи. Но зависимость от вендора в условиях нашего «зоопарка» технологий не лучшая идея. Да и с точки зрения конкурентоспособности мы не хотели бы замыкаться на конкретных производителях, когда есть классическая открытая LPWAN-система.

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

Автономность устройств

Автономность LoRa-устройств закрывает проблему невозможности монтажа проводных решений на некоторых узлах. Но при этом мы упираемся в энергопотребление. Если нет проводной сети, то, как правило, нет и электрического кабеля. Поэтому новый вопрос — замена батарей, которые обеспечивают эту автономность. Обидно будет, если дешёвая технология сбора информации с датчиков существенно поднимет затраты на обслуживание, например на штат сотрудников, которые целыми днями будут ходить по предприятию и менять, менять, менять батарейки.

Устройства LoRaWAN, которые мы тестировали в рамках пилота, при передаче раз в 5 минут продержали заряд более 3 месяцев. А это как раз минимальный срок, который нас устраивает.
Конечно, кому бы не хотелось, чтобы батареи работали год? Но тут многое зависит от условий работы. Очевидно, что при частой отправке данных или при минусовых температурах (если датчики находятся на улице зимой) длительность автономной работы будет меньше. Но мы не оставляем надежд найти партнёров, которые будут производить более энергоэффективные устройства или использовать новые типы батарей.

Безопасность

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

Ложка дегтя

Безусловно, у LoRaWAN есть недостатки. Главный заключается в невозможности передавать большие объёмы информации — у стандарта очень низкая пропускная способность. К тому же сигнал дискретен, то есть данные не «льются» онлайн. Сейчас устройства отправляют информацию раз в 5 минут — минимально возможный промежуток времени между пакетами на нашем пилотном стенде. Это ограничивает сферу применения LoRa, но не заставляет нас полностью отказываться от дешёвого и удобного по многим показателям стандарта.

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

«Боевой» проект

Масштабное внедрение на промплощадке в Череповце только стартует. Активная фаза проекта запланирована на 2021 год.

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

Тот факт, что LoRaWAN работает в нелицензируемом диапазоне, может добавить нам неожиданностей в радиоэфире, когда мы начнём устанавливать устройства повсеместно. Вполне ожидаемо, что на территории найдутся слепые зоны, где мы не сможем по каким-то причинам собирать информацию. Будем решать по месту — ставить ретрансляторы, добавлять базовые станции или искать иные решения.

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

Не исключаю, что со временем у нас появятся и другие беспроводные промышленные решения, например Private LTE. Он может пригодиться там, где мы, с одной стороны, не можем протянуть провода, а с другой, всё же вынуждены передавать большие объёмы данных. Например, видеоданные с камер на удалённых площадках. Такой «зоопарк» решений — это неплохо, когда каждое из них используется там, где это наиболее целесообразно.

Проект с LoRaWAN наверняка будет тиражироваться на других площадках «Северстали». Уже сейчас нам поступает много запросов от коллег. А некоторые предприятия, оценив пилот, не стали дожидаться результатов нашего полномасштабного внедрения и запустили собственные проекты. Коллегам понравилась экономичность и уровень надёжности передачи данных с использованием этой технологии. Если мы в своих задачах отталкиваемся от мониторинга, то они решают с помощью LoRaWAN иные задачи, например контроль расходов электроэнергии и воды.

Диджитал в шахтах и цехах: почему IT-специалисты идут в промышленность

Кто-то после института учит детей программированию, а кто-то — участвует в стройке ГОК на севере Забайкалья. Кто-то все меньше внимания уделяет фронтенду и изучает биоинформатику, а кто-то счастлив вдыхать жизнь в промышленных монстров. Это реальные истории, рассказанные нам участниками опроса, который мы устроили вместе с Хабром. Мы показали эти результаты нашим айтишникам, попросили сравнить их с собственным опытом и помочь разобраться, почему программисты выбирают работу в промышленности и какой видят её изнутри. Результат — истории под катом: как создаются VR-тренажёры для суровых металлургов, как можно прокачаться на комбинате и из каких компонентов состоит айтишное счастье. Поехали!

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

Какие задачи влияют на выбор работы

 Приветствую, Хабр, меня зовут Максим Паршонок, я — разработчик AR/VR-решений. Попал в Северсталь прямиком из вуза. Пока учился, мечтал об интересных и необычных задачах, о GameDev'e — в целом по результатам опроса тоже попадал в «среднее по палате» на Хабре и именно так начал работать в Северстали. Когда учился на третьем курсе, меня пригласили на мероприятие для студентов в Северсталь-инфоком. Через некоторое время позвали на собеседование и предложили как раз те задачи, о которых я мечтал: разрабатывать VR- и AR-приложения и работать с 3D-графикой. Я согласился, не раздумывая.

На работе я:

Как Бэтмен: спасаю жизни и оборудование

Наша команда занимается разработкой приложений виртуальной и дополненной реальности. Мы создаём приложения для нескольких направлений: маркетинг, промышленная безопасность и обучение промышленным технологиям; делаем обучающие приложения под ключ с нуля: человек надевает 3D-очки и учится в виртуальной реальности. Например, мы делали приложение для Яковлевского ГОК. Его задача — обучить человека быстро выбраться из шахты в случае ЧП, например, при задымлении или обвале. Такую ситуацию не смоделируешь в реальных условиях. А в случае ЧП счёт пойдёт на минуты, поэтому важно, чтобы человек мог отработать план действий с помощью обучающего приложения.

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

Ещё один проект, который очень мне запомнился: компьютерная игра 3D-полигон. На предприятиях Севергрупп есть уже около 10 классов виртуальной реальности. То, что это программа для ПК без VR, позволило увеличить её аудиторию и быстро обучить много людей. С её помощью уже обучили около 500 мастеров. В программе игрок страхует грузы, выбирает нужные СИЗы, поднимает и перемещает груз с помощью крана, соблюдая технику безопасности. Нарушения приводят к поломкам оборудования или травмам на производстве. Всё очень наглядно.

Применяю игровые технологии для серьёзных задач

Мы даём людям новые способы обучения, и это эффективнее, чем простое штудирование теории. VR обеспечивает погружение в процесс: человек из учебной аудитории переносится в виртуальный цех и действует уже там. Такой подход повышает вовлечённость, он безопаснее и гораздо интереснее.
VR позволяет симулировать любые действия, которым человек не может обучиться в реальных условиях. Например, при отработке действий при аварии или пожаре работники тренируются правильно реагировать на ЧП в безопасной цифровой среде без риска для оборудования и своего здоровья. Раньше тренировки проводились в живом режиме раз в несколько месяцев. Ради них приходилось останавливать работу цехов, а теперь эти же задачи отрабатываются, с одной стороны, чаще, а с другой — не влияют на рабочий процесс.

На нашу работу иногда смотрят скептически. Например, мы делали тренажёр для для коксового машиниста: распечатали на 3D-принтере копии реальных контроллеров для перемещения машины и интегрировали Leap Motion — устройство захвата движений рук. В процессе работы к нам приходили эксперты для консультаций — и реакция была такая, будто мы в игрушки играем. Но когда мы доделали тренажёр и они увидели результат — их мнение сразу изменилось. Сказали, как жаль, что их так не учили. В такие моменты я чувствую, что моя работа значима и делает жизнь людей лучше.

Гуляю по шахте и учусь дышать под землёй

На работе мне постоянно нужно вникать во что-то новое. Когда мы делали тренажёр для Яковлевского ГОКа, нужно было спуститься в шахту. Сложно передать даже эту атмосферу. Шахта находится глубоко под землёй, там около 700 метров глубины. Чтобы спуститься, нужно пройти инструктаж и медосмотр, надеть много экипировки, научиться работать с самоспасателем. Это такая штука, благодаря которой можно около двух часов дышать под землёй в случае задымления. Спускаться в шахту нужно в специальном лифте — клети.

В самой шахте очень темно и холодно, а в некоторых местах, наоборот, жарко и душно. Ещё там огромное число коридоров — можно заблудиться. Меня удивило, что там бывают лужи и даже дождь. Там, под землёй, ездят машины и работает мощное оборудование, работают люди. Но там физически тяжело находиться. Чувствуешь облегчение, когда поднимаешься оттуда. Побывав в шахте, я понял, что работать разработчиком — это на самом деле круто и легко.

Какие возможности обязательны

Привет, Хабр! Меня зовут Александр Мошаров, я руковожу группой веб-разработки в управлении по развитию новых технологий. И я с большинством Хабра. Возможность учиться, карьерного роста и работы из дома — да, как и для прошедших опрос, для меня это ключевые возможности. На работу в Северсталь меня пригласил бывший руководитель, который сам туда ушёл незадолго до меня. Я ушёл за ним и в результате:

Могу менять направления работы

Говорят, что у меня зависимость от этой работы, и думаю, что она у всей команды. Я не хочу с ней расставаться, и вот почему: никакого легаси, проекты с использованием облачных сервисов, возможность писать фронтенд и бэкенд, эксперименты с любыми языками программирования, фреймворками и базами данных, участие в тестировании новых инфраструктурных сервисов компании, работа с «железом».

Работа в R&D подразумевает большое количество черновых проектов. Я пришёл на должность разработчика и основной нагрузки ожидал на фронтенде, но всё пошло не по плану. В итоге пришлось поднимать Hyperledger Fabric, писать смарт-контракты на Ethereum, делать чат-боты, различные парсеры и дашборды, работать с нейронными сетями и инфраструктурой интернета вещей. Это не считая большого количества API и других мелких сервисов, а также самого фронтенда. Это не масштабные проекты, но очень разнообразные и интересные. Поэтому моя текущая должность — идеальна для развития, ведь я могу перейти с неё в другие направления и прокачивать не только технические навыки.

Учусь новому

В Северстали я не просто могу, а должен учиться, — это входит в мои годовые цели. А ещё в них входит изучение новых технологий с созданием прототипов. Кроме возможности (часто необходимости) прохождения внешних курсов есть и внутренние со своими тренерами, а также портал интерактивных курсов и электронная библиотека. Если сравнить внутренние курсы с внешними, то я не увидел особой разницы в качестве и подаче материала. Разница в контексте — информацию проще усвоить на реальных, знакомых тебе примерах.

Один из самых классных внешних курсов, которые я проходил, — курс на продакт-менеджера. Нам рассказали про подходы к генерации и развитию идей и их использование в существующих продуктовых командах, показали, как определить перспективы продукта, как работать с обратной связью и реагировать на негатив. Из внутренних великолепна была обучающая программа молодых руководителей. Выражаясь в терминах ООП, я получил доступ к родительскому классу каждого из своих сотрудников с его скрытыми свойствами и методами =)

Учусь на собственных ошибках

По прошествии некоторого времени, когда я уже проникся культурой и правилами Северстали, случилось происшествие, по итогам которого я познакомился с большим количеством руководителей. Был интересный проект интеграции внутреннего чат-бота с облачными сервисами искусственного интеллекта и тикет-платформой. Одной из последних задач стояло проведение нагрузочного тестирования сервиса. Я опущу согласования и подготовку, но вы понимаете, о чем я, да?

И дело даже не в том, что я на пару минут положил тикет-систему, а в том, что я успел создать несколько сотен тикетов со статусом ошибки, которые поддержка должна вовремя закрыть, иначе негативная оценка системы, годовые цели, премия…
Мне позвонили минут через 15 после теста и спросили, что я думаю делать со своими тикетами (оказалось, их нельзя просто удалить и не так-то просто отменить). Я собрал контакты всех участников цепочки обработки заявок и обзвонил их. Это был шок для меня: никакого негатива, то есть вообще никакого. Разумеется, все тикеты мне пришлось закрывать самому и делать это руками через интерфейс.

На этом уроке я усвоил несколько важных вещей:

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

На что айтишники проверяют работодателя

Привет, хабровчане. Я — Андрей Бойцов, java-разработчик. И я в одной обойме со всеми прошедшими опрос: для меня, с одной стороны, важны условия труда в компании, а с другой — возможности роста. Наверное, это потому, что я пришёл в Северсталь из маленького стартапа. У нас было всего 16 человек, в какой-то момент я понял, что достиг пика на этом проекте. Стало скучно, захотелось чего-то нового, а мне как раз предложили масштабные задачи, где я мог развернуться.

В Северстали я:

Решаю масштабные задачи

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

От моих задач зависит работа большого числа людей. Например, сейчас я занимаюсь проектом по геймификации работы. Проект охватывает всех сотрудников компании, в нём можно прокачать свои навыки, участвуя в различных мероприятиях, играх, вебинарах. За участие в активациях сотрудники получают баллы, так называемые инфокойны, которые можно обменять на товары магазина поощрений. Ещё один мой проект — интеграция двухсистемного ведения задач. Это когда сотрудник создаёт задачу в одной системе, а она тут же появляется в другой. В итоге на мне гораздо большая ответственность, но и результаты, какими бы они ни были, тоже становятся сразу видны.

Пользуюсь корпоративными возможностями

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

Как и любой крупной компании, Северстали требуются специалисты со знанием актуальных и новых инструментов, и она готова обучать своих сотрудников: в прошлом году, ещё до карантина, я посетил конференцию Jocker, а в этом — побывал на ней онлайн и получил важную информацию по текущим проектам. Ещё из бонусов, которыми приятно пользоваться: бесплатный доступ к библиотеке МИФ, скидки от наших компаний-партнёров (TUI, Лента). А ещё по итогам работы компания выплачивает достаточно хороший годовой бонус.

Спрос на инновации и вау-эффект как бонус

А ещё работа в промышленной сфере — это шанс не только увидеть доменную печь, плывущий по ленте раскаленный металл и БелАЗы с колёсами в человеческий рост, но и сделать работу с ними проще, безопаснее, производительнее. Так что правы те участники опроса (а их больше половины), которые убеждены, что промышленность — перспективное направление карьеры для IT-специалиста.

Более двух тысяч команд улучшали нашу нейросеть для поиска дефектов на металле

Как мы организовали соревнование на Kaggle

В чём состояла задача

В производстве листового металла существует одна проблема — иногда на поверхности металла могут образовываться дефекты. Дефекты бывают разных типов в зависимости от причины их возникновения.

Например, механические повреждения — царапины, задиры или потёртости — возникают в основном вследствие износа металлопрокатного оборудования. Другие дефекты, такие как трещины или плёны, появляются, когда происходят отклонения от технологии при выплавке стали.

Плены и трещины на металле

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

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

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

Один из финальных участков производственной линии с готовой продукцией

Тем не менее нужно как-то решать проблему брака и не допускать, чтобы клиентам уходила продукция с дефектами. Для решения этой задачи в «Северстали» на большинстве агрегатов, участвующих в производстве плоского проката, установлены системы компьютерного зрения.

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

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

Основных причин этому три:

  • Дефицит данных. Если датасетов с кошками или собаками в свободном доступе предостаточно, то открытый датасет с дефектами поверхности металла до недавнего времени существовал только один. Этот датасет опубликовал Северо-восточный Университет США в Бостоне. Он включает всего 1800 изображений размером 200х200 пикселей для шести классов дефектов.
  • Сложные условия эксплуатации. Большой поток данных и непрерывность производства предъявляют высокие требования к скорости работы системы компьютерного зрения, что сильно ограничивает выбор моделей.
  • Очень высокие требования к используемым системам в плане качества работы. Система должна находить все дефекты, допуская как можно меньше ложных срабатываний.

Подготовка данных

«Северсталь» совершенствует свои технологические процессы и системы контроля качества. Когда мы решили использовать современные достижения в области компьютерного зрения и улучшить существующую систему детекции дефектов, встал вопрос подготовки обучающего датасета. Качественная обучающая выборка — это, наверное, 50% успеха всего проекта, поэтому мы подошли к этому вопросу с большим вниманием.

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

Уже после первой тренировочной разметки стало понятно, что размечать дефекты — совсем не то же самое, что размечать котиков. Мы столкнулись с несколькими проблемами, которые можно проиллюстрировать следующими изображениями:

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

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

Что же делать в таком случае? Нам нужно было в относительно короткие сроки (два-три месяца) при сильно ограниченных человеческих ресурсах разметить большой датасет. При этом хотелось, чтобы разметка была максимально качественной, и мы были если не на 100%, то хотя бы на 80% уверены в представленных типах дефектов.

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

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

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

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

Поэтому в итоге мы использовали следующий подход. Каждую картинку независимо размечали два аннотатора. Если оказывалось, что в получившихся разметках не совпадают типы дефектов или величина IoU (Intersection over Union) между отдельными инстансами дефектов ниже порогового значения, то такая картинка отправлялась на дополнительную разметку самому опытному из экспертов. После чего на основе трёх полученных разметок мы генерировали финальный, более точный вариант разметки.

Ещё один важный момент при подготовке обучающего датасета, который нельзя было не учитывать, — репрезентативность. Мы постарались включить в нашу выборку изображения, которые содержали все возможные текстурные особенности и типы поверхности металла, встречающиеся на производстве:

  • Металл с окалиной.
  • Изображения, на которых видно маркировку.
  • Металл с рифлением.
  • Изображения, где на поверхности металла присутствует грязь или масляные разводы.
  • Сталь разных марок.

Давайте посмотрим на некоторые из отобранных картинок. На следующих шести изображениях нет ни одного дефекта:

А вот так могут выглядеть изображения с дефектами:

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

Следующий шаг — baseline-модель

Лучший способ убедиться, что собранные данные позволяют решить вашу задачу, — обучить на них свою модель.

Примерно в середине работы по разметке data science-команда «Северстали» подготовила proof of concept на тех картинках, что уже были размечены. Мы обучили собственную baseline-модель детекции дефектов на основе AlbuNet-34. Двухмесячные пилотные испытания прототипа показали существенное улучшение по точности и полноте детектируемых дефектов по сравнению с исходной системой детекции.

Кроме того, испытания позволили обкатать процесс вывода модели в промышленную эксплуатацию — отладить подключение к источникам данных, проработать архитектуру ПО. Появилась уверенность в том, что мы не только в теории, но и на практике можем улучшить систему детекции дефектов. Нейросеть, запущенная в ЦОДе на сервере с парой GPU, в режиме реального времени детектировала дефекты на поверхности металла, прокатываемого в цехе, расположенном в паре километров от неё.

Итак, модель работает. Работает лучше, чем существующая система инспекции. Но можно ли её улучшить? Если да, то насколько?

Давайте устроим соревнование на Kaggle!

Тем, кто так или иначе связан с data science, не нужно объяснять, почему из всех существующих соревновательных платформ мы выбрали именно Kaggle. Для тех, кто мало знаком с этой темой, скажем, что Kaggle – это не просто сайт с соревнованиями по машинному обучению и анализу данных. Это крупнейшее сообщество, объединяющее специалистов в области data science со всего мира.

Если вы хотите понять, что вообще можно выжать из тех данных, которые у вас есть, то место лучше, чем Kaggle, сложно придумать. Над вашей задачей будут думать тысячи профессионалов. Соревнования на Kaggle устраивали такие компании и организации, как Microsoft, Facebook, CERN и другие. Российских компаний, проводивших свои соревнования по data science, совсем немного. На ум приходят «Авито», «Сбербанк» и «Яндекс». Мы подумали, что будет здорово, если «Северсталь» войдёт в их число.

Короче говоря, вопрос, где проводить соревнование, был решен быстро. Оставался ещё один: как его проводить?

Выбор формата соревнования

Kaggle предлагает много разных опций для организации соревнований. Например, так называемые code competitions, когда участники обязаны использовать только ресурсы самой платформы Kaggle для обучения своих моделей и инференса (вычисления, выполняемые моделью машинного обучения для получения предсказаний на тестовой выборке). Можно, наоборот, никак не ограничивать участников. Оба варианта имеют свои преимущества и недостатки.

Формат Code competition, ограничивая участников в вычислительных ресурсах, не позволяет слишком сильно повышать сложность моделей. Это ставит команды в равные условия и уменьшает вероятность ситуации, когда побеждает тот, у кого больше вычислительных мощностей. Также такой формат позволяет полностью скрыть от участников тестовую выборку, что исключает возможность ручной доразметки тестового сета и прочего читинга.

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

Мы выбрали компромиссный вариант формата, поскольку уже имели неплохой baseline и хотели, чтобы соревнование позволило нам получить модель максимально достижимого качества.

С одной стороны, участники не были ограничены в ресурсах и могли обучать свои модели на чём угодно, что потенциально стимулировало использовать «тяжёлые» модели, ансамбли и SOTA-решения (state of the art). С другой, мы всё же требовали, чтобы инференс выполнялся на ресурсах Kaggle. Это позволило скрыть от участников тестовую выборку, немного регулировать итоговую сложность моделей и гарантировало воспроизводимость результатов.

В принципе, с этим форматом соревнования всё хорошо, кроме одного момента. Да, вероятно, мы получим качественное решение, которое великолепно находит дефекты на металле. Но что если этим решением окажется ансамбль из десяти Mask-RCNN (одна из современных архитектур искусственных нейросетей) и кучей TTA (test time augmentations) , который на доступных нам вычислительных мощностях способен обрабатывать одну картинку в секунду?

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

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

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

Мы также решили, что во втором раунде участники будут вольны делать со своими моделями что угодно, даже выставить полностью новую модель, отличную от той, которую они использовали в первом раунде. Но при одном условии — результат модели на тестовой выборке во втором раунде не должен опуститься ниже топ-50. Для оценки производительности моделей во втором раунде мы выбрали средненький для такой задачи компьютер с Core i7, одной GPU 1080Ti и 64 гигабайтами оперативной памяти.

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

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

Как не допустить leak в данных

Data leakage или просто leak (утечка) — одна из главных опасностей при проведении соревнований по data science. Участники всегда скрупулёзно изучают данные на предмет неочевидных закономерностей и подсказок, которые организатор не заметил на этапе подготовки датасета.

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

Так что при подготовке train- и test-сета нам нужно было, с одной стороны, сделать так, чтобы в обеих выборках было одинаковое распределение по дефектам и видам поверхностей металла, а с другой, избежать leak’а. Сделать это было не так-то просто.

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

Приняв всё это во внимание, мы совместно с командой Kaggle внимательно подошли к разбиению данных:

  • Удалили из датасета все дубликаты изображений (правда, несколько дубликатов мы в итоге всё-таки пропустили).
  • Оставшиеся картинки распределили между выборками так, чтобы в тестовой не было картинок с того же рулона, что и в тренировочной.
  • Большую часть тестовой выборки составили изображения, полученные позже по времени. При этом мы постарались сделать так, чтобы в обеих выборках все типы дефектов были одинаково представлены.

Про метрику

С выбором метрики тоже были свои нюансы. На производстве качество системы детекции дефектов оценивают в терминах «перебраковки» и «недобраковки». По смыслу две эти величины связаны с привычными precision и recall как:

Перебраковка = 1 — precision

Недобраковка = 1 — recall

Поэтому изначально для оценки качества решений мы собирались использовать кастомную метрику, комбинирующую precision и recall по всем типам дефектов. Но от этой идеи пришлось отказаться. Создание новой метрики и интеграция её в существующую инфраструктуру потребовали бы от команды Kaggle больших усилий на разработку и тестирование. Кроме того, было сложно предугадать, как может повести себя новая метрика во время соревнования.

Команда Kaggle предложила использовать одну из их стандартных метрик для картиночных соревнований ­— mAP при разных порогах по IoU. Но тут мы столкнулись с забавным багом. Хорошо, что в нашем распоряжении была baseline-модель и мы могли протестировать метрику на прочность.

Данная метрика была написана таким образом, что учитывала фон изображений как отдельный класс. Если в качестве входных данных в функцию расчёта метрики подать наивный прогноз ­— на картинках вообще нет дефектов, — метрика выдавала значение 0,7. Если подать идеальный прогно ­— правильно сегментировать все дефекты на изображениях, — значение метрики становилось равным 1.

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

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

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

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

О результатах

Само соревнование длилось три с половиной месяца: с 26 июля по 13 ноября 2019 года. Участие приняла 2431 команда, что, на наш взгляд, довольно много и говорит о том, что конкурс оказался интересным для сообщества.

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

Было интересно, чего смогут добиться победители в плане оптимизации во втором раунде, но, к сожалению, только один из призёров первого раунда, занявший пятое место, попробовал побороться за приз во втором. Причём его модель во втором раунде вылетела из топ-50 по метрике из-за чего не попала в финальный зачёт. Всего же во втором раунде приняли участие 13 команд. Подробнее почитать об итогах соревнования и найти ссылки на описания решений победителей можно здесь.

Избежать сильной головной боли при тестировании решений во втором раунде нам помог Docker — участникам предлагалось завернуть свои модели в контейнер. Мы подготовили подробную инструкцию с примером по упаковке модели в контейнер, так что всё, что оставалось сделать командам, — это заменить файлы в примере на собственные. Это минимизировало вероятность того, что присланные командами решения не запустятся или упадут с ошибкой из-за разницы в используемом программном обеспечении.

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

  • Оценили, модель какого качества в принципе можно получить на наших данных
  • Решение победителя второго раунда смогли с минимальными доработками интегрировать в производство на заводе в Череповце

Это неизбежно... и отлично!

Старший консультант SAP HCM Иван Цапков о буднях консультанта и вдохновляющих проектах

Я занимаюсь селф-сервисом личного кабинета, который организован на SAP HCM. Каждый день им пользуется 50 000 сотрудников. До «Северстали» был разработчиком и консультантом на нескольких проектах. Здесь уже три с половиной года.

Не думал, что найду себя в металлургии. Просто увидел, что у ребят крупный отдел. На собеседовании только по технической части со мной общались сразу 5 человек. Значит, много задач, есть, где развернуться. И конечно, рассматривал уровень внедрения. Кабинет реализован по стеку технологий Fiori UI5 версии 2.0, бэкенд обновлен до EHP8. Мы следим за актуальностью пакетов обновлений — так что система остается в трендах. 

Личный кабинет включает 70 сервисов — от оформления командировок до создания agile-команд. По функциональности и объему автоматизации бизнес-процессов наш ЛК — один из лучших в России. К нам постоянно приходят с референс-визитами — посмотреть, как все устроено. Пишем свой код поверх стандарта и кастомизируем решения под бизнес. Это челлендж и возможность для роста. На этом месте я сильно прибавил в профессиональном плане. 

«Геймификация, квесты, баталии»  

У меня был хороший опыт в abap-программировании и в «Северсталь» меня взяли как пишущего консультанта. До сих пор обожаю разработку. Детский восторг: потратил несколько часов, написал что-то, а оно раз и заработало! Сейчас редко удается кодить — фокус сместился в сторону функционального консультанта. 

Сначала я вел маленькие доработки по модулю оценки персонала. Потом мне отдали весь модуль. Потом я стал курировать большой портал «Мое обучение и развитие». Решаю проблемы пользователей на третьей линии поддержки и участвую в развитии сервиса. Готовим релиз раз в три месяца: разработали, протестировали, выкатили в продуктив. 

Все чаще меня включают в проекты по интеграции личного кабинета с другими, несаповскими системами. Тут я могу выступать архитектором и это колоссальная ответственность. Общаюсь с методологами, смежными разработчиками, бизнес-направлением, руководителями высокого уровня. Предлагаю технические решения. Например, есть курс по развитию цифровых компетенций для всех сотрудников холдинга — «Цифровая сталь». Мегакрутой, на острие технологий — с геймификацией, квестами, баталиями. Это отдельная платформа на своем железе. Я помогаю подружить ее с ЛК и настроить синхронизацию данных. 

«Ковыряемся, решаем»  

Все время принимать указания «из центра» и исполнять спецификации по скрипту — мне не интересно. В «Северстали» я влияю на масштабный продукт. Могу сам генерировать идеи и воплощать их. Вижу результат своей работы и картину целиком. 

Еще я стал тимлидом — и это вообще новый опыт. Раньше был сам себе хозяин, а теперь привыкаю делегировать обязанности, доверять. Закрывать все самому невозможно, да и неправильно. Все-таки сила в синергии. 

В моей функциональной команде пять человек: один в Воронеже и четверо в Череповце. Сам я в Москве. Мы регулярно встречаемся, в онлайне и очно. Есть статусы по понедельникам, но не из серии «ты почему не сделал, давай отчет на стол», а в формате взаимопомощи. Если кто-то завис, то мы вместе распутываем проблему — сидим, ковыряемся, решаем. Люблю помогать, особенно когда человек замотивирован. 

«Проекты, которые вдохновляют»  

Много «хотелок» приходит от бизнеса. У нас теплые отношения, мы все моменты обсуждаем. Иногда отговариваю заказчиков от доработок — если они тормозят систему, дублируют функциональность, неудобны пользователям. Или становятся костылем, который сегодня нужен, а завтра про него забудут. 

У меня много проектов, которые реально вдохновляют. Один из них связан с VR-платформой. Мы сделали так, что виртуальная симуляция работ на высоте запускается прямо из портала «Мое обучение и развитие». А сведения из нее передаются в личный кабинет. Амбициозная задумка. Сроки реализации слетели — так бывает в проектах интеграции с участием сразу нескольких команд. Но все получилось и я до сих пор слышу приятный фидбек. 

Вокруг тоже масса классных штук. Например, наблюдаю за нашим диджитал-подразделением. Big Data, нейросети, компьютерное зрение, дроны на производстве — было бы здорово сделать нечто подобное своими руками. Возможно, еще погружусь в эту тему. 

«Поймать флоу и креативить»  

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

У нас практикуется life-long learning. Доступны сотни дистанционных курсов и офлайн-программы, в том числе по софт скилам. Помню офигенный тренинг по эмоциональному интеллекту. Или вот по лидерским навыкам: как вдохновить сотрудников, как чувствовать себя в потоке, поймать флоу и креативить. Проходишь — что-то вылетает, что-то остается и в процессе работы возвращается искрами. Думаешь «Ааа, это я помню, это оттуда»  и начинаешь применять. 

Есть обратная связь 360°. Выбираешь экспертов, которые оценивают твои сильные и слабые черты. Все анонимно, поэтому получаешь плюс-минус объективную историю. Видишь, где пробелы, как исправлять. Я считаю, это замечательно. Даже у друга не всегда можно спросить: «Вася, вот расскажи, в чем я плох?» Вряд ли он что-нибудь существенное ответит. 

«Не фейлит тот, кто  ничего не делает»  

Был случай: мы запустили рассылку на 5 000 топов. Просили заглянуть в ЛК и обратить внимание на свой прогресс по обучающему курсу. Но только мы плохо выверили данные и многие наткнулись на несоответствия. Никто не настучал нам по шапке. В компании уважительно относятся к людям и терпимо — к их ошибкам. 

Не фейлит тот, кто ничего не делает. В работе, как и в жизни, не бывает, чтобы все шло идеально. Это неизбежно и… отлично! Ошибки — топливо для мотивации, повод делать лучше и расти над собой. 

***

Я бегаю марафоны, осваиваю мотоцикл, но главное хобби — парапланеризм. Занимаюсь больше 10 лет, участвую в соревнованиях. Это технический и очень увлекательный спорт. Как серфинг, только в воздухе — постоянно ловишь теплые потоки, которые тебя удерживают, и двигаешься по маршруту. 

Нравится, что можно совмещать с путешествиями. Я летал в Дагестане, Индии, Турции, на Канарских островах, много где. Топ-3 локаций, в которых хочу полетать? Словения — там шикарные места. Доломитовые Альпы на севере Италии — тоже очень красиво и интересная структура гор. И, конечно, над статуей Христа в Рио-де-Жанейро — пунктик для любого парапланериста. 

Vera в нейросети

«Северсталь» улучшила решение для поиска и классификации дефектов металла

В прошлом году на Череповецком металлургическом комбинате впервые начала применяться модель компьютерного зрения собственной разработки. Нейронная сеть EVE, которая умеет находить четыре различных типа отклонений (плену, трещину, механический дефект и раковину) на цифровых снимках поверхности металла, заменила исходный алгоритм классификации дефектов решения Parsytec. Об этом можно почитать здесь.

Теперь своя нейросеть действует и на самом производительном стане горячей прокатки в России – стане 2000 ЧерМК. Очередная собственная разработка компании получила название VERA. Это усовершенствованная версия EVE, способная находить уже 19 классов дефектов и имеющая более сложную архитектуру.  Она тоже получает изображения с камер Parsytec, а затем на специальном сервере с высокопроизводительными графическими процессорами обнаруживает и классифицирует дефекты.

Интерфейс VERA

Программа включает в себя детектор аномальности, который позволит выявлять нетипичные изображения. Также сотрудники «Северсталь Диджитал», которые занимались разработкой решения, обновили интерфейс пользователя, сделав его более удобным и добавив новые функции. Например, концепция «лайк-дизлайк» позволяет оператору указывать модели на ошибки и правильные решения в нестандартных ситуациях. Это позволяет адаптироваться к меняющимся условиям: модель периодически дообучается на исправлениях оператора и адаптируется под технологический процесс.

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

Severstal deploys AI at Cherepovets steel mill

Severstal has started using a machine learning model to control speed optimisation at the Cherepovets steel mill’s continuous pickling line
The new system was created by integrating "Adelina", a digital model already in use at the NTA-3 pickling line since November 2019, with "Ruban", a new AI agent.

Ruban uses a "deep - reinforcement learning algorithm" —a relatively new technique in which neural networks learn by trial and error.

Adelina controls the speed of the unit, while Ruban adjusts the speed to achieve optimal results.

"The Adelina model had already met our expectations, demonstrating an initial increase in productivity of NTA-3 by more than 5%. In March 2020, we produced a record volume of pickled metal at this unit - more than 130,000t", said Evgeny Vinogradov, chief executive of Severstal Russian Steel Division.

"After introducing the Ruban agent, we recorded a further 1.5% increase in productivity, and we estimate that using the two technologies in parallel could provide more than 80,000t of additional metal each year. This is a remarkable increase for one of the most significant units in the production of flat rolled products."

The company noted that Ruban differs from classic machine learning models in that it learns not just from historical data, but also exploring the digital twin of NTA-3.

The operating speed at the unit largely depends on the parameters of the passing steel strip - the length, width and thickness of the roll, its steel grade and temperature, among other factors.

"Ruban learns from combinations of different parameters, specifically created for it by a generative adversarial network, which uses two neural networks to generate new data. It also sets a production plan and creates unique situations for training purposes," said the company.

For effective learning, the agent was assigned a training system based on rewards and penalties; Ruban experiments to find a solution where the reward amount surpasses the penalties as far as possible.

Boris Voskresenskii, chief digital officer of Severstal, added: "The use of reinforcement learning to control production units is not widespread, particularly in metallurgy. We believe the use of Artificial Intelligence at NTA-3 to be the first such case in Russian practice. The performance improvement recorded on NTA-3 following the introduction of digital tools proves that a data.

AR не сразу строилась

Потратили слишком много денег и времени, но сделали выводы

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

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

Дополненная реальность для навигации на складе

Длительность проекта: 8 месяцев (не окончен)

Команда: 9 человек

Что хотели сделать

Над внедрением технологии дополненной реальности работают в онлайн-магазине «Утконос», который вместе с «Северсталью» входит в «Севергрупп». AR-приложение должно ускорить сборку заказов на складе: алгоритм строит оптимальный маршрут и стрелками показывает сборщику, куда идти.

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

Фулфилмент-центр "Утконоса"

Поиск решения и ошибки

  • Графические метки. На входе в одну из зон комплектации разместили графическую метку для сканирования — листок формата А4 с картинкой. Картинка может быть почти любой, главное, чтобы его могла распознать камера. Например, подойдёт QR-код.

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

    За реализацию этой технологии взялись в первую очередь, потому что она самая простая — классический пример дополненной реальности.

    На деле всё оказалось сложнее. Стрелки смещались, маршрут сбивался, и смартфон не мог определить местонахождение пользователя. Чтобы всё работало нормально, смартфон приходилось постоянно держать прямо перед собой на вытянутой руке — это неудобно и не подходит для сборщиков.

    Выяснить причины сбоев не получилось, и приложение не пошло дальше прототипа.

  • Spatial mapping (построение облака точек). Специалисты отсканировали помещение и создали его модель. Нужно покрутить вокруг себя смартфоном — тогда программа распознает местонахождение пользователя и поведёт его по маршруту. Здесь возникла та же проблема, что и с метками, — приложение сбивается и не может понять, где находится пользователь.
  • Bluetooth-маяк. Маяки установили на складе, чтобы они отслеживали перемещения. Если кто-то проходит мимо маяка, смартфон сразу получает информацию о его нахождении. Раз у смартфона не выходит сориентироваться в помещении самостоятельно, возможно, ему нужна помощь извне.

Что получилось

Вариант с Bluetooth-маяками взяли в работу недавно, так что пока ничего. Тестирования покажут, лучше ли он, чем идеи с метками и облаком точек.

Эксперимент переехал в воронежский офис «Северсталь-инфоком» — в компании хотят использовать технологию ещё и для того, чтобы помочь новым сотрудникам сориентироваться в офисе.

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

Удалённая экспертиза с помощью «умных» очков

Длительность проекта: 5 месяцев

Команда: 2 человека

Что хотели сделать

Работа над этим кейсом проходила на трёх предприятиях «Севергрупп»— «Северсталь», «Свеза» и Nordgold. Думали над решением, которое позволит сотрудникам получать консультации от коллег по видеосвязи.

Тему прорабатывали с 2018 года, но этой весной из-за пандемии резко увеличилось количество запросов на удалённую экспертизу по техническому обслуживанию зарубежного оборудования. Сотрудникам часто требовалась помощь от иностранных экспертов. 

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

Так выглядят умные очки

Поиск решения и ошибки

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

  • Epson. У этих очков нет своего интерфейса — только классический Android. Для управления используется сенсорная панель на поясном пульте, что очень неудобно при использовании на производстве.
  • Microsoft HoloLens считаются самыми передовыми, управление производится голосом и жестами. Но одного заряда батареи хватает всего на три часа, а стоимость достигает 500 тысяч рублей — очень дорого. Ещё один момент, о котором сразу не подумали, — у Microsoft HoloLens нет русификации. Те, кто не владеет английским, испытывали серьёзные неудобства при эксплуатации. И самое печальное: дорогие очки даже не получилось протестировать на производстве — у них нет российской сертификации по промышленной безопасности. О её необходимости узнали, когда уже собирались везти очки в цех.
  • RealWear. На это решение смотрели с особой надеждой — очки пыле- и влагозащищённые, можно носить с каской, есть сменный аккумулятор и голосовое управление на русском языке. Вариант казался идеальным, но пришлось от него отказаться из-за высокой стоимости — около 250 тысяч рублей за штуку.

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

Сложно было и подобрать софт. Приложение TeamViewer Pilot и другое ПО подобного плана, в котором можно делать пометки и обмениваться файлами, успешно прошло все испытания. Но служба безопасности не пропустила — человек может посмотреть в сторону и показать что-то конфиденциальное, отследить это невозможно. Поэтому TeamViewer Pilot признали небезопасным.

Что получилось

После тестирования очков стало понятно, что можно обойтись и без них. Сейчас их вообще не используют — заменили на смартфоны.

Из ПО выбрали корпоративный Microsoft Teams, что решает проблемы конфиденциальности. Служба безопасности может проверить, что именно показал человек по видеосвязи собеседнику, посмотреть видеозаписи в архиве.

От идеи использовать очки в будущем не отказались — они помогут, если рабочему нужны свободные руки. Можно будет разговаривать с экспертом и что-то делать по его инструкциям. Поэтому на производстве продолжают следить за рынком, ждут выхода «умных» очков от Apple.

Маркировка металлических рулонов

Длительность проекта: 18 месяцев

Команда: 20 человек

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

Если перепутать и отправить, например, на автомобильный завод жёсткий металл для подводных лодок, то заказчик сломает своё оборудование. А броню танка изготовят из мягкого металла. Чтобы такого не случилось, все рулоны маркируют.

Маркировка — это уникальный учётный номер, у каждого рулона свой. Даже рулоны из стали одного химического состава, прокатанные по одной технологии, могут иметь различия в механических свойствах. По уникальному номеру рулона можно узнать всё: номер партии, технологию производства, параметры качества, химический состав стали.

Что хотели сделать

После производства рулоны перемещают на склад, освобождая место для следующей партии. Если не маркировать их сразу, то легко запутаться. К тому же «Северсталь» проходит международную сертификацию — по стандартам, металл должен быть промаркирован сразу после производства.

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

Долгое время процесс оставался невыстроенным — люди наносили маркировку на металл вручную, записывали в журналы и отмечали там все перемещения. Часто случалось, что бумажный учёт не сходился с реальностью — в журнале за рулоном было закреплено одно место на складе, но по факту он находился в другом, уже был порезан и отправлен потребителю.

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

Поэтому нужно было придумать более современный способ маркировки и её автоматического распознавания. В 2016 году началась работа над 3D-складом, занявшая 18 месяцев.

Поиск решения и ошибки

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

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

Такой вариант не подошёл: клещи крана настолько сильно захватывают рулон, что метки в пластиковом корпусе расплющиваются. Да и стоимость оказалось очень высокой — несколько десятков долларов за штуку. Теоретически можно было повысить стоимость рулонов, чтобы окупить производство. Но только теоретически: конкуренция на рынке слишком высокая и заставляет думать о себестоимости.

Во время разработки решения не учли и ещё один фактор — машинисты кранов из кабины не могли разглядеть ни этикеток, ни меток. Это выяснилось только во время тестирования, когда работники стали жаловаться.

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

Маркировочная головка — это по сути струйный принтер. Печатать нужно очень быстро — каждые полторы минуты появляется новый рулон, максимальное время на маркировку — 30 секунд. По задумке, код должны были считывать камеры и передавать данные в систему 3D-склада как атрибут входящего объекта. Но появились проблемы с качеством печати, критичные для распознавания DataMatrix. В итоге уровень считывания не превышал 30%.

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

Что получилось

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

Между тем, специально для «Северстали» на ярославском заводе создали новую краску — скорректировали состав так, чтобы она не забивала оборудование и выдерживала высокие температуры.

Действующая система маркировки–распознавания маркирует металл символами. Результат для автоматического распознавания неплох — 95–98%. Маркировку теперь не нужно наносить вручную, лишь в отдельных случаях нераспознанные номера оператор выбирает из списка самостоятельно. Себестоимость маркировки составляет 30-60 копеек на тонну.

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

Сергей Дунаев, генеральный директор «Северсталь Инфоком»

Causal inference for a steel mill.

How to create a data science product for a steel mill

How to create a data science product for a steel mill that combines human expertise and causal inference principles.

Our project

I want to share my experience in creating a data science products for a Severstal mill located near St. Petersburg. We produce steel rolls up to 5 meters wide at this mill. For example, you can create oil and gas pipes from this type of steel. As an input, you send a 20-tonne steel slab, and after 15–30 iterations steel is transformed into a sheet with expected thickness.

Here is the video you can watch to get more insights on the process:

Before our project, an operator used to choose a speed for each iteration manually, and our goal was to automate this process. Our model is working in the real-time mode right now, and we can observe that model’s speed is more than a human’s speed by 5+ %.

Why can’t you choose the maximum possible speed in each iteration? The higher the speed, the higher the electric current (I) on engines, and if a current is more than a threshold, your engine will stop working to prevent a failure. So, an operator chooses a speed considering thickness, delta (a difference in thickness before and after an iteration), and other parameters.

Data

For simplicity, we assume that we only have thickness, delta, speed, and current in our data.

Let’s have 20000 iterations in our dataset. Let’s generate thickness from a uniform distribution with a minimum equal to 5 and a maximum equal to 15 and generate delta from the same distribution but with a minimum equal to 1 and a maximum equal to 4. It means that the metal thickness before an iteration will be between 5 and 15, and this thickness will be reduced by 1–4 points in each iteration.

Suppose that an operator chooses a speed according to this rule:

df['speed'] = np.round(25 - 0.1 * df['thickness'] ** 0.9 - 4 * df['delta'] ** 1.1

Also, an operator can choose a speed higher by 1 unit with a 5 % probability or lower by 1 unit with the same probability.

So, our speed is within 4.61–21.47 range.

Let our electric current obeys this rule:

df['I'] = 3000 + 1500 * (df['thickness'] ** 0.8 + 5 * df['delta'] ** 1.4) + 2000 * df['speed']

Additionally, let’s add some noise to our current. The noise would be taken from a normal distribution with a standard deviation equal to 500.

So, we can split our dataset into three parts: 15000 observations in a train set, 2500 — dev, 2500 — test.

Let an electric current excess starts from 78647 units — it is a rare situation with a frequency of about 0.3 % in our dataset.

Everything is ready for our research =)

Direct approach

You can choose the wrong way to deal with this problem: select a powerful algorithm and train it on your data. For example, you can use gradient boosting, train it, and vary a speed in a way to improve productivity and do not to exceed an electric current.

We have selected an algorithm with 12 leaves, 0.1 learning rate, and 500 trees, and our RMSE is 500±50 on all our datasets (train, dev, and test). The metric is remarkably close to the actual error (500), so we can say that our algorithm is close to the perfect one.

But this is correct only if we are working within the same distribution =)

Let’s choose a speed for each observation in our test set. We will start with maximum speed from our distribution and will stop if our electric current prediction is less than a critical one minus three standard deviations. As a standard deviation, we will take 600 (our 500±50 and small insurance):

def speed_choose(thickness, delta, model=bst, prelimit=limit - 600 * 3): speeds = list(range(4, 22)) speeds.reverse() for speed in speeds: df = pd.DataFrame({'speed': [speed], 'thickness': [thickness], 'delta': [delta]}) if model.predict(df) < prelimit: return speed return 4

Source: gistfile3.py on GitHub.

Our new speed is more than 30 % better than the old one! Great result!

Let’s see how our engines are working. Since we know the true dependency between speed and electric current in our virtual world, we can simulate the result of our experiment:

test = test.assign(I_new=test['I'] + (test['ml_speed'] - test['speed']) * 2000) print((test.I_new > limit).sum() / test.shape[0])

Source: gistfile4-py on GitHub.

So, we have 31.7 % of cases when our electric current is higher than critical, and it is 100 times more frequent event comparing the manual control period. How is it even possible? When we trained our algorithm, it didn’t have any information about the causation between speed and thickness with delta. Therefore, our algorithm remembered an electric current for each combination of speed, thickness, and delta. If we change speed, the model still sees old thickness and delta and thinks that everything will be fine. What can we do in this situation?

Maybe we should predict a speed?

Our goal is to speed up our mill. We know that an operator can work better or worse in similar situations. So, we can predict speed based on the best speed from our past!

For these types of problems, k-NN is a perfect algorithm (we can choose a speed exactly from the past by it):

mm_scaler = preprocessing.MinMaxScaler() X_train_minmax = mm_scaler.fit_transform(X_train[['thickness', 'delta']]) neigh = KNeighborsRegressor(n_neighbors=20) X_train_clean = X_train[y_train['I'] < limit].reset_index(drop=True) X_train_clean_minmax = mm_scaler.transform(X_train_clean[['thickness', 'delta']]) neigh.fit(X_train_clean_minmax, X_train_clean[['speed']])

Source: gistfile5-py on GitHub.

With this algorithm we can achieve a 1.2 % increase in the productivity with the electric current excess rate of only 0.24%:

X_dev_minmax = mm_scaler.transform(X_dev[['thickness', 'delta']]) kn = neigh.kneighbors(X_dev_minmax, return_distance=False) dev = dev.assign(ml_speed=[X_train_clean.loc[i, 'speed'].quantile(0.8) for i in kn]) print(dev.ml_speed.mean() / dev.speed.mean()) dev = dev.assign(I_new=dev['I'] + (dev['ml_speed'] - dev['speed']) * 2000) dev = dev.assign(I_new_predict=bst.predict(dev[['ml_speed', 'thickness', 'delta']])) print((dev.loc[:, 'I_new'] > limit).sum() / dev.shape[0])

Source: gistfile6-py on GitHub.

Great result! But can we do better?

Causal Inference

To reach a speed better than we got from k-NN, we should extract true dependency between a speed and an electric current. How can we do it when our dataset consists only of observations with interdependencies? We can start an experiment, but it is an expensive way on a real mill. However, we can work with interdependencies using causal inference methods.

We would like to demonstrate the work of one of the simplest causal inference methods. This method is simple, but also a strong one:

1) Let’s create a model where we will predict speeds through thicknesses and deltas. This model shouldn’t be too accurate but should incorporate dependency between our variables:

Xc = train[['thickness', 'delta']] Xc = sm.add_constant(Xc) Yc = train[['speed']] modc = sm.OLS(Yc, Xc) resc = modc.fit()

Source: gistfile7-py on GitHub.

2) Let’s split our dataset by predictions of this model, so in each part of this dataset will be similar predictions. Then we train different linear regression models on each of these datasets:

coefs = {} for i in range(6, 19): train_new = train.copy() train_new['bin'] = ((resc.predict(Xc) < (i + 2)) & (resc.predict(Xc) >= i)).astype(int) Xcb = train_new[train_new.bin == 1][['speed', 'thickness', 'delta']] Xcb = sm.add_constant(Xcb) Ycb = train_new[train_new.bin == 1][['I']] modcb = sm.OLS(Ycb, Xcb) rescb = modcb.fit() coefs[i] = rescb.params['speed']

Source: gistfile8.py on GitHub.

3) And now our coefficients are much closer to 2000: they vary from 1924 to 2031. If we create a linear regression without this split, we will receive a coefficient equal to 1404, which will lead us to an underestimation of a speed influence and, as a result, electric current excesses. Why is this approach working? We could presume that the splitting of our original dataset by these bins allows us to detect sets with similar values of thicknesses and deltas with respect to speeds. Therefore, we can better determine the relationship between speed and an electric current.

4) Now we can take a maximum of these coefficients and choose a speed with this knowledge:

dev.loc[:, 'ml_speed'] = dev['ml_speed'] + (limit - 600 * 3 - dev['I_new_predict']) / step dev.loc[:, 'I_new'] = dev['I'] + (dev['ml_speed'] - dev['speed']) * 2000 print((dev.I_new > limit).sum() / dev.shape[0]) print(dev.ml_speed.mean() / dev.speed.mean())

Source: gistfile9-py on GitHub.

The electric current excess is less than before! And we have achieved a 30 % speed improvement!

5) And we see that the result is consistent with our test set:

test = df[17500:] X_test = test[['speed', 'thickness', 'delta']] y_test = test[['I']] X_test_minmax = mm_scaler.transform(X_test[['thickness', 'delta']]) kn = neigh.kneighbors(X_test_minmax, return_distance=False) test = test.assign(ml_speed=[X_train_clean.loc[i, 'speed'].quantile(0.8) for i in kn]) test = test.assign(I_new_predict=bst.predict(test[['ml_speed', 'thickness', 'delta']])) test.loc[:, 'ml_speed'] = test['ml_speed'] + (limit - 600 * 3 - test['I_new_predict']) / step test.loc[:, 'I_new'] = test['I'] + (test['ml_speed'] - test['speed']) * 2000 print((test.I_new > limit).sum() / test.shape[0]) print(test.ml_speed.mean() / test.speed.mean())

Source: gistfile10-py on GitHub.

It is much better than the direct approach =)

Conclusion

We have an unfair advantage in this virtual example because we know the real dependency between a speed and an electric current, so we can see what actually happens with an electric current when a speed increase. In the real world, it is unknown to us. We can test our model on historical data, but in the real world our model might cause an electric current excess and stop a mill. So, we can do two simple things to prevent the risk:

1) We can start our improvement with small steps of speed. Thus, we can be close enough to our historical distribution and trace when it differs significantly.

2) Also, we can start with a recommendation system without direct control of the mill’s speed. Thus, an operator should confirm our recommendations on the first stage of the pilot.

In a short time, an operator will start to be confident in the proposed system, and it can be shifted to the full automation mode with a gradual increase in the speed. Today we have a maximum speed of the mill about 33 % higher than a year ago, and the average speed is higher by more than 5 %.

By the way, if you want to know more about causal inference, you can start with this tutorial.

The full code for this article available here.

Source: Towards Data Science.

«Цифровое сердце» компании.

Платформа нового поколения S/4HANA, которая заменит SAP ERP

В 2019 году запущена программа проектов S/4HANA — важный этап цифровой трансформации «Северстали». Это платформа нового поколения, которая заменит SAP ERP.

Высокий стандарт

Решение о старте программы было принято после утверждения новой стратегии «Северстали» в 2018 году.

«Для реализации ключевых стратегических задач необходима цифровая и процессная основа, которой станет платформа S/4HANA. Она существенно повысит эффективность наших процессов. За счет более высокой скорости, производительности и предоставления возможностей по отслеживанию сквозной эффективности S/4HANA позволит нам создавать дополнительную стоимость для „Северстали“», — отметил генеральный директор «Северстали» Александр Шевелев.

Платформа S4/HANA создает дополнительные возможности для повышения эффективности работы как отдельных сотрудников, так и компании в целом. «Уровень изменений, заявленный в рамках бизнес-трансформации „Северстали“, настолько высок, что, по предварительным оценкам, количество доработок в действующей системе придется увеличить почти вдвое, что фактически превратит нашу нынешнюю систему в набор собственного кода и создаст серьезный риск критического падения производительности. В то же время внедрение новой платформы — это реальный шанс отказаться от старых доработок и использовать стандартные решения SAP там, где это возможно», — комментирует генеральный директор «Северсталь-инфокома» Сергей Дунаев.

Свой путь

«Северсталь» выбрала свой путь внед­рения S/4HANA, отличный от опыта других компаний. Многие из них переходили на платформу как на новую систему, приостанавливая производственный цикл. «Северсталь» планирует внедрение без остановки ключевых процессов, что позволит продолжить работу всех функций в плановом режиме.

Уже сформирована проектная команда, завершается проектирование новых процессов. В первом квартале 2020 года начнется процесс разработки платформы S/4HANA, который должен завершиться успешным внедрением в августе 2021 года. Особенность проекта — использование стандартизированных процессов и отказ от существенной части собственного программного кода. Это позитивно скажется на качестве управления изменениями в новой системе, которые потребуются в будущем.

«Это большой вызов для компании, предполагающий не только изменение цифровой платформы, но и критичный пересмотр повседневных практик, организации процессов и кросс-функционального взаимодействия», — говорит Александр Шевелев.

Сотрудничество

Все функции, которые являются пользователями SAP ERP, будут привлечены к изменению процессов. В тестировании и приемке платформы S/4HANA будут задействованы все подразделения, которые в своей работе используют возможности и данные учетного ядра. Им нужно будет убедиться, что при замене платформы их процессы работают надежно и корректно.

Переход на S/4HANA — сложный интересный проект, который повлечет значительные трансформации. Важно помнить, что любые изменения — это почти всегда трудоемкий процесс, требующий усилий от участников. Этим проект «Северстали» ценен и интересен.

Новая платформа является «цифровым сердцем» компании, ее учетным ядром, с которым интегрированы десятки систем. Сотни процессов будут затронуты внедрением платформы S/4HANA.

Преимущества платформы S/4HANA перед SAP ERP

Новый подход к работе пользователя: упрощенный интерфейс в формате KPI позволяет повысить скорость обучения и эффективность работы пользователей.

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

Модули, ранее стоявшие отдельно, теперь могут работать внутри ERP, на единой модели данных.