DeepSeek-OCR 2: Visual Causal Flow
Paper • 2601.20552 • Published • 70
How to use deepseek-community/DeepSeek-OCR-2 with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("image-text-to-text", model="deepseek-community/DeepSeek-OCR-2") # Load model directly
from transformers import AutoProcessor, AutoModelForImageTextToText
processor = AutoProcessor.from_pretrained("deepseek-community/DeepSeek-OCR-2")
model = AutoModelForImageTextToText.from_pretrained("deepseek-community/DeepSeek-OCR-2")How to use deepseek-community/DeepSeek-OCR-2 with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "deepseek-community/DeepSeek-OCR-2"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "deepseek-community/DeepSeek-OCR-2",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker model run hf.co/deepseek-community/DeepSeek-OCR-2
How to use deepseek-community/DeepSeek-OCR-2 with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "deepseek-community/DeepSeek-OCR-2" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "deepseek-community/DeepSeek-OCR-2",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "deepseek-community/DeepSeek-OCR-2" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "deepseek-community/DeepSeek-OCR-2",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'How to use deepseek-community/DeepSeek-OCR-2 with Docker Model Runner:
docker model run hf.co/deepseek-community/DeepSeek-OCR-2
🌟 Github | 📥 Original Model | 📄 Paper | 📄 Arxiv
DeepSeek-OCR 2: Visual Causal Flow
Explore more human-like visual encoding.
from transformers import AutoProcessor, AutoModelForImageTextToText
model = AutoModelForImageTextToText.from_pretrained(
"deepseek-community/DeepSeek-OCR-2", device_map="auto"
)
processor = AutoProcessor.from_pretrained("deepseek-community/DeepSeek-OCR-2")
image = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/image_ocr.jpg"
inputs = processor(images=image, text="<image>\nFree OCR.", return_tensors="pt").to(model.device)
generate_ids = model.generate(**inputs, do_sample=False, max_new_tokens=256)
print(processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
# "R&D QUALITY IMPROVEMENT\nSUGGESTION/SOLUTION FORM\nName/Phone Ext. : (...)"
The <|grounding|> token enables coordinate-aware output with <|ref|> and <|det|> tags.
inputs = processor(
images=image,
text="<image>\n<|grounding|>Convert the document to markdown.",
return_tensors="pt",
).to(model.device)
generate_ids = model.generate(**inputs, do_sample=False, max_new_tokens=256)
print(processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=False))
# "<|ref|>title<|/ref|><|det|>[[330, 198, 558, 230]]<|/det|>\n# R&D QUALITY (...)"
Refer to 🌟GitHub for guidance on model inference acceleration and PDF processing.
# document: "<image>\n<|grounding|>Convert the document to markdown."
# without layouts: "<image>\nFree OCR."
We would like to thank DeepSeek-OCR, Vary, GOT-OCR2.0, MinerU, PaddleOCR for their valuable models and ideas.
We also appreciate the benchmark OmniDocBench.
@article{wei2025deepseek,
title={DeepSeek-OCR: Contexts Optical Compression},
author={Wei, Haoran and Sun, Yaofeng and Li, Yukun},
journal={arXiv preprint arXiv:2510.18234},
year={2025}
}
@article{wei2026deepseek,
title={DeepSeek-OCR 2: Visual Causal Flow},
author={Wei, Haoran and Sun, Yaofeng and Li, Yukun},
journal={arXiv preprint arXiv:2601.20552},
year={2026}
}