Синтетические плавки стали: наивный рандом дал 6,3% годных, а один критерий не работал
Реальные данные металлургических заводов — коммерческая тайна, поэтому автор написал симулятор плавок стали 35Л в дуговой печи на 3 тонны. Первая версия с независимыми случайными параметрами дала лишь 6,3% годных плавок на 2000 записей, а критерий по сере и фосфору не срабатывал вообще. Исправление — моделировать оператора, который целится в цель и ошибается на величину шума приборов.
AI-обработка оригинала Habr AI; редакция Hamidun News
Автор статьи хотел устроиться Head of AI в металлургическую компанию, но его остановил отсутствие профильного диплома. Тогда он за пару недель собрал MVP, которое до руководства так и не дошло. Зато остался симулятор плавок, и разбор его ошибок полезен всем, кто делает синтетические данные для ML.
Зачем нужна синтетика и что в ней моделируется
Данные металлургических предприятий выкладывать в открытый доступ нельзя, это коммерческая тайна. Поэтому тем, кто хочет проверить идею, обучать и сравнивать модели не на чем. Синтетический набор реальные данные не заменит, но позволяет отладить весь конвейер от генерации до интерфейса. Потом в него можно подставить настоящие плавки.
Задача выглядит так. При выпуске стали в ковш сталевар добавляет ферросплавы, чтобы вернуть выгоревшие кремний и марганец в допуск. Сколько сплава сгорит, заранее неизвестно, поэтому дозу берут с запасом, а запас стоит денег. Нужно по данным до добавки оценить минимальную достаточную дозу.
Симулятор описывает выплавку стали 35Л по ГОСТ 977–88 в дуговой печи ДСП-3. Завалка всегда 3300 кг (лом 2А, брикеты 6А и чугун), на выходе около 3000 кг жидкой стали. Плавка годна, только если одновременно в допуске углерод, кремний, марганец, сумма серы и фосфора и перегрев над ликвидусом.
Почему независимый рандом не работает
Первая идея очевидна: взять каждый параметр равномерно из его диапазона и посчитать результат по формулам. На 100 плавках получилась одна годная. На 2000 после правок их стало 127, то есть 6,3%.
Причина в арифметике, а не в физике. Пять условий должны выполниться разом, а при независимых параметрах каждое проходит с вероятностью от десятков процентов до долей. Окно перегрева шириной 25 °C плохо попадало в случайную температуру из диапазона 130 °C, и по перегреву вылетало 82% плавок. Следом шли углерод (54%) и кремний (42%).
Хуже всего получилось с серой и фосфором: в первой версии они не нарушались никогда. Максимум по формуле был 0,030% при пороге 0,040%. Критерий оказался мёртвым, а датасет с одним классом по этому признаку учит модель очень мало.
Оператор целится и ошибается
Исправление сводится к одному принципу. Каждый параметр, которым управляет человек, считается как цель из предыдущего измерения плюс шум прибора или человеческого фактора, а результат зажимается в физические границы. Температуру выпуска, например, задают как ликвидус плюс целевой перегрев и добавляют ошибку термопары ±5 °C. Чугун дозируют так, чтобы после расплавления углерод был около 0,42–0,50%. Для весов шум составляет ±4 кг, для расходомера кислорода ±2 м³.
Особенно важны ферросплавы. Мастер считает дозу при номинальном усвоении (80% для марганца и 90% для кремния). Фактическое усвоение он узнаёт только после выпуска. Перегрев, передув кислородом и кислый шлак ухудшают его, и разница между планом и фактом даёт и брак, и тот запас, который модель потом учится экономить. В датасете эти колонки помечены как ненаблюдаемые до выпуска. Если подать их в модель как признаки, получится утечка данных.
Ещё одна деталь: штраф за плохие условия сделан сигмоидой, а не жёсткой ступенькой. Усвоение падает плавно вокруг порога, как и в реальности, и без искусственных обрывов в данных. К этому добавлен необъяснимый остаток от плавки к плавке, чтобы модели не удавалось выучить формулу идеально.
Ограничения и что делать на практике
Все цифры в статье получены на данных самого генератора и описывают симулятор, а не реальную печь. Автор сам оговаривает упрощения: в ГОСТе сера и фосфор нормируются по отдельности, а окно перегрева придумано под формы из ХТС. Ликвидус считается линейной аппроксимацией, для настоящей печи нужны коэффициенты из справочника или термодинамического расчёта. Фрагмент статьи, который у нас есть, заканчивается на разборе шихты. Обучение CatBoost и микросервис-советник обещаны во второй части.
Практический вывод шире металлургии. Перед обучением на синтетике стоит посчитать долю положительных классов и долю срабатываний каждого критерия. Если один из них не срабатывает никогда, симулятор нужно чинить, а не модель. Параметры, которыми управляет человек, лучше моделировать как цель с шумом, а не как независимые случайные величины. И наконец, всё, что нельзя наблюдать в момент решения, нужно исключить из признаков. Сгенерированный датасет проверяет конвейер, но не доказывает, что модель заработает на реальных плавках.
- 12 нояб. 2026 г.CatBoost снизил ошибку расчёта ферромарганца на 60% в симуляции плавок
- 29 авг. 2026 г.Как построить стабильный пайплайн на датасете Fable 5 Traces в Google Colab
- 19 июл. 2026 г.Apple ML Research предложила компактные модели для исправления ошибок распознавания речи
- 2 мая 2026 г.Как избежать утечки данных в машинном обучении: Target Encoding
Вопросы и ответы по материалу
Что известно по теме: зачем нужна синтетика и что в ней моделируется?
Данные металлургических предприятий выкладывать в открытый доступ нельзя, это коммерческая тайна. Поэтому тем, кто хочет проверить идею, обучать и сравнивать модели не на чем. Синтетический набор реальные данные не заменит, но позволяет отладить весь конвейер от генерации до интерфейса. Потом в него можно подставить настоящие плавки. Задача выглядит так. При выпуске стали в ковш сталевар добавляет ферросплавы, чтобы вернуть выгоревшие кремний и марганец в допуск.
Что известно по теме: почему независимый рандом не работает?
Первая идея очевидна: взять каждый параметр равномерно из его диапазона и посчитать результат по формулам. На 100 плавках получилась одна годная. На 2000 после правок их стало 127, то есть 6,3%. Причина в арифметике, а не в физике. Пять условий должны выполниться разом, а при независимых параметрах каждое проходит с вероятностью от десятков процентов до долей. Окно перегрева шириной 25 °C плохо попадало в случайную температуру из диапазона 130 °C, и по перегреву вылетало 82% плавок.
Что известно по теме: оператор целится и ошибается?
Исправление сводится к одному принципу. Каждый параметр, которым управляет человек, считается как цель из предыдущего измерения плюс шум прибора или человеческого фактора, а результат зажимается в физические границы. Температуру выпуска, например, задают как ликвидус плюс целевой перегрев и добавляют ошибку термопары ±5 °C. Чугун дозируют так, чтобы после расплавления углерод был около 0,42–0,50%. Для весов шум составляет ±4 кг, для расходомера кислорода ±2 м³. Особенно важны ферросплавы.
Протестируйте новые LLM и мультимодальные модели в одном окне
Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.