Sandvik Coromant · MLOps

From labelled cuts to C# constants

An Azure ML pipeline that trains candidate detectors in parallel, picks a champion against the challengers, and exports the winner straight into production code.

labelled cuts candidate A candidate B candidate C candidate D champion constants → C# tests tracked runs

Why a pipeline for a "simple" model

The fault detector has only a few parameters, but every one of them was chosen by an experiment. When new labelled recordings arrive, those experiments have to run again in exactly the same way, or the shipped constants slowly stop meaning anything.

What it does

  • Trains candidates in parallel on Azure ML compute, each a different configuration of the detector.
  • Tracks every run in MLflow: parameters, metrics and the data they were measured on.
  • Champion against challengers. A candidate replaces the current model only if it beats it on the same evaluation, including the false-alarm criteria that matter on a shop floor.
  • Exports the winner as code. The constants go into the C# source, where unit tests check them, instead of into a config file someone could edit.

What it taught me

MLOps for a small model is mostly about provenance: being able to answer "why is this number 0.x?" months later. The environment reads the production recording format through the same Python bridge the data scientists use, so training and production parse the data identically.