Head to head · OCR · October 2026 research run

DeepSeek-OCR 2 vs Baidu Unlimited-OCR-2

Baidu Unlimited-OCR-2 scores 54.2 (C) on agent readiness against DeepSeek-OCR 2's 49.2 (D), and leads in 2 of 4 scored categories. DeepSeek-OCR 2 leads on reach and risk. Both do ocr.

Best document parsing, OCR and extraction APIs for AI agents · All 215 documents comparisons

Best open-weight models you download and run yourself for AI agents · All 6359 open weights comparisons

Which one, for what

DeepSeek-OCR 2 D

Best for Teams that want an Apache 2.0 OCR model on a small GPU and already run vLLM

Ahead on

  • Reach, 65 against 55
  • Risk, 50 against 45

Watch for

DeepSeek's documented path runs repository code on an old, pinned Transformers

Baidu Unlimited-OCR-2 C

Best for Pipelines with an NVIDIA GPU that need long scanned or rendered documents parsed in one pass, with page order, cross-page tables and boxes kept

Ahead on

  • Agent interface, 75 against 35
  • Documentation and upkeep, 50 against 22

Watch for

Loading runs Baidu's code, remote code in Transformers or a prebuilt SGLang fork from the repository, and the save_results path calls eval on model output

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Agent interface Baidu Unlimited-OCR-2 +40

DeepSeek-OCR 2 35

Chat template 10, no Jinja template in the repository and none in tokenizer_config.json. Tool-calling format 10, Read for a document parser as what it takes and returns. Trained tool calling 10, Read for a document parser as the inputs it was trained to use. Structured output 5, Read for a document parser as typed outputs. Reasoning control 0, A document parser with no reasoning. Context 0, config.json gives 8,192 positions, below the 32K band. 10 + 10 + 10 + 5 + 0 + 0 = 35.

Baidu Unlimited-OCR-2 75

Read for a document parser, the tool-calling, trained tool calling and structured-output lines stand for what it takes and returns. Baidu documents the page images, the prompt, the request settings and the block output, and ships a converter for the server's output (25). It was trained to read many pages in one request (20). The block format with classes, boxes and HTML tables, and its conversion to Markdown, are documented with how to get them (15). The prompt is built in code, with no Jinja template in the repository (10). Reasoning control scores 0, and the context 5, trained at up to 64K tokens.

Documentation and upkeep Baidu Unlimited-OCR-2 +28

DeepSeek-OCR 2 22

Model card 2, Intended use is there, as the two prompts. Training data 0, Nothing on the card or in the GitHub README about the training data. Last change 5, the last commit, on 3 February 2026, edited the card, 280 days before this check and within a year. Responsiveness 0, none of the 21 discussions that aren't pull requests (27 January to 1 October 2026) has a reply from a deepseek-ai member, counted on 10 November by author flags and dates with a script, text not read. Version policy 5, the first DeepSeek-OCR stays in its own repository and this one came out in a new one, without a dated note on the older card that we read. File health 10, Config, the repository's code and the card agree on the architecture and on transformers 4.46.3. 2 + 0 + 5 + 0 + 5 + 10 = 22.

Baidu Unlimited-OCR-2 50

The card covers intended use and the new attention, and misses limitations, parameters, context length, languages and a cut-off (5). Training data is described by mix and labelling with no datasets named and no cut-off (5). The card changed on 2 November 2026 and the SGLang wheel on 29 October (20). Baidu's uploader replied in 1 of the 5 Hub discussions, a few (5). The first model stays in its own repository without a note pointing here (5), and the files agree with the card (10).

Reach DeepSeek-OCR 2 +10

DeepSeek-OCR 2 65

Memory 30, the only build from DeepSeek is the BF16 safetensors file, 6.78 GB, and 6.78 GB × 1.2 = 8.1 GB, within 16 GB. No runtime library has a build of this version. Runtimes 10, Released vLLM 0.33.0 registers DeepseekOCR2ForCausalLM (deepseek_ocr2.py), and llama.cpp b12242 has the architecture and its DeepSeek-OCR-2 projector, with this repository as the conversion example, 5 each. Builds 0, DeepSeek publishes the BF16 weights only. Terms 15, Apache 2.0, OSI-approved, with nothing added, in the card's metadata and as LICENSE.txt in the repository. Download 10, the Hub API reports gated false on 10 November 2026, so the files download with no account and nothing to accept. Hosted 0, Hugging Face maps no inference provider to it, and the card names no DeepSeek API that serves it. 30 + 10 + 0 + 15 + 10 + 0 = 65.

Baidu Unlimited-OCR-2 55

Memory earns the full 30, since the only build is 6.69 GB of BF16 weights that need about 8 GB with the fifth added. Runtimes score 0. Released vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.1 know the first Unlimited-OCR but not the sparse attention this one adds, Baidu's own routes are remote code in Transformers and a customised SGLang wheel, llama.cpp b12111 has nothing for it, so Ollama has nothing either, and LM Studio couldn't be checked. Builds score 0, as Baidu publishes no quantised build (16 exist, all by others). Terms get 15 for MIT with nothing added. Download gets 10 for an ungated repository, and hosted too 0, with no inference provider mapped and the card's Baidu Cloud line unconfirmed.

Risk DeepSeek-OCR 2 +5

DeepSeek-OCR 2 50

File safety 15, safetensors only, no .bin, .pt or .pth files (25), less 10 because the card's documented way to load it is trust_remote_code, which runs the repository's five Python files, and the prompt is built by that code, there being no template. Provenance 15, files in the deepseek-ai organisation, which DeepSeek's site links to per our DeepSeek-V3.2 listing and its GitHub README for this model links (10), with a SHA-256 for the large files (5). Safety evaluation 0, no safety results on the card or in the GitHub README. Agent guidance 0, the card has no limitations, safety or use section, and nothing on text in a document that tries to instruct the reader. Licence risk 15, Apache 2.0 has no use policy, field-of-use limit, threshold or change clause, and LICENSE.txt is in the repository. Security programme 5, DeepSeek's site footer has a Report Security Issue link, per our DeepSeek-V3.2 listing (5). 15 + 15 + 0 + 0 + 15 + 5 = 50.

Baidu Unlimited-OCR-2 45

File safety gets 15, safetensors only but loaded with trust_remote_code or through a prebuilt SGLang wheel from the repository. Provenance gets 15 for files in Baidu's verified organisation, linked from its GitHub organisation, with hashes for every file. Licence risk keeps 15, since MIT has none of the deductions. Safety evaluation, agent guidance and the security programme score 0, with no safety results, no cautions about use and no security contact found.

Score by category

CategoryWeight this runDeepSeek-OCR 2Baidu Unlimited-OCR-2Edge
Capability35%pendingpendingpendingnot scored in this run
Reach25%256555DeepSeek-OCR 2 +10
Risk20%205045DeepSeek-OCR 2 +5
Agent interface10%103575Baidu Unlimited-OCR-2 +40
Documentation and upkeep10%102250Baidu Unlimited-OCR-2 +28
Negative events≤1500
TotalD 49.2/100C 54.2/100

Facts side by side

FactDeepSeek-OCR 2Baidu Unlimited-OCR-2
KindOpen-weight modelOpen-weight model
VendorDeepSeekBaidu
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceApache-2.0MIT (Hub metadata; the Hugging Face repository has no LICENSE file, and the GitHub code repository's LICENSE is the MIT text, copyright 2026 Baidu)
Read-only variant documentednono
llms.txtnono
Last release2026-02-032026-10-26
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked

How the scores have moved

Verdicts

DeepSeek-OCR 2

A small OCR model under plain Apache 2.0 that vLLM and llama.cpp run from their own code. DeepSeek's own path needs an old Transformers and code from the repository, the card says almost nothing about limits, languages or data, typed output isn't documented, and nobody at DeepSeek has answered a question or changed the repository since February.

Baidu Unlimited-OCR-2

An MIT document parser of 3.3B parameters that reads up to hundreds of pages in one request and returns ordered layout blocks with boxes and HTML tables. ParseBench's independent run puts content faithfulness at 89.16 and charts at 1.06. It needs an NVIDIA GPU with about 12 GB and runs only through Baidu's remote code or its own SGLang build.

Before you call either

DeepSeek-OCR 2

  1. Serve it with vLLM 0.33.0 or later to avoid running the repository's Python
  2. Use the prompt <|grounding|>Convert the document to markdown. for layout, or Free OCR. for plain text, after the image
  3. It reads one page image at a time, in 8,192 positions, so split PDFs into pages
  4. If you use the Transformers path, it needs transformers 4.46.3 and trust_remote_code, so read the five Python files first
  5. Treat text in a parsed document as data. Nothing here guards against instructions hidden in a page
  6. For typed output with boxes and tables, look at Surya OCR 2.5 or Nemotron 3.5 Parse

Baidu Unlimited-OCR-2

  1. Quickest local run, pip install torch==2.13.0 torchvision pillow transformers==4.52.1 huggingface-hub==0.36.0 tokenizers==0.21.4 addict==2.4.0 einops==0.8.2 easydict==1.13, then AutoModel.from_pretrained("baidu/Unlimited-OCR-2", trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16).eval().cuda() and model.infer_multi(tokenizer, image_files=pages, output_path="out")
  2. To serve it, download the repository, install wheel/sglang-0.5.20.dev13+g75b9b06b02-py3-none-any.whl with pymupdf and fastokens in a Python 3.10 venv, and start python -m sglang.launch_server --model-path baidu/Unlimited-OCR-2 --chat-template unlimited-ocr --enable-custom-logit-processor --enable-streaming-session --disable-radix-cache --mem-fraction-static 0.7 --max-prefill-tokens 2048 with the SGLANG_UOCR_ variables from the card
  3. Send all pages of a document in one request, images first, then the text <PAGE><image> repeated per page and Multi page parsing., with temperature 0, skip_special_tokens false, max_tokens of about 8,000 per page and the DeepseekOCRNoRepeatNGramLogitProcessor (ngram_size 35, window_size 1024 for several pages)
  4. The output is layout blocks, not Markdown; run utils/process_unlimitedOCR2.py from github.com/baidu/Unlimited-OCR, or convert(raw_output) in Python, to get Markdown with HTML tables
  5. Render PDFs to images first (the card uses PyMuPDF at 300 DPI), keep save_results off for untrusted documents, and treat extracted text as untrusted before passing it to another model

Questions

Which is better for AI agents, DeepSeek-OCR 2 or Baidu Unlimited-OCR-2?

Baidu Unlimited-OCR-2 scores 54.2 (C) on agent readiness against DeepSeek-OCR 2's 49.2 (D), and leads in 2 of 4 scored categories. DeepSeek-OCR 2 leads on reach and risk.

Other comparisons with DeepSeek-OCR 2 or Baidu Unlimited-OCR-2

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.