OCR-VLM v1.2 clean

OCR DoneWinnerReleased: MuseMesh/sansar-ocr-2b v0.1.0 ↗

ocrvlm_v12_clean_q35

on OCR page labels, clean, trained on A100 40GB (Google Cloud, spot). Started 8 Oct 2026, ended 8 Oct 2026.

Hypothesis

Retrained without any labels from Google Vision, Claude, Codex or Sarvam, the same 2B OCR model still beats Google Vision's 1.69% letter error rate.

What we learned

Yes: median letter error 1.06% on 54 held-out pages against Google Vision's 1.69%, better than Vision on 39 of 54 pages. OCR-VLM v1, trained with those services' labels, scored 0.96%: the clean labels cost about a tenth of a point. This is the released OCR model.

Scores

Lower is better on the headline; change against the parent run, OCR-VLM v1.

Median letter error rate
0.0106
letter error rate · headline
+10.4%

Letter error rate: the share of letters that come out wrong, as a fraction (0.0096 means 0.96% of letters): for OCR, letters read off a page; for a voice, letters a speech recogniser hears in its audio. Lower is better.

Curves

Training loss

Cross-entropy per token, by step. The first few percent of the run, far higher, run off the top; hover or the table has every value.

Held-out bits per byte

The validation split, evaluated during training, by step. Lower is better.

Throughput

Tokens per second, by step.

Model

Preset
—
Parameters
—
Outside embeddings
—
Layers · heads · width
— · — · —
Tokenizer
Qwen3.5 tokenizer

Qwen3.5-2B full fine-tune, 8-bit AdamW

Data

Slice
OCR page labels, clean
Words
—
Training tokens
—
Passes
—
Tokens seen
80,725,777

Compute

GPU
A100 40GB
Where
Google Cloud (spot)
Steps
2,000 / 2,000
GPU hours
7.59
Cost
$9.86
Spot restarts
1

Lineage

gcpa100spot