Turn a PDF of math and tables into clean markdown, on your laptop

2 months ago

You have a PDF full of equations and tables. You copy the text out. The math turns to garbage and the table falls apart.

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Turn a PDF of math and tables into clean markdown, on your laptop
  2. 0:07One page image in. Clean markdown out.
  3. 0:23The smallest of the leaders, doing one pass
  4. 0:41Not bigger. It just trained smarter.
  5. 1:17Top of the table, and the margin is a quarter point
  6. 1:49Apache-2.0, ungated, one file
  7. 2:00A page in. Clean markdown out. On a model you can run yourself.
Show transcript

Turn a PDF of math and tables into clean markdown, on your laptop

A 0.8B open model built on Qwen3.5, Apache-2.0.
OvisOCR2 Alibaba · Ovis Apache-2.0 · ungated image → markdown 0.8B · base Qwen3.5 256K context

You have a PDF full of equations and tables. You copy the text out. The math turns to garbage and the table falls apart.

One page image in. Clean markdown out.

An input document page on the left, and OvisOCR2's structured markdown on the right with the properties table rendered as a table
input page → OvisOCR2 markdown · report Fig. A.2 · arXiv 2607.13639

Turning a page back into clean text should be solved. It isn't. OvisOCR2 does it in one pass. You hand it one page image. It gives back clean markdown, with the running text in reading order, the formulas as LaTeX, and the tables laid out as tables. And it is small enough to run on your own laptop.

The smallest of the leaders, doing one pass

96 94 92 90 88 86 0.1B 1B 10B 100B parameters, log scale OmniDocBench v1.6 · Overall PaddleOCR-VL-1.6 · 0.9B · 96.33 MinerU2.5-Pro · 1.2B · 95.75 HunyuanOCR-1.5 · 1B · 94.74 Ovis2.6-30B-A3B · 93.70 Qwen3-VL-235B · 89.78 OpenDoc-0.1B · 90.67 Dolphin-1.5 · 0.3B · 86.52 OvisOCR2 · 0.8B · 96.58
The first single-pass model to top the table, and the smallest of the leading systems. Smaller models exist — OpenDoc-0.1B, Dolphin-1.5 — but they score six to ten points lower · report Table 2

Page parsing has always belonged to pipelines. Find the layout, crop each region, run a separate OCR model on each one, then stitch it back into order. On this leaderboard the top spots were all pipelines. Single-pass models trailed. OvisOCR2 is the first single-pass model to top them, and it is the smallest of the leading systems on the board.

Not bigger. It just trained smarter.

the data engine
one HTML file
↓
page imagePlaywright render
markdown answer keyread off the DOM
The answer key is rendered from the same file as the image, so it is never wrong.
the skill · a bigger 4B branch
SFT → 4B RL
text formula table
Reinforcement learning teaches a bigger four-billion model to parse by trial and error.
scored on its text, its formulas, its tables
the student · 0.8B, shipped
copy the 4Bon-policy distillation
↓
average the bestmodel fusion
↓
0.8B OvisOCR2
4B-quality parsing at 0.8B cost

So how does a model this small win? Not by size, but by how it trained. To parse a page you need its exact markdown. Labeling that by hand is slow and noisy. So they let a computer make both sides. It renders an HTML file to an image, then reads the markdown straight off that same HTML. The answer key is never wrong. Next, the skill. They do not reinforcement-train the small model directly. They train a bigger four-billion model to parse by trial and error, scored on its text, its formulas, and its tables. Then they teach the small model to copy that bigger one, and average the best versions into a single model. So the shipped model parses like the four-billion did, at a fraction of the cost.

Top of the table, and the margin is a quarter point

96.58
OvisOCR2 · OmniDocBench v1.6 · Overall
PaddleOCR-VL-1.6 96.33
best pipeline · OvisOCR2 leads by 0.25
HunyuanOCR-1.5 94.74
best prior single-pass model
Ovis2.6-30B-A3B 93.70
best general vision-language model
Gemini 3 Pro 92.91
strongest closed model on this table
reading order 0.111, the lowest error in the table · text 0.025 · ties on tables at 94.76
OvisOCR2 and PaddleOCR-VL-1.6 sit above the public OpenDataLab board (top public MinerU2.5-Pro 95.75); rivals' scores are their own tech-report figures · report Table 2
PureDocBench — a second benchmark
81.55
Clean pages
best of any system
77.09
Born-digital
best of any system
66.56
Real photographed scans
mid-pack · behind Gemini-3.1-Pro 71.98
75.06
Avg3 — best average of any system
past Qwen3.5-122B-A10B at 74.11 · a 0.8B over a 122B

On OmniDocBench, OvisOCR2 scores ninety-six point five eight overall, the top of the table. That is a quarter point over the best pipeline. Its cleanest wins are reading order and plain text; on tables it only ties. The margin is thin, and its closest rivals reported their own numbers. On a second benchmark it posts the best average of any system, winning clean and born-digital pages, and beating a model over a hundred times its size. On messy photographed scans it is mid-pack, behind Gemini three point one Pro.

Apache-2.0, ungated, one file

huggingface.co/ATH-MaaS/OvisOCR2 arxiv.org/abs/2607.13639
Apache-2.0 ungated base Qwen3.5-0.8B 256K context ~1.6 GB, one file
17,162 downloads · 234 likes, and climbing
Hugging Face model API + config.json, pulled 2026-07-21

You can get it on Hugging Face, Apache two, ungated. It is one file, under two gigabytes, small enough to run yourself. Seventeen thousand downloads so far, and climbing.

A page in. Clean markdown out. On a model you can run yourself.

it trained on answer keys it printed itself
The page it still can't fully crack is the photographed real-world scan — the messy document most people actually need read.
huggingface.co/ATH-MaaS/OvisOCR2

So a page that used to come out as garbage now comes out as clean markdown, on a model you can run yourself. It got there by training on answer keys it printed itself. The page it still can't fully crack is the photographed real-world scan, the messy document most people actually need read.

Up next

2:58

Apodex 1.1 mini · the same file, run alone and run as a team

@ai-ml-today · 1 month ago

3:09

Ornith-1.5 · an open model trained on problems it wrote for itself

@ai-ml-today · 1 month ago

3:08

MOSS-VL · an open 11B video model trained to decide, after every frame, whether to speak or stay silent

@ai-ml-today · 1 month ago

3:29

Qwen3.8-27B · a 27B open model anyone can download averages 84.3 across real desktop jobs on Qwen’s own run, and loses the widest row on its own card by nine points

@ai-ml-today · 1 month ago

3:15

MiLMMT-46-v1.0 · Xiaomi finished training an open translator on sentences that had no translation attached, and the scores it now leads on are produced by the two models that graded it

@ai-ml-today · 1 month ago

3:31

BDH-CQ — a 150M-parameter system that learns a puzzle rule from the worked examples in front of it and does its thinking as numbers, never as words

@ai-ml-today · 2 months ago

3:29

Muse Glimmer 30B, Meta’s open agent model, and the second tiny model that guesses sixteen words ahead so it runs fast on one consumer graphics card

@ai-ml-today · 2 months ago

3:05

JoyAI-Video-Edit, JD’s open 16B model that edits a video while the video is still playing, at about 30 frames a second on one Nvidia B200

@ai-ml-today · 2 months ago

3:26

Inkling-Small, Thinking Machines’ 12B-active / 276B open mixture-of-experts model that out-reasons its own 3.5× bigger flagship

@ai-ml-today · 2 months ago

3:42

Maple-Preview, DeepGrove’s 20-billion-parameter ternary reasoning model that runs on a Mac mini

@ai-ml-today · 2 months ago

3:16

Hunyuan3D-Buffalo, Tencent’s one model that builds, understands, and edits 3D from words

@ai-ml-today · 2 months ago

3:28

MiniMax H3, an open model that makes a video and its soundtrack in one pass

@ai-ml-today · 2 months ago