PiotrSty/trocr-pl-mixed-v2 (experimental)
Longer fine-tune of PiotrSty/trocr-pl-base on synthetic Polish print + real EHRI typewritten Polish lines (CC-BY 4.0, ehri-pl-lines). Same recipe as trocr-pl-mixed-v1 (run 3) but 15 epochs instead of 5, because run 3's val CER was still falling at epoch 5.
Training
- Base: PiotrSty/trocr-pl-base
- Method: QLoRA on decoder attention (q/k/v/out_proj), rank 16, alpha 32
- Train: 2000 synthetic lines + 349 real EHRI lines (3 docs)
- Val: 38 EHRI lines (held-out doc ZIH3010905)
- Epochs: 15, batch 8, lr 1e-4, T4 x2
- Best checkpoint: /kaggle/working/trocr-pl-run4/checkpoint-1764 (val CER 0.3152, WER 0.7190)
- Document-level split, no line leakage.
Evaluation on frozen held-out sets
Replace the numbers below with the actual run4 evaluation output from the
notebook before publishing, or rerun training.evaluate on this model after
download. Reference (run3 mixed-v1):
| Model | EHRI test (81, typewriter) | real-lines-v1 (75, print) |
|---|---|---|
| trocr-pl-base (run2) | CER 47.30% / WER 90.82% | CER 11.11% / WER 35.84% |
| trocr-pl-mixed-v1 (run3, 5 ep) | CER 33.95% / WER 85.69% | CER 7.09% / WER 29.44% |
| trocr-pl-mixed-v2 (run4, 15 ep) | (fill from eval cell) | (fill from eval cell) |
Limitations
- Line recognizer only; page segmentation on faded typewriter is unreliable.
- Only 349 real typewritten training lines.
- Do NOT use as drop-in replacement without your own eval.
Provenance
See run.json, selection.json, best_metrics.json in this repo. Source: https://github.com/PiotrStyla/OCR_engine (commit 7065e6a) EHRI dataset: https://huggingface.co/datasets/PiotrSty/ehri-pl-lines