На сегодня почти всё внимание IT-общественности приковано к LLM — огромным нейросетям, которые почти как люди. LLM внедряют в HR, дизайн, журналистику, писательство, маркетинг, в общем в первую очередь туда, где важна красота изложения или картинки, и весьма широк допуск понятия ошибки (программирование стоит особняком, и рассматривать его желательно отдельно).
Но основа экономики всё-таки не эти, весьма, конечно, уважаемые специальности, а промышленность, транспорт, энергетика — те, кто реально производит материальные ценности и материальные услуги. Но об успехах LLM в этих отраслях особо не слышно. Нет, конечно есть примеры, но большая их часть касается документооборота, правового обеспечения, CRM и так далее. Такое ощущение, что LLM полезна только офису и то не всем, а только обеспечивающему персоналу.
Что же происходит с нейросетями, когда они сталкиваются с реальным миром и реальным железом?
❯ Микросети против гигантов
В отличие от генерации текста, где творчество модели приветствуется, в промышленности любое отклонение от регламента — это проблема, и часто фатальная. Нейросети здесь нужны не для того, чтобы делать красивые отчеты и презентации, а для решения двух критических задач:
-
Предиктивная аналитика: поймать момент, когда станок работает нештатно, но авария ещё не произошла, подшипник ещё не рассыпался, дизель не пошел в разнос.
-
Оптимизация процессов: найти такие параметры подачи топлива и сырья, чтобы снизить расход хотя бы на 1%, что в масштабах завода сэкономит миллионы.
Чаще всего, здесь нет необходимости в нейросетях на миллиарды параметров и гигабайты видеопамяти. Физический мир, в отличие от человеческого языка, детерминирован и жесток. Законы термодинамики или сопромата не меняются в зависимости от контекста. Поэтому здесь в приоритете малые сети:
-
LSTM и GRU (рекуррентные сети) работают с историей временных рядов, и соответственно, понимают инерцию процессов. Типичная задача — прогноз вибрации подшипника на горизонте 1–4 часа по данным акселерометра. Архитектура: 1–2 слоя GRU (hidden_size=64–128), вход — окно 30–60 точек (10-секундные отсчёты), выход — регрессия на RMS вибрации или классификация состояния (норма / предотказ / отказ). Обучение: MSE или Huber loss, Adam, lr=1e-3 с decay. На практике GRU предпочтительнее LSTM — меньше параметров при сопоставимом качестве.
-
1D-CNN (свёрточные сети) отслеживают паттерны на спектрограммах вибрации. Стандартный подход: сырой сигнал акселерометра (8–16 кГц) нарезается на окна по 1–2 секунды, к каждому окну применяется FFT или Mel-спектрограмма. Далее 3–4 свёрточных слоя (kernel_size=3–7, каналы 16→32→64) с BatchNorm и MaxPool, затем полносвязный слой на классификацию дефекта: дисбаланс, расцентровка, износ подшипника, ослабление крепежа. Преимущество перед рекуррентными сетями — параллельность вычислений и устойчивость к сдвигу паттерна во времени.
-
Классический ML (XGBoost, Random Forest) часто работает надёжнее и прозрачнее глубокого обучения на табличных данных с десятками сенсоров. Типичный пайплайн: из временных рядов извлекаются агрегированные признаки на окне (mean, std, skewness, kurtosis, RMS, peak-to-peak, crest factor), затем XGBoost (n_estimators=200–500, max_depth=4–6) обучается на этих признаках. Feature importance сразу показывает, какой сенсор вносит наибольший вклад, что критично для доверия инженера к модели.
-
Autoencoders для детекции аномалий — отдельный класс задач, когда размеченных аварий нет вообще. Сеть учится восстанавливать нормальный сигнал (encoder: 64→32→16, decoder: 16→32→64, loss = MSE). При появлении аномалии ошибка реконструкции резко растёт. Порог срабатывания подбирается по статистике ошибки на валидации: обычно mean + 3σ или персентиль 99.5%. Подход работает, но чувствителен к дрейфу сенсоров — о чём ниже.
Все эти модели могут работать на обычном промышленном ПК или даже на микроконтроллере прямо внутри датчика (Edge AI), не требуя облаков и дата-центров.
❯ Стена данных: дорогие галлюцинации
Главная проблема промышленного ИИ — отсутствие данных для обучения. LLM обучаются на всём интернете, а данные для доменной печи или турбины на ГРЭС? Только у самих производственников.
И тут возникают вопросы, каждый из которых решаем, но одновременно способен убить любой проект:
-
Дрейф сенсоров. Термопара через полгода работы в агрессивной среде начинает завышать показания на 30–80 °C. Нейросеть не поймёт этого сама — она продолжит доверять показаниям датчика и будет систематически ошибаться, принимая артефакт деградации за реальный сигнал. Помогает периодическая рекалибровка и мониторинг статистик входных данных. На практике проще всего (и одновременно организационно сложнее) отслеживать скользящие mean и std каждого сенсора и поднимать алерт при отклонении от исторического коридора.
-
Дисбаланс классов. Аварии случаются редко — это хорошо для завода и плохо для модели. Типичное соотношение: 50:1 или 100:1 (норма к аномалии). При таком дисбалансе модель легко может выучить стратегию всегда говори: всё нормально, и получать accuracy 98%, ничего при этом не обнаруживая. Стандартные контрмеры: подбор порога по Precision-Recall кривой, взвешивание классов (scale_pos_weight в XGBoost), SMOTE или ADASYN для синтетической генерации minority class. Но главное — метрики: в промышленности accuracy бесполезна, смотреть нужно на Recall (сколько аварий поймали), Precision (сколько ложных тревог) и PR-AUC.
-
Отсутствие разметки. На большинстве заводов логи пишутся, но никто не размечает, что именно произошло в 03:47 во вторник. Журнал оператора чаще всего тетрадка с записью «что-то шумит, вызван механик». Привязать эту запись к конкретным точкам в данных SCADA — отдельная работа, требующая инженера, времени и терпения. Впрочем, нейросети может быть достаточно и интервального подхода, когда указывается наличие проблемы во временном диапазоне.
-
Стоимость ошибки. В текстах галлюцинация — это смешная картинка, неверная дата, двойка за курсовую. В промышленности галлюцинация — это пропущенная авария, простой линии или взрыв. Ложная тревога тоже стоит денег: незапланированная остановка конвертера — потеря плавки, перезапуск, часы простоя. Более того, ложные тревоги могут психологически усыпить оператора, который однажды не отреагирует на реальную проблему. А уж служебок с жалобами на разработчиков будут сотни.
Поэтому промышленные модели настраиваются в зависимости от цены ошибки. Лучше пропустить аномалию, чем напрасно дергать оператора или лучше лишний раз дёрнуть оператора, чем рисковать миллиардами или жизнями.
❯ А если синтетика? Почему алгоритм не заменит физику
Казалось бы, решение на поверхности: если реальных аварий мало, давайте их нарисуем! Сгенерируем синтетические данные, добавим шума, научим модель. Это популярный путь создания так называемых «цифровых двойников», но без тщательного анализа он ведёт в тупик.
Проблема синтетических датасетов в том, что они создаются алгоритмически. Генератор берёт формулу идеального процесса и добавляет к ней случайный шум.
Вот пример, замечательная статья @ac1esan. Он вложил много усилий в конструирование датасета электродуговой печи. В нём много физики, но не меньше и алгоритмов, что, по идее, должно было бы помочь в тестовом обучении нейросетей.
Но нейросеть — существо ленивое и хитрое. Вместо того чтобы учить сложную физику процесса, она выучивает примитивный рецепт генератора. В этом конкретном датасете модель не увидела реальных предвестников: фазовых переходов, изменения когерентности сигналов, накопления усталости материала.
Я протестировал разные подходы на этом синтетическом датасете (75 тысяч точек, 72 параметра, 4 печи, ~2% аномалий). Автор датасета описывал каузальные цепочки: «растёт вибрация → скачок импеданса → ток падает», но, фактически, предаварийная зона (3–12 шагов до аномалии) статистически неотличима от нормы: все отклонения < 0.11σ. Аномалии оказались мгновенными: генератор просто одновременно подкручивал несколько сенсоров в точке is_anomaly=1. Никакой развивающейся динамики, никаких предвестников.
После десятка попыток победить упрямый датасет, я перешел к его проверке, сначала стандартными статистическими методами, а потом уже и достаточно экзотическими. Параметр порядка Курамото — мера фазовой синхронизации 64 виртуальных агентов, построенных из спектральных, кинетических и статистических разложений сигналов. Если бы аномалия была реальным физическим процессом (например, обрыв электрода), фазовая когерентность между подсистемами печи должна была бы измениться: ток одной фазы падает, другие компенсируют, вибрация реагирует с задержкой. Результат: когерентность в норме — 0.237, перед аварией — 0.235, в момент аварии — 0.233. Дельта 0.004 при стандартном отклонении 0.05. Рой из 64 агентов не заметил аварию даже когда она происходила. Генератор просто масштабировал все сенсоры синхронно.
Итоговые метрики после пяти принципиально разных подходов, не считая достаточно экстравагантных гипотез (классический ML, физическое моделирование, unsupervised learning, signal processing, фазовая синхронизация): лучший результат — F1 ≈ 0.77, Precision 95%, Recall 64%. Модель ловит 162 из 254 аномалий, пропускает 92, даёт 8 ложных тревог. Это потолок, и он определился не алгоритмом, а свойствами датасета: модель научилась распознавать подкрученные значения, но предсказывать за 5 минут до события ей было не из чего.
Вывод: на синтетических данных без каузальной структуры модель обучается распознавать рецепт генератора, а не физику процесса. На реальном заводе такая модель будет бесполезна.
Но в любом случае я очень благодарен автору этого датасета @ac1esan, и надеюсь, что он продолжит его развивать.
❯ Что нужно, чтобы синтетика работала
Синтетические данные не бесполезны, но генератор должен моделировать не значения сенсоров, а физику взаимодействия компонентов:
-
Причинно-следственная динамика. Авария развивается во времени. За 30–60 минут до отказа подшипника растёт RMS вибрации на высоких частотах (дефект внешнего кольца — характерные частоты BPFO). За 5–15 минут — появляется модуляция на частоте вращения. В последнюю минуту — широкополосный шум и скачок температуры. Генератор должен воспроизводить эту последовательность, а не ставить флаг в случайной точке.
-
Разные типы отказов с разными сигнатурами. Обрыв электрода — это не то же самое, что утечка охлаждающей воды. Первый даёт мгновенный скачок импеданса и дисбаланс фаз. Вторая — медленное снижение теплосъёма, рост температуры стенки, изменение состава отходящих газов. Генератор должен иметь библиотеку сценариев отказов.
-
Почти-аварии. Ситуации, которые выглядят опасно, но не привели к отказу. Высокая вибрация при агрессивном режиме плавки — это норма, а не аномалия. Именно на таких граничных случаях модель учится отличать тревожный сигнал от рабочего шума. Без них модель будет либо попусту дёргать оператора при каждом пуске, либо молчать до самого взрыва.
Я написал вроде бы уверенно, но, на самом деле, у меня нет никакой уверенности, что синтетический датасет не пропустит ещё что-то важное, что скрыто присутствует в физическом шуме, и результатом будет полное фиаско в непосредственной эксплуатации.
❯ Битва за внедрение: инженер против менеджера
Даже если у вас есть данные и рабочая модель, вы упираетесь в человеческий фактор. Внедрение нейросетей на производстве — это часто скрытая война.
Менеджмент восторженно ждёт быстрого и дешевого внедрения, инженеры видят огромное количество дополнительной работы, при этом лавры достанутся разработчикам нейросетей, а инженерам возможное сокращение (зарплат или вообще).
Для начала нужно привести в порядок датчики, а на любом реальном объекте половина датчиков заглушены, требуют замены или калибровки. Не факт, что эти датчики до сих пор производятся, а поиск подходящего аналога тот ещё квест. Потом выяснится что требуется замена контроллера, а с учетом накопившегося зоопарка возникает дилемма полной замены всего парка датчиков… Обычно на этом этапе руководство, увидев сметы и объем работ, представленные опытными инженерами, сдаётся.
И техническая поддержка вздыхает с облегчением, потому что иначе каждый вышедший из строя датчик, на который раньше не обращали внимания, требовал бы экстренной замены, нейросеть сигнализировала бы об этом в каждом отчете, а вина за все непредсказанные аварии возлагалась бы на эту службу.
И психологически. Если нейросеть предупредит об аварии, а печь была в порядке — инженера лишат премии за простой. Если нейросеть промолчит, а печь встанет — виноват снова инженер. При таких правилах игры рациональная стратегия инженера достаточно проста — игнорировать нейросеть.
Так что ожидать тихого саботажа вполне логично. Инженерам проще работать по старинке, доверяя своему опыту и манометру, чем чёрному ящику, который обучен программистами, ни разу не инженерами. Побеждают в этой борьбе обычно инженеры, а дорогой пилотный проект ложится на полку.
Поэтому внедрение требует более тонкого подхода:
-
Модель как консультант. Система выдаёт рекомендацию и объяснение («вибрация на подшипнике 7 выросла на 40% за последние 2 часа, рекомендую осмотр при ближайшей остановке»). Решение остаётся за инженером.
-
Интерпретируемость. Инженер должен видеть не число от 0 до 1, а конкретно: какой сенсор сработал, как изменился тренд, почему модель считает ситуацию аномальной. SHAP-значения (от XGBoost) и визуализация важности — минимум. В идеале, привязка к физическим параметрам, которые инженер и так отслеживает.
-
Постепенность. Первые месяцы модель работает параллельно, алерты пишутся в лог, но не показываются оператору. Сравниваются с реальными событиями. Только после подтверждения корреляции система переводится в режим консультанта. И только после нескольких подтверждённых пойманных аварий — в предупредительный режим.
-
Разделение ответственности. В идеале, если модель предупредила, а инженер проигнорировал и печь встала, это разговор с инженером. Если модель не предупредила, это ответственность разработчика. Но в реальной жизни такого не будет никогда. Разработчик категорически откажется от любой формы ответственности, максимум по суду вернет деньги за внедрение. То есть производство будет вынуждено поддерживать две системы мониторинга – нейросеть и человек на пульте управления. Поэтому внедрение нейросети необходимо принципиально рассматривать, как дополнительный инструмент, а не как замену линейным средствам мониторинга.
❯ Заключение
Промышленности не нужны триллионы параметров, умеющие писать стихи. Ей нужны надёжные, интерпретируемые инструменты, которым инженер может доверять или хотя бы проверять.
Выходом из тупика данных может стать появление открытых библиотек реальных промышленных датасетов. Не синтетики, а сырых логов с настоящими отказами, на которых сообщество сможет строить и проверять модели. Пока таких библиотек практически нет, каждый завод изобретает велосипед в одиночку. Я, конечно, мечтаю о том, как какой-нибудь из технических университетов возьмёт на себя огромный труд по выпрашиванию (или снятию) логов с типового промышленного оборудования, сверку и разметку хотя бы с журналами инцидентов. И любой школьник мог бы попробовать обучить микромодель на размеченном датасете газовой турбины, и сверить на контрольном датасете со скрытыми метками аномалий. А конкурс по лучшей нейросети для той же турбины, с хорошими призами, сделал бы для развития нейросетей в стране больше, чем любой хакатон странных идей за безумные деньги.
Нейросеть в цеху — это не замена инженера и не искусственный интеллект в традиционном понимании. Скорее это ещё один сенсор. Очень сложный, капризный, требующий глубокого знания математики и физики процессов, но невероятно мощный в умелых руках. И хайп вокруг LLM здесь совершенно ни при чём.
Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале ↩
Автор: Kamil_GR


