Model reference · open weights

dots.ocr

LLMs dots-studio Vision + text 1 build Open weights 322k dl/mo

dots.ocr is an open-weight language model from dots-studio. dots.ocr (BF16) weighs 6.1 GB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • dots.ocr is a multilingual document parsing model developed by dots-studio that unifies layout detection and content recognition within a single vision-language model.
  • It is designed for image-text-to-text tasks and supports English, Chinese, and other languages.
  • The model features a 3.0B parameter size, a context length of 131072 tokens, and is released under the MIT license.

Summary of the dots-studio/dots.ocr model card, 2026-10-01

What it is

Released bydots-studio
Released2025-07-30
Parameters3.0B
VRAM6.1 GB for the weights

What it runs on

Memory and cards for dots.ocr (BF16)

6.1 GBweights, file size
29 MBcache per 1K tokens
2.0 GBruntime overhead, at least
131,072 tokenscontext max
CardRequests at onceContext maxMemory
8K each32K each
RTX 3060 12 GB153121K11.6 GB
RTX 4060 Ti 16 GB317all 128K15.4 GB
RTX 3090 24 GB6516all 128K23.4 GB
RTX 4090 24 GB6516all 128K23.4 GB
RTX 5090 32 GB9724all 128K31.0 GB
L40S 48 GB15238all 128K44.0 GB
A100 80 GB29874all 128K78.2 GB
H100 80 GB28070all 128K78.1 GB
RTX PRO 6000 Blackwell 96 GB34786all 128K93.8 GB
DGX Spark (GB10) 128 GB unified405101all 128K107 GB
H200 141 GB535133all 128K138 GB
B200 180 GB696174all 128K176 GB
Memory needed at each load
Requests at once8K tokens each32K tokens each
18.3 GB9.0 GB
59.2 GB12.7 GB
89.9 GB15.6 GB
1611.8 GB23.1 GB
3215.6 GB38.1 GB
6423.1 GB68.2 GB

One card, with vLLM's small-card settings.

From the model card

What dots-studio says about dots.ocr

Read the model card

dots.ocr: Multilingual Document Layout Parsing in a Single Vision-Language Model

Introduction

dots.ocr is a powerful, multilingual document parser that unifies layout detection and content recognition within a single vision-language model while maintaining good reading order. Despite its compact 1.7B-parameter LLM foundation, it achieves state-of-the-art(SOTA) performance.

  1. Powerful Performance: dots.ocr achieves SOTA performance for text, tables, and reading order on OmniDocBench, while delivering formula recognition results comparable to much larger models like Doubao-1.5 and gemini2.5-pro.
  2. Multilingual Support: dots.ocr demonstrates robust parsing capabilities for low-resource languages, achieving decisive advantages across both layout detection and content recognition on our in-house multilingual documents benchmark.
  3. Unified and Simple Architecture: By leveraging a single vision-language model, dots.ocr offers a significantly more streamlined architecture than conventional methods that rely on complex, multi-model pipelines. Switching between tasks is accomplished simply by altering the input prompt, proving that a VLM can achieve competitive detection results compared to traditional detection models like DocLayout-YOLO.
  4. Efficient and Fast Performance: Built upon a compact 1.7B LLM, dots.ocr provides faster inference speeds than many other high-performing models based on larger foundations.

Usage with transformers

import torch
from transformers import AutoModelForCausalLM, AutoProcessor, AutoTokenizer
from qwen_vl_utils import process_vision_info
from dots_ocr.utils import dict_promptmode_to_prompt

model_path = "./weights/DotsOCR"
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    attn_implementation="flash_attention_2",
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True
)
processor = AutoProcessor.from_pretrained(model_path, trust_remote_code=True)

image_path = "demo/demo_image1.jpg"
prompt = """Please output the layout information from the PDF image, including each layout element's bbox, its category, and the corresponding text content within the bbox.

1. Bbox format: [x1, y1, x2, y2]

2. Layout Categories: The possible categories are ['Caption', 'Footnote', 'Formula', 'List-item', 'Page-footer', 'Page-header', 'Picture', 'Section-header', 'Table', 'Text', 'Title'].

3. Text Extraction & Formatting Rules:
    - Picture: For the 'Picture' category, the text field should be omitted.
    - Formula: Format its text as LaTeX.
    - Table: Format its text as HTML.
    - All Others (Text, Title, etc.): Format their text as Markdown.

4. Constraints:
    - The output text must be the original text from the image, with no translation.
    - All layout elements must be sorted according to human reading order.

5. Final Output: The entire output must be a single JSON object.
"""

messages = [
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "image": image_path
                },
                {"type": "text", "text": prompt}
            ]
        }
    ]

# Preparation for inference
text = processor.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
image_inputs, video_inputs = process_vision_info(messages)
inputs = processor(
    text=[text],
    images=image_inputs,
    videos=video_inputs,
    padding=True,
    return_tensors="pt",
)

inputs = inputs.to("cuda")

# Inference: Generation of the output
generated_ids = model.generate(**inputs, max_new_tokens=24000)
generated_ids_trimmed = [
    out_ids[len(in_ids) :] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]
output_text = processor.batch_decode(
    generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text)

Performance Comparison: dots.ocr vs. Competing Models

Notes:

  • The EN, ZH metrics are the end2end evaluation results of OmniDocBench, and Multilingual metric is the end2end evaluation results of dots.ocr-bench.

News

  • 2025.07.30 🚀 We release dots.ocr, — a multilingual documents parsing model based on 1.7b llm, with SOTA performance.

Benchmark Results

1. OmniDocBench

The end-to-end evaluation results of different tasks.
The end-to-end text recognition performance across 9 PDF page types.

Notes:

  • The metrics are from MonkeyOCR, OmniDocBench, and our own internal evaluations.
  • We delete the Page-header and Page-footer cells in the result markdown.
  • We use tikz_preprocess pipeline to upsample the images to dpi 200.

2. dots.ocr-bench

This is an inhouse benchmark which contain 1493 pdf images with 100 languages.

The end-to-end evaluation results of different tasks.

Notes:

  • We use the same metric calculation pipeline of OmniDocBench.
  • We delete the Page-header and Page-footer cells in the result markdown.
Layout Detection

Notes:

  • prompt_layout_all_en for parse all, prompt_layout_only_en for detection only, please refer to prompts

3. olmOCR-bench.

Note:

  • The metrics are from MonkeyOCR, olmocr, and our own internal evaluations.
  • We delete the Page-header and Page-footer cells in the result markdown.

Quick Start

1. Installation

Install dots.ocr

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms