What is dots.ocr?
dots.ocr is an open document-parsing model from rednote hi lab, the AI group at Xiaohongshu, released on 30 July 2025 under the MIT licence. One vision-language model handles both layout detection and reading: it returns each block's bounding box, category and text, with tables as HTML, formulas as LaTeX and everything else as Markdown, in reading order. The Hugging Face API counts 3.04 billion parameters, a 1.7-billion-parameter language model plus a 42-layer vision encoder.
The weights now sit under the dots-studio organisation on Hugging Face and the code under studio-dots-ai on GitHub, where the last commit was on 24 March 2026. A base checkpoint followed on 31 October 2025, and in March 2026 the team released dots.mocr, a successor of the same size that also converts charts and figures to SVG.
Is dots.ocr worth it?
dots.ocr was a strong parser when it launched and is now a middling one. Its card reports 79.1 on olmOCR-bench and table TEDS of 88.6 in English on the original OmniDocBench, ahead of MinerU, Marker and Gemini 2.5 Pro at the time. Those are its makers' figures, some borrowed from the MonkeyOCR and olmOCR projects and some from internal runs, with page headers and footers stripped before scoring.
Newer rivals have since rerun it and placed it lower. FireRedTeam's comparison puts it at 88.41 on OmniDocBench v1.5, behind DeepSeek-OCR 2 at 91.09 and PaddleOCR-VL at 92.86, and at 71.0 on PubTabNet tables. On FireRedBench's awkward real-world pages it scores 72.93. These come from competitors with an interest in the result, but they agree on the direction.
Its distinctive strength is breadth of language. The in-house dots.ocr-bench covers 1,493 PDF pages in 100 languages, and there the team reports an overall edit distance of 0.177 against 0.251 for Gemini 2.5 Pro. Layout detection in the same report beats DocLayout-YOLO, 0.831 against 0.733 F1. No independent multilingual test exists, so the claim rests on a benchmark its makers built.
The operating story has not aged well. Serving with vLLM means patching the vllm launcher with sed to register the model, saving weights in a directory without full stops, and enabling trust_remote_code; the card's own evaluations used vLLM 0.9.1. The limitations section warns that runs of ellipses or underscores can make output repeat endlessly, that pictures are not parsed, and that the model is not optimised for high-volume PDF work. dots.mocr, released by the same team in March 2026 at the same size, addresses the picture gap and posts 84.0 on olmOCR-bench in TII's Falcon OCR comparison.
Where it earns its place
A localisation vendor processing scanned manuals in dozens of languages
Extract text with layout positions from documents in low-resource scripts
The layout prompt returns boxes, categories and text in reading order from one call. The multilingual lead is measured on the team's own 1,493-page benchmark, so validate on a sample of your languages first.
An ML engineer with a dots.ocr pipeline already in production
Decide whether to keep it or migrate
The prompts and output schema are stable, but the same team's dots.mocr is the same size and adds chart and figure parsing. A side-by-side run on your own pages is cheaper than switching on reputation.
A document-AI researcher building a layout-detection baseline
Compare a VLM layout detector with YOLO-style detectors
The detection-only prompt reports 0.845 F1 against 0.733 for DocLayout-YOLO on the team's benchmark, and the MIT weights can be fine-tuned without licence questions.
Before you commit
- Setup
- Python 3.12, torch 2.7.0 on CUDA 12.8, pip install -e . from the GitHub repository, then a download script; or the rednotehilab/dots.ocr Docker image built on the official vLLM image.
- Integrations
- vLLM server with an OpenAI-style API after a launcher patch, Transformers with flash-attention 2, prompt modes for full layout parsing, detection only, plain OCR and grounded OCR on a box.
- Data and privacy
- Self-hosted, so documents stay on your hardware. MIT permits any use; loading runs Python from the model repository.
- Cost at scale
- Weights are free and about 6 GB in BF16 for 3.04 billion parameters; the team publishes no throughput figure and says the model is not yet optimised for large PDF volumes.
- Limits
- Best below 11,289,600 pixels per image; a 200 DPI render is recommended; repeated special characters can cause endless output; pictures are skipped; no weight updates since 31 October 2025.
What’s good
- Layout boxes, categories and text from one model
- Reported multilingual lead on a 100-language in-house benchmark
- MIT licence
- 422,506 Hugging Face downloads in the last 30 days
What’s not
- Benchmarks self-reported; outside reruns place it behind newer models
- Superseded by the same team's dots.mocr
- vLLM setup needs a sed patch and trust_remote_code
- Can loop on ellipses and underscores; pictures not parsed
Best for
Teams with existing dots.ocr pipelines, or that need bounding boxes and reading order for low-resource languages from a single MIT-licensed model.
dots.ocr alternatives
dots.ocr: common questions
- Is dots.ocr worth it?
- It made single-model layout parsing credible in 2025, but in late 2026 it is the version its own makers have replaced. We rate it 3.6 out of 5.
- How much does dots.ocr cost?
- Free under the MIT licence. No first-party hosted API.
- What are the downsides of dots.ocr?
- Benchmarks self-reported; outside reruns place it behind newer models; superseded by the same team's dots.mocr; vLLM setup needs a sed patch and trust_remote_code; can loop on ellipses and underscores; pictures not parsed.
- Who is dots.ocr best for?
- Teams with existing dots.ocr pipelines, or that need bounding boxes and reading order for low-resource languages from a single MIT-licensed model.
- How much does dots.ocr cost for a team or in production?
- Weights are free and about 6 GB in BF16 for 3.04 billion parameters; the team publishes no throughput figure and says the model is not yet optimised for large PDF volumes.
- Is dots.ocr safe for company data?
- Self-hosted, so documents stay on your hardware. MIT permits any use; loading runs Python from the model repository.
- What are the best dots.ocr alternatives?
- The closest alternatives we have reviewed are PaddleOCR-VL-1.6, DeepSeek-OCR 2, FireRed-OCR and Falcon OCR.
Answers checked Nov 2, 2026.