Marker 2.0.0
Marker 2 is a rewrite focused on speed, full CPU support, and accuracy. It's built on three new pieces we shipped over the last few months: Surya OCR 2, a 20M-param fast layout model, and a rebuilt (3× faster) pdftext.
Against comparable pipeline OCR systems, Marker 2 is both faster and more accurate — on olmOCR-bench, balanced mode scores 76.0% overall (83.5% on born-digital) while running over 5× more pages/sec than MinerU's pipeline backend.
Highlights
- Conversion modes. Choose your speed/accuracy tradeoff:
balanced— surya VLM for layout + full-page OCR when text is bad. Highest quality; best on GPU. 76.0% olmOCR-bench.fast— lightweight rf-detr/onnx layout + pdftext, with minimal, surgical VLM use. 66.6%, and far cheaper.--disable_ocr— pure text-layer extraction, no VLM at all. Runs entirely on CPU. 43.6%, 23.7 pg/s.
- Device-aware default. Mode now defaults by device automatically —
balancedon GPU,faston CPU/MPS — so you get a sensible speed/accuracy tradeoff without a flag. Override any time with--mode. - Full CPU support.
fast --disable_ocrneeds no GPU and no inference server; the 20M layout model runs on CPU and still reads structure (columns, tables, headers). - Throughput by design. Many thin CPU workers share a single surya inference server; the parent process budgets VLM concurrency across them, so throughput scales with server capacity instead of per-process VRAM. Sustained on one B200: 2.9 pg/s balanced, 7.4 pg/s fast, 23.7 pg/s no-OCR.
- Selective OCR. Marker reads the PDF text layer with pdftext and only calls the VLM where it's needed — garbled/scanned pages, equations, low-confidence tables — instead of VLM-OCRing every page.
- Reproducible benchmarks. A new
benchmarks/harness reproduces every olmOCR-bench score and throughput number in the README, for marker and competitors (MinerU, docling, liteparse).
Breaking changes
- Python 3.10+ required.
- Packaging moved from Poetry to uv (build backend is now hatchling).
pip install marker-pdfis unchanged. - The unused structured-extraction converter/extractors were removed; use the Datalab API or a
--use_llmworkflow for structured extraction. - Mode default is now device-dependent rather than always
balanced(see above).
Install
pip install marker-pdf # PDFs
pip install marker-pdf[full] # + docx, pptx, xlsx, epub, htmlBenchmarks (olmOCR-bench, macro-average over 8 categories)
| Mode | Overall | Digital-only | Throughput (B200) |
|---|---|---|---|
| balanced (GPU) | 76.0 | 83.5 | 2.9 pg/s |
| fast (GPU) | 66.6 | 71.6 | 7.4 pg/s |
| fast, no OCR (CPU) | 43.6 | 55.8 | 23.7 pg/s |
Full per-category scores, the competitive comparison, and reproduction steps are in the README.
For the highest possible accuracy, the hosted Datalab API runs Chandra (our document VLM) with automatic correction - free $5 in credits to try.