Live Nov 18 · Cohort 3Nov 18, 19:00 MSK — free hands-on AI agents live workshop · Live Cohort 3 starts Nov 23Join Nov 18 Live →Cohort 3 (Nov 23)
ReleaseInsight · On RadarHabr AI→ original

Synthetic Steel Heats: Naive Randomness Yielded 6.3% Good Melts, and One Criterion Never Triggered

Real data from metallurgical plants is a trade secret, so the author wrote a simulator of 35L steel heats in a 3-tonne arc furnace. The first version, with independent random parameters, produced only 6.3% good heats across 2000 records, and the sulfur-and-phosphorus criterion never triggered at all. The fix was to model an operator who aims at a target and misses by the amount of instrument noise.

AI-processed from Habr AI; edited by Hamidun News
Synthetic Steel Heats: Naive Randomness Yielded 6.3% Good Melts, and One Criterion Never Triggered
Source: Habr AI. Collage: Hamidun News.
Listen to article
Article Fact Sheet & Key Figures
ParameterDetails
Primary sourceHabr AI ↗
Editor-in-Chief
Dataset2000 heats, 18 columns, five checks under GOST 977–88
Key metric #2A dead criterion yields a single class, so the model does not learn the causes of rejects
Key metric #3Alloy recovery before tapping is not observable, so it must not be fed to the model

The author of the article wanted to become Head of AI at a metallurgical company, but the lack of a relevant degree stopped him. So he spent a couple of weeks building an MVP, which never reached management. What remained was the heat simulator, and a breakdown of its mistakes is useful to anyone building synthetic data for ML.

Why synthetic data is needed and what it models

Data from metallurgical plants cannot be published openly; it is a trade secret. As a result, anyone who wants to test an idea has nothing to train and compare models on. A synthetic dataset does not replace real data, but it lets you debug the whole pipeline from generation to interface. Real heats can be plugged in afterward.

The task looks like this. When steel is tapped into the ladle, the melter adds ferroalloys to bring burned-off silicon and manganese back into tolerance. How much alloy will burn off is unknown in advance, so the dose is taken with a margin, and that margin costs money. The goal is to estimate the minimum sufficient dose from data available before the addition.

The simulator describes smelting of 35L steel per GOST 977–88 in a DSP-3 arc furnace. The charge is always 3300 kg (2A scrap, 6A briquettes and pig iron), and the output is about 3000 kg of liquid steel. A heat is good only if carbon, silicon, manganese, the sum of sulfur and phosphorus, and superheat above the liquidus are all within tolerance at the same time.

Why independent randomness does not work

The first idea is obvious: draw each parameter uniformly from its range and compute the result with formulas. Out of 100 heats, one was good. On 2000, after fixes, there were 127, or 6.3%.

The cause is arithmetic, not physics. Five conditions have to hold at once, and with independent parameters each one passes with a probability ranging from tens of percent down to fractions of a percent. The superheat window, 25 °C wide, rarely matched a random temperature drawn from a 130 °C range, and 82% of heats failed on superheat. Carbon (54%) and silicon (42%) came next.

Sulfur and phosphorus turned out worst: in the first version they were never violated. The formula's maximum was 0.030% against a threshold of 0.040%. The criterion was dead, and a dataset with a single class for that feature teaches the model very little.

The operator aims and misses

The fix comes down to one principle. Every parameter controlled by a human is computed as a target from the previous measurement plus noise from the instrument or the human factor, and the result is clamped to physical limits. Tapping temperature, for example, is set as the liquidus plus the target superheat, with a thermocouple error of ±5 °C added. Pig iron is dosed so that carbon after melting is around 0.42–0.50%. The noise is ±4 kg for the scales and ±2 m³ for the oxygen flowmeter.

Ferroalloys matter especially. The foreman calculates the dose at nominal recovery (80% for manganese and 90% for silicon). He learns the actual recovery only after tapping. Superheat, oxygen over-blowing and acidic slag reduce it, and the gap between plan and actual produces both rejects and the margin that the model later learns to save. In the dataset, these columns are marked as unobservable before tapping. Feeding them to the model as features would cause data leakage.

One more detail: the penalty for bad conditions is a sigmoid, not a hard step. Recovery drops smoothly around the threshold, as in reality, with no artificial cliffs in the data. On top of that, an unexplained heat-to-heat residual is added so that the model cannot learn the formula perfectly.

Limitations and what to do in practice

All figures in the article come from the generator's own data and describe the simulator, not a real furnace. The author himself notes the simplifications: in GOST, sulfur and phosphorus are specified separately, and the superheat window was devised for molds made from cold-hardening mixtures (KhTS). The liquidus is computed with a linear approximation; a real furnace needs coefficients from a reference book or a thermodynamic calculation. The part of the article we have ends at the analysis of the charge. CatBoost training and a microservice advisor are promised in the second part.

The practical takeaway goes beyond metallurgy. Before training on synthetic data, calculate the share of positive classes and the trigger rate of each criterion. If one of them never triggers, fix the simulator, not the model. Parameters controlled by a human are better modeled as a target with noise than as independent random variables. And finally, anything that cannot be observed at decision time must be excluded from the features. A generated dataset tests the pipeline, but it does not prove the model will work on real heats.

Story

Key Questions Answered

Why synthetic data is needed and what it models?

Data from metallurgical plants cannot be published openly; it is a trade secret. As a result, anyone who wants to test an idea has nothing to train and compare models on. A synthetic dataset does not replace real data, but it lets you debug the whole pipeline from generation to interface. Real heats can be plugged in afterward. The task looks like this. When steel is tapped into the ladle, the melter adds ferroalloys to bring burned-off silicon and manganese back into tolerance.

Why independent randomness does not work?

The first idea is obvious: draw each parameter uniformly from its range and compute the result with formulas. Out of 100 heats, one was good. On 2000, after fixes, there were 127, or 6.3%. The cause is arithmetic, not physics. Five conditions have to hold at once, and with independent parameters each one passes with a probability ranging from tens of percent down to fractions of a percent.

What are the key details on The operator aims and misses?

The fix comes down to one principle. Every parameter controlled by a human is computed as a target from the previous measurement plus noise from the instrument or the human factor, and the result is clamped to physical limits. Tapping temperature, for example, is set as the liquidus plus the target superheat, with a thermocouple error of ±5 °C added. Pig iron is dosed so that carbon after melting is around 0.42–0.50%. The noise is ±4 kg for the scales and ±2 m³ for the oxygen flowmeter.

ZK
Zhemal Khamidun — CPO at Alpina Digital, product manager of AlpinaGPT. Building AI products since 2019. Hamidun News is a pet project that grew into a production aggregator with 6,000+ readers.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
What do you think?
Loading comments…