TrueDoc / RESULTS.md
awmg's picture
TrueDoc run 97 on olmOCR-bench: 86.8, with all 1,403 page outputs and the scorer's log (part 5)
3299477 verified
|
Raw History Blame Contribute Delete
3.26 kB

TrueDoc on olmOCR-bench: run 97

Overall 86.8 (macro-average of the eight sections; 95% bootstrap CI 86.0-87.7), scored on 2026-09-18 with the benchmark's official scorer (olmocr 0.4.27's benchmark.py) at dataset revision 54a96a6fb6a2bd3b297e59869491db4d3625b711, over all 1,403 pages and all 7,019 checks plus the 1,394 baseline checks.

section score checks passed
arxiv_math 88.6 2594 / 2927
old_scans_math 86.7 397 / 458
table_tests 89.3 913 / 1022
old_scans 58.4 307 / 526
headers_footers 96.7 735 / 760
multi_column 83.6 739 / 884
long_tiny_text 91.4 404 / 442
baseline 99.9 1392 / 1394

What produced these pages

TrueDoc is a PDF-to-markdown conversion pipeline, not a model. For this run:

  • 1,122 pages with a digital text layer were read from the PDF's own text on CPU, with a layout model (docling-layout-heron) for structure. No vision model read those pages.
  • 281 pages with no text layer (scans, photographs of paper) were read by Infinity-Parser2-Flash (2.2B, Apache-2.0). The 102 of those that the pipeline's own OCR could not read (its word-likeness gate) were read by Infinity-Parser2-Pro (35B, Apache-2.0) instead.
  • 92 picture regions on digital pages (pictures that hold text: a scanned table, a screenshot) were read by olmOCR-2-7B-1025 (Apache-2.0).
  • The model readings were recorded on a rented GPU on 17 September 2026 (Infinity-Parser2 through vLLM 0.17.1 with the settings of its authors' olmOCR-bench guide, raw markdown, none of their post-processing) and on 8 September 2026 (olmOCR 2), and replayed from disk during the run. The readings are in the code repository.
  • No post-processing keyed on the benchmark's category folder names. Every page was converted the same way.

The pipeline's code is at https://github.com/islandtimer/TrueDoc, tag run-97 (commit 9f9b77b); its README says how to reproduce this run from the committed readings, and docs/BENCHMARKS.md there holds every run before this one.

What is in this repository

  • outputs/<section>/<page>_pg1_repeat1.md: the 1,403 page outputs exactly as scored, in the scorer's layout. Put the folder beside the dataset's bench_data/pdfs and run the scorer to re-score in minutes.
  • scoring/summary.json, scoring/score_output.txt, scoring/failed_tests.jsonl: the scorer's own output, the bootstrap interval, and every failed check.
  • .eval_results/olmocrbench.yaml: the entry the dataset's leaderboard reads.

How to read the number

  • It is a self-reported run of the official scorer, not an independent one. Everything needed to check it is here.
  • A second scoring of the same pages moves a section by about three checks, so the tenth is not significant.
  • A fifth of the benchmark's pages (bench/holdout.txt in the code repository) was never looked at while the pipeline's rules were built; that fifth scores 86.0 in this run, the rest 84.8.
  • As of 2026-09-18 this overall would rank second among the entries on the leaderboard by point estimate; the leading entry's 87.6 sits inside this run's interval. A live integration of the served readers (rather than replayed readings) is pending.