Head to head · OCR · October 2026 research run

Surya OCR 2.5 vs Baidu Unlimited-OCR-2

Surya OCR 2.5 scores 61 (C) on agent readiness against Baidu Unlimited-OCR-2's 54.2 (C), and leads in 2 of 4 scored categories. Baidu Unlimited-OCR-2 leads on agent interface. 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

Surya OCR 2.5 C

Best for Small companies and researchers who need quick OCR with layout on a laptop or a small GPU and fit the licence

Ahead on

  • Reach, 90 against 55
  • Documentation and upkeep, 57 against 50

Watch for

Commercial use is barred above $5M in revenue or funding, and for anyone who competes with Datalab

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 70

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.

Reach Surya OCR 2.5 +35

Surya OCR 2.5 90

Memory 30, Datalab's own Q8_0 GGUF is 0.63 GB with a 0.21 GB projector, and 0.84 GB × 1.2 = 1.0 GB, within 16 GB. The BF16 safetensors file is 1.38 GB. Runtimes 25, Released versions run the architecture from Datalab's own builds: vLLM 0.33.0, SGLang 0.5.23 and Transformers 5.22.2 from the safetensors file, llama.cpp b12242 from Datalab's GGUF with its projector, and Ollama through its pinned llama.cpp (b12177 at v0.40.16). Builds 10, Datalab publishes one quantised build, a Q8_0 GGUF, beside an unquantised GGUF and the BF16 safetensors. Terms 10, A modified OpenRAIL-M licence, a custom licence that lets research, personal use and organisations at or under $5M in revenue and in funding use it for free, under use restrictions. Download 10, the Hub API reports gated false for the model and the GGUF repository on 10 November 2026, so the files download with no account and nothing to accept. Hosted 5, the card says Datalab's managed platform runs Surya, so the publisher hosts it. 30 + 25 + 10 + 10 + 10 + 5 = 90.

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.

Documentation and upkeep Surya OCR 2.5 +7

Surya OCR 2.5 57

Model card 17, Intended use, limitations, the architecture (a Qwen 3.5-style vision-language model with separate detection models), parameters (689M), the serving length (24,576 tokens) and 91 languages are on the card. Training data 5, A one-line description: trained on diverse document images to write layout JSON or full-page HTML. No sources, sizes or cut-off. Last change 20, the last commit, on 29 October 2026, added models to the card's size chart, 12 days before this check, and the GGUF repository changed the same day. Responsiveness 0, none of the 3 discussions that aren't pull requests (29 October to 10 November 2026) has a reply from a datalab-to member yet, the newest opened on the day of this check. Version policy 5, Surya OCR 2 stays in its own repository and 2.5 came out in a new one. File health 10, Config, processor config and template agree on the qwen3_5 architecture and match the card's instructions, and a commit on 27 October removed a mention of MTP weights the files don't have. 17 + 5 + 20 + 0 + 5 + 10 = 57.

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).

Agent interface Baidu Unlimited-OCR-2 +5

Surya OCR 2.5 70

Chat template 20, chat_template.jinja in the repository (2,872 characters). Tool-calling format 25, 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 15, Read for a document parser as typed outputs. Reasoning control 0, A document parser with no reasoning. Context 0, Datalab documents a 24,576-token model length for serving, below the 32K band. 20 + 25 + 10 + 15 + 0 + 0 = 70.

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.

Score by category

CategoryWeight this runSurya OCR 2.5Baidu Unlimited-OCR-2Edge
Capability35%pendingpendingpendingnot scored in this run
Reach25%259055Surya OCR 2.5 +35
Risk20%204545even
Agent interface10%107075Baidu Unlimited-OCR-2 +5
Documentation and upkeep10%105750Surya OCR 2.5 +7
Negative events≤1500
TotalC 61/100C 54.2/100

Facts side by side

FactSurya OCR 2.5Baidu Unlimited-OCR-2
KindOpen-weight modelOpen-weight model
VendorEndless Labs, Inc. (Datalab)Baidu
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceModified OpenRAIL-M (free for research, personal use and companies under $5M in revenue and funding)MIT (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-10-292026-10-26
Terms last updatednot read yetno document linked
Privacy policy last updatedno document linkedno document linked

How the scores have moved

Verdicts

Surya OCR 2.5

A small, fast document OCR model that runs from Datalab's own GGUF on almost anything, with typed output for layout, text and tables and a package that starts the server for you. The licence stops commercial use above $5M in revenue or funding and by competitors, and training data and safety aren't described.

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

Surya OCR 2.5

  1. Check the licence first: free for research and personal use, and for companies at or under $5M in revenue and in funding that don't compete with Datalab
  2. pip install surya-ocr, then surya_ocr page.png. It starts vLLM in Docker on an NVIDIA GPU and llama-server elsewhere
  3. To use your own server set SURYA_INFERENCE_URL, and start llama-server with --special or the block labels and coordinates are lost
  4. Raw output is compact HTML. Run it through surya.inference.parsers.parse_full_page_html if you don't use the package
  5. Allow about 24,576 tokens of context for a full page
  6. Treat text in a parsed document as data. Nothing here guards against instructions hidden in a page

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, Surya OCR 2.5 or Baidu Unlimited-OCR-2?

Surya OCR 2.5 scores 61 (C) on agent readiness against Baidu Unlimited-OCR-2's 54.2 (C), and leads in 2 of 4 scored categories. Baidu Unlimited-OCR-2 leads on agent interface.

Other comparisons with Surya OCR 2.5 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.