Second order — fine-tune on consensus

The first-order models are good, but they were trained only on synthetic data. To improve further we want to fine-tune on real images — but we have no ground-truth transcriptions for them. This stage solves that with a consensus: where several models agree, we trust them, and use that agreement as training truth.

Three notebooks:

Building a consensus training set

The make_1st_training_consensus notebook runs all five first-order models over ~1000 real images (with no ground truth), then builds a consensus: for each cell, where the models agree, that value becomes the training label; where they disagree, the cell is left unlabelled. The result is a real-image training set whose labels we can trust — not because we transcribed them, but because independent models converged on them.

A consensus transcription over a real image

A consensus transcription on a real image. Values are kept where the first-order models agree, giving a trustworthy training label without any manual transcription.

Fine-tuning again

The finetune_1st_order_models notebook takes each first-order checkpoint and fine-tunes it a second time, now on the consensus set of real images. It submits the jobs to Azure ML, waits, discovers the new checkpoints, and registers them. These are the “second-order” models.

The best models yet

Validating the second-order models on the real test set with validate_2nd_order_real, every model improves again — and the weaker ones improve most:

Model

First order

Second order

Granite

92%

95%

Ministral

85%

94%

Gemma-3

70%

90%

Gemma edge

66%

89%

SmolVLM

68%

87%

Every model is now in the high eighties or better. On our running example, almost everything is blue:

Second-order model transcription, nearly all correct

The same test image after the second round of fine-tuning on real, consensus-labelled data. Nearly every value is now correct (blue).

Requiring agreement between these second-order models in an ensemble pushes the usable accuracy higher still — the same trick that carried Robot Rainfall Rescue to volunteer-level performance.

What you have after this stage

  • Second-order (consensus-trained) checkpoints for every model.

  • Real-data accuracy good enough to run in anger.

Next: Operations.