Datalab released Surya OCR 2.5 on Hugging Face on October 30: a 689M-parameter vision-language model that reads a whole document page in one pass — text, layout, tables and reading order. It scores 85.9 on OmniParseBench, Datalab’s open parsing benchmark, against 83.3 for its predecessor Surya 2, and 83.7% on olmOCR-bench. On a single H100 it parses 6.19 pages per second at 96 DPI, more than twice Surya 2’s 2.28.

One model for the whole page#

Surya 2.5 is a single vision-language model — a Qwen3.5-style architecture of about 690M parameters, according to the model card — that handles layout analysis, OCR and table recognition together, instead of chaining separate models. It installs with pip install surya-ocr and runs through one shared inference backend: vLLM on an NVIDIA GPU, llama.cpp on CPU or Apple Silicon, or an experimental MLX backend. Each page comes back as blocks in reading order, rendered as HTML: tables become <table> elements with colspan and rowspan for merged cells, and equations stay inline in <math> tags as KaTeX-compatible LaTeX, with no separate LaTeX OCR pass.

A messy handwritten document page resolving into a neat structured table grid with a small chart beside it
AI-generated editorial illustration.

The numbers — and whose benchmark they are#

On OmniParseBench, the headline score — the mean of text, table and layout scores — is 85.9 for Surya 2.5 against 83.3 for Surya 2, both run through the same package at 192 DPI with the public scorer, one run per model. The gains are broad: text 83.8 against 81.0, tables 78.3 against 74.3, layout 95.7 against 94.5. The paired headline difference is +2.7 points. On olmOCR-bench, run through the Allen Institute’s harness as the mean of three passes, Surya 2.5 scores 83.7 against 82.8 — a smaller step. One caveat travels with the headline: OmniParseBench is Datalab’s own benchmark, which the card calls “our open parsing benchmark.” The scores are the maker’s, on the maker’s test, and independent reruns are the check that matters.

A fanned stack of documents, forms and newspaper pages in many languages, one page highlighted
AI-generated editorial illustration.

Speed comes from writing less#

Throughput was measured client-side against a running inference server: one H100 80GB, vLLM, 32 concurrent requests, full-page OCR, 300 OmniParseBench pages per resolution. Surya 2.5 manages 6.19 pages per second at 96 DPI (Surya 2: 2.28), 6.03 at 150 DPI and 4.52 at 192 DPI (Surya 2: 2.24, or 2.72 with multi-token prediction). The card credits a compact output format: at 192 DPI a page takes about 1,514 output tokens in Surya 2.5 against 3,917 in Surya 2, and median latency per page falls from 12.0 seconds to 6.8 seconds. On Apple Silicon the picture is slower but much improved: on an M4 Max, Surya 2.5 reaches 0.19 pages per second against 0.061 for Surya 2 — roughly three times faster, but still about 39 seconds at the median per page, so local CPU runs suit small jobs while the GPU path is the real target.

What it can’t do yet, and what it costs to use#

Surya 2.5 is specialised for documents; performance on photos or natural scenes is not the goal, and every mode except text-line detection needs a running inference backend. One capability went backwards: Surya 2.5 reads tables as HTML but not row and column geometry, so surya_table --mode simple returns an error and Datalab points users at a Surya 2 checkpoint for geometry. The code ships under Apache 2.0; the weights use a modified AI Pubs Open Rail-M licence, free for research, personal use and startups under $5M in funding or revenue, with broader commercial use through paid licensing from Datalab. Multilingual coverage is wide but uneven: 91 languages score 74.9% overall on a newer, harder internal benchmark (21 languages at or above 90%, 52 at or above 80%), with Chinese up to 75.7% from 66.7% and German to 91.6% from 86.1% — but English down to 90.3% from 94.3%, Bengali to 55.3% from 61.6% and Russian to 71.7% from 77.8%. The upgrade helps most languages, not all of them.

What to watch#

Watch whether independent runs reproduce the OmniParseBench lead on documents outside Datalab’s test set, and whether the missing table geometry pushes table-heavy pipelines to stay on Surya 2 or mix the two checkpoints. Datalab also runs a managed platform with a higher-accuracy Chandra variant, a free playground and $5 in starting credits — the commercial backdrop for a model whose weights are free only up to the $5M startup threshold. For teams drowning in PDFs, the pitch is simple: one small model, one pass, structured output. The benchmark to trust is the one somebody else reruns.

Sources: Datalab’s model card, “datalab-to/surya-ocr-2.5”, and AI Weekly’s report, “Datalab releases Surya OCR 2.5, 689M-parameter document VLM”. Images are AI-generated editorial illustrations.