Small OCR Specialists, Tested on Long Documents

Last updated: October 28, 2026

A 0.85B-active document model beat a 120B general vision model by 34 points on 1,767 pages. Two single-page rivals matched it on plain text and fell behind wherever text crossed a page break.

This is a living post. We will add models and tests as they are released and run, and record every change in the changelog at the bottom.

A 3B document model with 0.85B parameters active per token turned 1,767 pages into Markdown better than a 120B general vision model, on a third of one workstation GPU: 79.3 against 45.4 overall. Two single-page models from LightOn matched or beat it on plain text, formulas and figures, and fell 22 to 29 points behind wherever text or tables carried onto the next page. When we made the 3B model read one page at a time too, it fell to their level, so on these documents reading several pages per request is what wins. It also used the least GPU energy per page. Here is what each model does, what it doesn’t, what we tested, and the results.

The models

ModelMaker, releaseSizeLicenseHow it reads
Unlimited-OCR-2Baidu, October 26, 20263.34B total, 0.85B active (MoE)MITMany pages per request
LightOnOCR-3-1BLightOn, October 7, 20261.0B denseApache-2.0One page per request
LightOnOCR-3-4BLightOn, October 6, 20264.2B dense (Qwen3.5 VL)Apache-2.0One page per request
PaddleOCR-VL-1.6Baidu PaddlePaddle, May 27, 20260.9B, plus a layout modelApache-2.0One region at a time (not yet run)
Nemotron-3.5-Super-VL (comparison)NVIDIA, October 12, 2026120B total, 12B activeOpenMDW-1.110 pages per request

Sizes are counted from the checkpoint files where the card and our count differ.

Unlimited-OCR-2

  • Does: parses a document many pages at a time, using a sparse sliding attention that keeps memory bounded as documents grow, so it can carry a paragraph or table across a page break. Writes tables as HTML, formulas, figure regions and headings. No reasoning mode.
  • Doesn’t: run correctly on stock vLLM (vLLM’s built-in class is the previous version and lacks the new attention; use Baidu’s SGLang build). Mark headings well, which is its weakest score. Describe images or extract chart data.

LightOnOCR-3 (1B and 4B)

  • Does: two prompt modes, plain transcription and grounding, where every block comes back labeled (title, text, table, formula, image, chart and so on) with a bounding box. Describes images and turns charts into data tables. The cards list tables, receipts, forms, charts, multi-column layouts and math; the 1B’s card adds handwriting. Runs on stock vLLM.
  • Doesn’t: see more than one page. Its output format has a continuation marker for a block that carries on from the previous page. We counted every marker in both runs: 818 in the 1B’s output and 483 in the 4B’s, all mid-page and none on a page’s first block, so nothing could be joined across a page break. It also doesn’t follow other instructions; the card says they are out of distribution.

PaddleOCR-VL-1.6

  • Does, per its card: a layout model finds regions and a 0.9B vision-language model reads each one: text, tables, formulas, charts, seals, and rare and ancient Chinese characters.
  • Doesn’t: parse whole pages on its own. The plain transformers path is element-level only, and the official pipeline needs PaddlePaddle. Pre-registered, not yet run.

What we tested

Long-document parsing on MarathonDocBench, a benchmark of documents with hundreds of pages, scored with its own scorer (MPDocBench-Parse, eight metrics, 0 to 100). We used a fixed subset of 11 documents, 1,767 pages, academic English and Chinese. Two metrics score only text and tables that continue across a page break. We wrote down the predictions and the decision rule before any model output.

Unlimited-OCR-2LightOnOCR-3-1B / 4BNemotron-3.5-Super-VL
Pages per request101 (1,540 px long side)10
SamplingGreedy, Baidu’s request builderTemperature 0.2, top_p 0.9 (card)0.6 / 0.95 (card’s vision preset)
ReasoningNoneNone (4B thinking off, per card; checked empty)Off and on, both checked to engage
Precision, hardwareBF16, 0.32 of one RTX 6000 Pro BlackwellBF16, 0.15 / 0.3 of one RTX 6000 ProNVFP4, 2× H200

Intervals are paired bootstraps over the 11 documents (10,000 draws). They cover document-to-document variation; we measured run-to-run variation separately by running each specialist twice (below). These numbers are not comparable to Baidu’s leaderboard, which sends whole documents. The answer key scores 98.3 against itself, which is the ceiling here.

One disclosure. Baidu made both MarathonDocBench and Unlimited-OCR-2, the model that won. We used the benchmark as published with its own scorer, and the conclusions are limited to this kind of document.

Results

MetricUnlimited-OCR-2LightOnOCR-3-1BLightOnOCR-3-4BNemotron, thinking offNemotron, thinking on
Text91.793.191.777.961.3
Text across pages80.358.058.562.252.0
Tables86.977.978.055.357.4
Tables across pages82.954.454.239.840.2
Formulas86.885.886.331.774.8
Reading order87.177.878.954.943.5
Figures66.880.379.60.412.7
Headings51.936.538.816.521.5
Overall79.370.570.842.345.4
−50−40−30−20−100LightOnOCR-3-1B−8.8LightOnOCR-3-4B−8.6Nemotron, thinking on−33.9Nemotron, thinking off−37.0Overall points relative to Unlimited-OCR-2, 95% intervals
Paired over 11 documents, computed from unrounded scores. The shaded band is the pre-registered 2-point margin within which a cheaper challenger could have won on cost.

Only the Overall differences have intervals; read single-metric gaps of a few points as unconfirmed.

Where the LightOnOCR gap comes from: the two across-page metrics account for about 72 to 74% of it. The rest is single-page tables (−9), reading order (−8 to −9) and headings (−13 to −15), offset by LightOnOCR’s lead on figures (+13).

Is it the multi-page reading? Yes.

To test the cause, we ran Unlimited-OCR-2 again with one page per request, using the single-page request from its own card, and pre-registered what would count as an answer. Its across-page scores fell to LightOnOCR’s level and its overall score fell to theirs:

MetricUnlimited-OCR-2, 10 pages per requestUnlimited-OCR-2, one page per requestLightOnOCR-3-1B
Text91.793.793.1
Text across pages80.361.658.0
Tables across pages82.957.754.4
Formulas86.870.885.8
Overall79.370.170.5

Both pre-registered tests held. Unlimited-OCR-2’s loss from reading one page at a time is 20.7 points larger on text across pages than on single-page text (95% interval +9.2 to +29.2), and 19.6 points larger for tables (+15.5 to +23.4). Read one page at a time, it ties LightOnOCR-3-1B overall (−0.4, −3.8 to +2.2). Its single-page text did not suffer (93.7 against 91.7), so this is not a general breakdown. One drop we can’t explain yet: one page at a time it also loses formulas (86.8 to 70.8), all from three documents. The card’s single-page request differs from its multi-page one in more than page count (each page is tiled alone, and a repetition check uses a shorter window), so those are the candidates. This is one model on one benchmark; LightOnOCR cannot read several pages, so the reverse test isn’t possible.

Part of Nemotron’s gap is format, not reading. It tagged 13 (thinking off) and 154 (thinking on) of 398 figures, so its figure score mostly reflects missing output. With thinking on, 150 of its 1,767 pages (8.5%) came back empty because the transcription stayed inside the reasoning.

Which one for which job

  • Long PDFs, reports, papers, scans: Unlimited-OCR-2. It is the only model tested that kept text and tables intact across page breaks. Check its headings.
  • Single pages, such as receipts, forms and one-page scans: LightOnOCR-3-1B is a strong candidate. It matched the leader on plain text, tagged figures best, runs on stock vLLM, and is Apache-2.0. It is not cheaper: it used 26% more GPU energy per page than Unlimited-OCR-2 reading one page at a time, which scored about the same overall. We have not tested single-page documents, so this is a hypothesis.
  • Figures and charts as data: LightOnOCR-3 can describe images and tabulate charts. We scored figure detection, not the descriptions or chart data.
  • Large general vision models: don’t use one for bulk OCR. Have a specialist convert the document, and give the larger model its Markdown.

What each one costs

We ran each specialist alone on the same GPU (one RTX 6000 Pro Blackwell Max-Q, 300 W limit), with the same memory share and 8 requests at a time, and read the board’s energy counter. This is GPU board energy only; the host CPU, memory and fans are not counted.

ModelPages per minuteWh per 1,000 pagesMean board power
Unlimited-OCR-2, 10 pages per request8639.9207 W
Unlimited-OCR-2, one page per request10336.8227 W
LightOnOCR-3-1B10746.3297 W
LightOnOCR-3-4B5394.2297 W

LightOnOCR-3-1B is faster (107 against 86 pages per minute) but keeps the GPU at its power limit; Unlimited-OCR-2 activates only 0.85B parameters per token and draws about 210 W. The 4B costs more than twice as much per page, with no reliable overall difference from the 1B. Each figure comes from one run, so these have no intervals.

What the predictions said

  1. A small specialist beats the 120B generalist by at least 10 points. Held: +33.9 (+24.3 to +44.4) against Nemotron’s better mode.
  2. Thinking doesn’t help the generalist by more than 2 points. Not refuted, but inconclusive: +3.1 (−2.9 to +8.9) is an estimate above the threshold with an interval too wide to decide, and thinking on lost 8.5% of pages to empty answers.
  3. Unlimited-OCR-2 beats each LightOnOCR model. Held for both.
  4. The gap is larger across page breaks than on single pages. Held for both: Unlimited-OCR-2’s lead is 21.8 to 23.7 points larger on text across pages than on single-page text, with intervals well above zero. The follow-up test above shows multi-page reading is the cause.
  5. The 4B beats the 1B. Undecided: +0.3 (−0.7 to +1.0).

Every verdict also holds on the 10 documents the scorer matched without falling back.

Next tests

  • PaddleOCR-VL-1.6, pre-registered and waiting on its install.
  • Single-page and business documents: forms, receipts and handwriting, from datasets whose license allows commercial use.
  • The formula drop when Unlimited-OCR-2 reads one page at a time.

What this doesn’t tell you yet

  • Other document types. Forms, handwriting, invoices, slides, and your own documents: the subset is academic English and Chinese only.
  • Other languages. All three makers say their models are multilingual; we tested two languages.
  • Other modes and models. LightOnOCR’s plain transcription mode, LightOnOCR-3-0.8B, DeepSeek-OCR-2, dots.mocr, HunyuanOCR, Qianfan-OCR.
  • Exact repeatability. A second run of each specialist moved its overall score by 0.1 to 0.8 points. Unlimited-OCR-2 decodes greedily but was not bit-identical on a different server setup: one 10-page window that hit its token limit in the first run finished normally in the second.

Before you rely on any of these for a new kind of document, label a small sample of it and score that first.

Most of what decided this test sits in the model’s architecture and packaging rather than in its parameter count: how many pages it reads at once, which server class implements its attention, whether it needs a separate layout pipeline, and its license. That is what ModelDNA records for every model it tracks. For how a harness shapes any score, see You Wouldn’t Hire by Skull Size.

Changelog

  • October 28, 2026, update: tested the cause (Unlimited-OCR-2 at one page per request: multi-page reading is what wins), measured GPU energy per page for every specialist on equal footing, and ran each specialist a second time to measure run-to-run variation.
  • October 28, 2026: first version. Unlimited-OCR-2, LightOnOCR-3-1B and -4B, with Nemotron-3.5-Super-VL for comparison. PaddleOCR-VL-1.6 pre-registered.

MarathonDocBench’s page images are licensed for academic and research use; this post reports scores only and reproduces no pages.