Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Введение
Большинство статей на Хабре на тему ML прогноза - про применяемые алгоритмы, подходы, инструментарий, но без фокуса на практическое решение задач.
Мы решили поделиться своим опытом и результатами применения машинного обучения для прикладной задачи крупных промышленных предприятий, которые последние 15-20 лет прогнозируют электропотребление «ручным» способом.
На Хабре есть близкая к этой теме публикация-перевод, но она как раз технически-обучающая и без результатов практического применения.
Энергоёмкие промышленные компании являются крупными потребителями электроэнергии и обязаны каждый день подавать заявки с информацией, сколько они планируют закупить электроэнергии в ближайшие сутки в разбивке по часам. Отклонения фактического потребления от прогнозной заявки и в большую, и в меньшую сторону оплачиваются по отдельной ставке. Чем точнее их прогноз, тем меньше оплата.
Очевидный прямой эффект от повышения точности почасового прогнозирования дал старт нашей исследовательской работе. Всё просто: повышаем точность прогноза на n% → заказчик получает меньший счёт от сбытовой компании или рынка → мы «в одну строчку» защищаем бюджет на такие системы.
Однако, на то это и эксперимент, чтобы получить реальный, а не теоретический ответ на вопросы: где можно повысить точность и сложно ли это сделать? 1-2-3% - это сколько в рублях?
Как сейчас выглядит процесс прогнозирования
В отделе по работе на энергорынках (или отделе планирования и учёта энергоресурсов) работает сотрудник, который каждый день собирает от технологов в ручном или полу-ручном режиме (по телефону, письмами по электронной почте) информацию о:
планируемой загрузке производства
плановых остановах и пусках производства
плановых ремонтах
объёмах собственной генерации (если есть)
погодных условиях (если влияют)
Далее сводит всё это с фактическим потреблением за предыдущие сутки в Excel и, на основе своего многолетнего опыта и интуиции, прикидывает почасовые объёмы потребления ближайших суток и подаёт заявку. Так делают +/- практически все опрошенные на старте компании. Лишь единицы пытаются применять методы статистического и регрессионного анализа.
Таким способом предприятиям удаётся достичь точности прогноза при «нормальных» условиях в 90-95%. Хороший показатель это 97-98%. В случае аварийного останова энергоёмкого оборудования отклонение от прогноза может достигать и 300% (крайний случай, но, бывало, что и фабрика новая останавливалась). Автоматизация ручного труда.
Автоматизация ручного труда
Мы предложили компаниям завести те же данные в нейросеть, обучить её и посмотреть, какой прогноз будет выдавать машинная модель по сравнению с текущим уровнем точности. За основу взяли модель рекуррентных нейронных сетей с долгосрочной памятью (Long Short-Term Memory Recurrent Neural Networks) разработки Новосибирского государственного технического университета (НГТУ) кафедра «Системы электроснабжения предприятий», который несколько последних лет занимается изучением и тестированием разного типа нейросетей для систем электроснабжения.
Помимо экономического эффекта, выгоды, в принципе, очевидны (скорость выдачи прогноза и высвобождение персонала для «более творческих задач»).
Эксперименты ставили с 6 предприятиями
(все наименования обезличены и трансформированы в «отрасль» в силу NDA. Для понимания уровня участников нашего эксперимента: это крупнейшие энергоёмкие компании российской промышленности, многие из которых экспортёры и «голубые фишки»):
Нефть. Месторождение одной из крупнейших в мире нефтедобывающих и нефтеперерабатывающих компаний
Мебель. Один из мебельных заводов на территории РФ крупнейшего европейского ритейлера для дома
Трубы. Один из старейших заводов по производству стали и труб, входящий в ведущую группу компаний
Драгоценные камни. Мировой лидер по добыче и обработке драгоценных камней
ГОК. Один из крупнейших ГОКов, входящих в вертикально-интегрированную группу металлургических заводов
Металлургия. Один из крупнейших металлургических комплексов России, входящий в глобальную горно-металлургическую компанию
Как проходила работа
I. Предприятия высылали нам имеющуюся в наличии информацию. В основном, это фактическое потребление за 0,5-2 года, иногда планы и факты генерации, факты ремонтов и производственной загрузки. В случае необходимости, мы подтягивали метеорологические данные из открытых источников.
II. Мы парсили эту информацию, проверяли пропуски, проводили первичный анализ в Python и приводили к читаемому виду.
III. Коллеги из НГТУ настраивали модель (выбирали архитектуру, обрабатывали данные для лучшего обучения) и после этого подавали в модель первые 80% данных для её обучения.
IV. Обученную модель проверяли на оставшихся 20 % данных.
Пример распределения данных на обучение и тестирование:
В течение нескольких секунд после загрузки 20% данных модель выдавала почасовой прогноз на следующие сутки.
V. Полученные прогнозы для каждых суток на тестовой выборке сравнивались с фактическим электропотреблением и прогнозом предприятия (который уже состоялся).
VI. Предприятие обсчитывало экономический эффект от снижения ошибки на 1 процентный пункт. За базовый процент брался текущий процент отклонения.
Результаты экспериментов
№ | Предприятие | Результат |
1. | Нефть | Точность модели и ручного прогноза +/- одинаковая |
2. | Мебель | Получена точность 95% (текущий % неизвестен, т.к. компания только выходит на ОРЭМ и ранее не подавала почасовые заявки) |
3 | Трубы | Точность модели и ручного прогноза +/- одинаковая |
4. | Драгоценные камни | По результатам анализа получен положительный результат +1-2,7% (для разных групп точек поставки (ГТП).Эффект ~ 1 млн. руб/год. |
5. | ГОК | Точность модели и ручного прогноза +/- одинаковая |
Лучшее, что получилось (№ 4, драгоценные камни)
Лучший результат мы получили при работе со сбытовой компанией № 4: от 1 до 2,7% (по разным ГТП) за счёт использования метеорологических данных. Почему так получилось? Потребители этой компании не только промышленные, но и бытовые. В том числе в состав потребителей входят значительные мощности на отопление: это калориферные установки, потребление которых зависит от погодных условий.
Вот график потребления за пару лет, глазами понятны основные паттерны:
Модель более точно оценивает эту зависимость, улавливает циклические и сезонные процессы, которые человек понимает, но не может точно корректировать.
Сколько такой удачный результат может принести заказчику? Посчитать очень просто даже в уме: если общее потребление ~ 1000 МВт*ч в сутки, повышение точности на 1% это 10 МВт*ч, стоимость ошибки в 1 МВт*ч не сильно отличается по России и составляет порядка 250 рублей в ценовых зонах и 100 рублей в неценовой зоне. Такие предприятия могут рассчитывать получить эффект в ~1 млн. рублей/год и 0,4 млн. рублей/год, соответственно. Дальше мы будем таким простым правилом пользоваться для быстрой оценки эффектов.
У предприятия 3 ГТП в неценовой зоне, и на наиболее крупном мы получили минимальный эффект, максимальный же наблюдался на самом маленьком ГТП. Вот и получается, что 4000 МВт*ч в сутки и ~1 % дают 4000*0,4 = 1,6 млн. рублей.
Трюк (№ 6, металлургия)
Еще мы получили аналогичный эффект в № 6. Здесь мы использовали фокус: мы решили не обрабатывать сложные и запутанные Excel с фактами и планами ремонтов и загрузки производств. Мы просто сделали модель, которая использует историю планов и фактов потребления и корректирует план, полученный вручную.
В ручных планах уже учтены ремонты и загрузка производств. Не создав полноценную систему сбора данных с систем предприятия, мы не можем сделать работу по анализу и сбору этой информации лучше, чем эксперты предприятия (мы поняли это ещё на первом совещании с коллегами). Среднее суточное потребление предприятия ~4600 МВт*ч. Крупное и энергоёмкое предприятие. Но на площадке работает ТЭЦ, которая покрывает 80% потребления завода. Полученный эффект в 1 % точности посчитать на коленке не сложно: 0,2*4600*1 = 0,92 млн. рублей в год.
Почему не получается достигнуть большей точности? Печь-ковши для плавки стали - одни из крупнейших потребителей предприятия. Процессы в них очень сложно прогнозировать и планировать. Про это расскажу чуть ниже.
Не получилось (№ 1, нефть)
Что не так с прогнозом по месторождению № 1? Они получают вручную точность в 95%. Модель не смогла лучше. Что в этих 5 %? Большую часть потребления месторождения покрывает большое количество газотурбинных и газопоршневых агрегатов, сжигающих попутный газ. Непостоянство объёмов и параметров газа, резкие скачки не дают стабильно вырабатывать электроэнергию. Здесь ни человек, ни алгоритм поделать ничего не могут.
Не получилось совсем (№ 3, трубы)
№ 3 имеет среднесуточное потребление в 3000 МВт*ч. Одна половина - электросталеплавильные печи, вторая половина - само изготовление труб.
Почасовое потребление электросталеплавильных печей очень плохо планируется и прогнозируется. Почему? График почасового потребления похож на пилу. Это связано с технологией: плавка занимает примерно час, в течение которого происходит постепенное увеличение потребления. Когда у этой пилы будут пики и провалы - невозможно предсказать заранее (за сутки и больше). Поэтому эта проблема должна решаться на организационном уровне: количество плавок и точное время начала каждой плавки должны сообщать технологи. Пойдут ли технологи на это и будут ли подстраиваться под проблемы энергетиков – пока не понятно. А пока планирование очень простое:
Выше некуда (№ 5, ГОК)
Текущая точность прогнозирования на № 5 очень высокая (порядка 2%). Если посмотреть на график, становится понятно почему: стабильное потребление большую часть времени и небольшие проблемы с авариями (что не предсказать) и плановыми ремонтами (часто план не выполняется и переносится):
Поэтому представители предприятия сразу переключили нас на работу в направлении автоматизации процессов планирования и аналитики планирования. Чем и занимаемся в настоящее время.
Первый раз на ОРЭМ (№ 2, мебель)
Осталось рассказать про № 2. Предприятие сейчас переходит на другую категорию потребителя и ему потребуется почасовое планирование на сутки-двое вперёд. Мы показали, что при соблюдении плановых ремонтов можно достигнуть значительной точности.
Выводы
Во что в итоге превратилось наше понимание столь очевидной и живой темы?
Проведенные эксперименты показали, что повышение точности - это не столько залог технологий машинного обучения и статистики, сколько качественного процесса планирования на предприятии. Планируешь и исполняешь - получаешь максимум в своей ситуации. Модели могут лишь ненамного подкорректировать точность прогноза.
Имеющиеся у предприятий данные по ремонтам и отключениям не позволяют использовать их для повышения точности в автоматическом режиме. Они либо не точные, либо настолько не структурированные и не читабельны, что ни одна машина не сможет ими воспользоваться. Потенциал таких данных - 1-3% дополнительно.
При такой ситуации со сбором данных и планированием в промышленности, как сейчас, экономический эффект будет незначительным даже для крупных предприятий и объектов. По крайней мере, не настолько значительным, чтобы уместить в себя бюджет проекта.
Если посмотреть на эксперимент с точки зрения работоспособности нейросети в промышленном кейсе, то результат неплохой: машина смогла догнать и даже перегнать человека. Для сравнения: в распознавании речи и картинок, если машина догоняет человека, то это считается отличным результатом.
Максим Женихов
продакт оунер SEDMAX (ООО "Мависмарт")
Павел Матренин
к.т.н., доцент кафедры «Системы электроснабжения предприятий» НГТУ