v2.0.0
datalab-to/markerv2.0.0Jul 20, 2026by VikParuchuri
AI Summary
Marker 2.0.0 is a major rewrite focused on speed, accuracy, and full CPU support. It introduces new conversion modes, a device-aware default, and significant throughput improvements by utilizing Surya OCR 2 and a rebuilt pdftext.
Key Highlights
- New conversion modes (balanced, fast, and no-OCR) allowing users to trade off speed and accuracy.
- Device-aware defaults that automatically select the best mode based on available hardware (GPU vs CPU).
- Full CPU support enabled by `fast --disable_ocr`, running entirely on CPU without a GPU or inference server.
- Selective OCR that only calls the VLM where necessary (garbled pages, equations), improving efficiency.
- Significant throughput improvements, reaching up to 23.7 pages per second on a single B200 GPU.
Breaking Changes
- Requires Python 3.10+.
- Packaging migrated from Poetry to `uv` (build backend is now hatchling).
- Removed unused structured-extraction converters; use the Datalab API or `--use_llm` workflow instead.
- Mode default changed from always 'balanced' to device-dependent.
New Features
- Reproducible benchmarks harness in the `benchmarks/` directory.
- Device-aware mode selection logic.
- Selective OCR integration with pdftext.
Full Release Notes
# 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](https://github.com/datalab-to/surya), a 20M-param fast layout model, and a rebuilt (3× faster) [pdftext](https://github.com/datalab-to/pdftext). Against comparable pipeline OCR systems, Marker 2 is both **faster and more accurate** — on [olmOCR-bench](https://github.com/allenai/olmocr/tree/main/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 — `balanced` on GPU, `fast` on CPU/MPS — so you get a sensible speed/accuracy tradeoff without a flag. Override any time with `--mode`. - **Full CPU support.** `fast --disable_ocr` needs 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-pdf` is unchanged. - The unused structured-extraction converter/extractors were removed; use the [Datalab API](https://www.datalab.to) or a `--use_llm` workflow for structured extraction. - Mode default is now device-dependent rather than always `balanced` (see above). ## Install ```bash pip install marker-pdf # PDFs pip install marker-pdf[full] # + docx, pptx, xlsx, epub, html ``` ## Benchmarks (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](https://github.com/datalab-to/marker#benchmarks). For the highest possible accuracy, the hosted [Datalab API](https://www.datalab.to) runs Chandra (our document VLM) with automatic correction - free $5 in credits to try.