github datalab-to/marker v2.0.0
Marker 2.0.0

21 hours ago

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 — 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 or a --use_llm workflow 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, 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.

For the highest possible accuracy, the hosted Datalab API runs Chandra (our document VLM) with automatic correction - free $5 in credits to try.

Don't miss a new marker release

NewReleases is sending notifications on new releases.