CASE STUDY · OCR
The 25% that every other model inherited
Custom training methods that cut OCR errors by 25% — a foundation-layer win multiplied through every classifier and extractor downstream.

At a glance
- role
- R&D ML Engineer, Ninestars
- result
- 25% fewer OCR errors
- method
- custom training methods
- stage
- production
Problem
OCR sits underneath everything in a document-AI stack. Classification, key-value extraction, table parsing — all of them consume OCR text, so every OCR error is paid for several times over. Off-the-shelf OCR performance left errors that downstream systems couldn’t recover from.
Approach & architecture
Rather than treating OCR as a fixed black box, I treated it as a trainable component: developing custom training methods for the OCR models against our document data. The same discipline as the other systems applied — data exploration and quality assessment to find where errors concentrated, then targeted training to remove them.
The hard part
Error reduction at the OCR layer is a moving-target problem: fixes that help one document population can regress another. Progress required honest measurement — knowing the error rate before, segmenting errors by cause, and validating that the 25% held across the production mix rather than on a friendly subset.
Result
25% reduction in OCR model errors, compounding through the classification (95%) and extraction (90%) systems that consumed its output.
Stack
- Python
- PyTorch
- OCR training pipelines
- Pandas
stack mapping from skills inventory