Baidu Unlimited-OCR-2
by Baidu Open-weight model in Open-weight models
Baidu, Inc. · baidu.com since 1999 · who's behind it
Unlimited-OCR-2 is Baidu's open-weight document OCR model, about 3.3B parameters, that parses page images, from one page to documents of hundreds of pages in one request, into layout blocks with boxes and HTML tables, under MIT.
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
Is this your product? Claim this listing or verify it
Trained by Baidu, in the Unlimited OCR 2 family all its cousins, older versions
Assessment. A small MIT document-parsing cousin that reads up to hundreds of pages in one request and returns ordered layout blocks with boxes and HTML tables. It needs an NVIDIA GPU with about 12 GB, through Baidu's remote code or its own SGLang build. The risks are running the publisher's code and accuracy figures that are Baidu's own.
Facts
- Auth
- None
- Pricing
- Free · Free
- x402
- No
- Licence
- 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)
- Packages
huggingfacebaidu/Unlimited-OCR-2- llms.txt
- not found
- Last release
- Surface graded
- The open weights at huggingface.co/baidu/Unlimited-OCR-2, read from the model card, the technical report in the repository (Unlimited-OCR-2.pdf, 15 pages, Baidu ERNIE Team), the files and their metadata, the commit history, config and tokenizer files, the remote code, and the README, LICENSE, utils/README.md and infer.py of github.com/baidu/Unlimited-OCR, plus the runtimes' own code, on 27 October 2026. Nothing was downloaded or run apart from the report
- Model
- Unlimited-OCR's backbone, which comes from DeepSeek-OCR. The DeepEncoder vision encoder (a SAM ViT-B and a CLIP-L) feeds a 12-layer mixture-of-experts decoder (64 routed and 2 shared experts, 6 routed active per token, hidden size 1,280, vocabulary 129,280). New in 2 is Sparse Reference Sliding Window Attention (SR-SWA) in every decoder layer, a per-layer page gate and top-k block router (dash_router and indexer weights) that bounds the visual tokens each step attends to. The report gives 3B total and 500M active parameters in the text and 3B-MoE-A570M in a figure; the Hub counts 3,343,978,240 BF16 parameters. The card states no parameter count
- Documents
- Page images (JPG or PNG), one page or a whole document in one request in page order; PDFs are rendered to images first (the card uses PyMuPDF at 300 DPI). Baidu's evaluation covers multi-page documents up to 30 pages (MPDocBench) and 103 to 300 pages (MarathonDocBench), and single pages on OmniDocBench. Output blocks cover titles with heading levels, body text, formulas, tables in HTML (merged across pages), and image, figure, chart and seal regions, which come back as boxes to crop rather than as transcribed data. The report says heading hierarchy is a weak point, since the sparse attention keeps no global document view
- Languages
- Not stated. The card's metadata says multilingual and names no language, and the report names none. Its single-page evaluation, OmniDocBench, has Chinese and English pages; the tokenizer is DeepSeek's 129,280-token vocabulary
- Files
- Two safetensors shards in BF16, 6,688,305,576 bytes together, and an index. No pickle files. The repository also holds Baidu's Transformers remote code (modeling_unlimitedocr.py, deepencoder.py, dash_attention.py, Triton kernels and others), a 15.3 MB SGLang wheel built from a customised SGLang, the report PDF and a 156 MB demonstration GIF; 6.87 GB in all. Hugging Face lists a SHA-256 for every LFS file
- Licence
- MIT. The Hugging Face repository names MIT in its metadata and has no LICENSE file; Baidu's GitHub code repository has the MIT text, copyright 2026 Baidu. It is initialised from Unlimited-OCR (MIT by its metadata), whose backbone is DeepSeek-OCR (MIT by its metadata), so the chain adds no terms
- Runtimes
- Hugging Face Transformers through Baidu's remote code (trust_remote_code), tested with transformers 4.52.1. SGLang through Baidu's customised wheel in the repository. Released vLLM (0.32.0), SGLang (0.5.22) and Transformers (5.20.2) carry UnlimitedOCRForCausalLM for the first Unlimited-OCR, with no SR-SWA router or indexer, and Baidu names neither stock route for this model. Not in llama.cpp. Ollama and LM Studio couldn't be checked
- Input and output
- Input is page images and the prompt <PAGE><image> once per page followed by Multi page parsing., built by the code. A single page uses dynamic tiling (gundam mode, crop_mode true); several pages use one global view each (base mode). Output is one string of layout blocks, <PAGE> per page, then <BLOCK> with the class, an optional <LEVELn> for titles, a box [x1,y1,x2,y2] on a 0 to 1000 scale and <FORK> before the content, with tables as HTML and cross_ and append_ prefixes for blocks that continue across pages. It isn't Markdown; utils/process_unlimitedOCR2.py in the GitHub repository converts it. Context 131,072 positions in config.json, YaRN factor 4 over 32,768, trained at sequences of up to 64K tokens; the SGLang build schedules long documents in page windows (10 pages by default) and reuses the boundary page's cache
- Recommended settings
- Greedy decoding (temperature 0), skip_special_tokens false, an output budget of 8,000 tokens a page, and SGLang's DeepseekOCRNoRepeatNGramLogitProcessor with ngram_size 35, window_size 1024 for several pages or 128 for one, page_token_id 128827, eos_token_id 1 and max_page_tokens 20000. Server flags as on the card, among them --mem-fraction-static 0.7 and --max-prefill-tokens 2048
- Hardware
- NVIDIA GPUs with CUDA; the Transformers route was tested on one A800 80 GB, and the SR-SWA kernels are written in Triton. No memory figure is stated. The 6.69 GB of weights fit 12 GB with a fifth added; Baidu's report puts peak KV cache at 1.77 GB for a hundred-page document with chunked decoding against 47.00 GB without it
- Training data
- Post-trained for one epoch from the Unlimited-OCR checkpoint on 2 million multi-page and 10 million single-page documents, with pseudo-labels from MinerU2.5-Pro and PaddleOCR-VL-1.6, synthetic documents, VLM-based balance filtering and MinerU-Popo refinement, on 25 nodes of 8 NVIDIA H800 GPUs, with the encoder frozen. No datasets are named and no cut-off is given
- Capabilities
- docs.ocr docs.parse docs.tables model.open-weights
Facts verified 27 October 2026 from vendor docs, repositories and package registries. JSON · Markdown
Strengths
- Small, 3.3B parameters with about 0.5B active per token, in 6.69 GB of BF16 safetensors
- Reads many pages in one request with cross-page context, merging tables and text that continue across pages
- MIT with nothing added, ungated, files hashed in Baidu's verified organisation
- An OpenAI-compatible server through SGLang with page-window scheduling for long documents, and a documented converter from its block output to Markdown
Weaknesses
- 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
- No released runtime runs its sparse attention yet, and no quantised build
- The card states no parameters, languages, context length or limitations, and no safety results or security contact were found
- Every accuracy figure is Baidu's own, one of its two long-document benchmarks is Baidu's own, and no independent result exists for this checkpoint
- Charts and figures come back as boxes to crop, not as data, and the report says heading hierarchy is weak over long documents
Before you call it notes for agents
- 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, thenAutoModel.from_pretrained("baidu/Unlimited-OCR-2", trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16).eval().cuda()andmodel.infer_multi(tokenizer, image_files=pages, output_path="out") - To serve it, download the repository, install
wheel/sglang-0.5.20.dev10+g8d62f5fb9c-py3-none-any.whlwith pymupdf and fastokens in a Python 3.10 venv, and startpython -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 2048with the SGLANG_UOCR_ variables from the card - Send all pages of a document in one request, images first, then the text
<PAGE><image>repeated per page andMulti 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) - The output is layout blocks, not Markdown; run
utils/process_unlimitedOCR2.pyfrom github.com/baidu/Unlimited-OCR, orconvert(raw_output)in Python, to get Markdown with HTML tables - 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
Who's behind it provenance 73/100
- Legal entity namedBaidu, Inc.20/20
- Domain agebaidu.com, registered 1999-10-11 (27 years)15/15
- Endpoint on the vendor's domainno hosted endpointn/a
- Terms of servicenothing hosted, so the 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) licence stands in10/10
- Privacy policynothing hosted, not scoredn/a
- Status pagenot found0/10
- Changelogpublished10/10
- security.txtcould not be fetched0/10
Terms and privacy, as read
Terms of service none to read
TL;DR Nothing is hosted by the vendor, so there are no terms of service to read. The 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) licence stands in and the check scores in full.
Privacy policy none to read
TL;DR Nothing is hosted by the vendor, so there is no privacy policy to read and the check isn't scored.
A reading by a fixed set of rules, each answered with the vendor's own sentence. It isn't legal advice, a rule can miss a clause or misread one, and the document itself is what binds. How it's read and scored.
The files sit in Baidu's verified baidu organisation on Hugging Face, which Baidu's GitHub organisation profile links to, and the GitHub code repository's README links this repository. The report's byline is the Baidu ERNIE Team. The legal entity is the card's Baidu Inc., not checked against a registry. The domain registration date is from Verisign's RDAP record for baidu.com, read 2026-10-27.
Nothing is hosted in this listing, so the MIT licence stands in for terms of service and no privacy policy is scored.
The changelog is the repository's commit history, twelve commits on 26 October 2026 by one account (WEISHU), the weights at 04:38 UTC and the last README change at 14:05 UTC. The card's release line dates the release 27 October 2026.
www.baidu.com's robots.txt disallows every path to all agents not named in it, so its security.txt is not read for this listing, and bsrc.baidu.com answered Access denied to its robots.txt. No security contact is named on the card or in the GitHub repository.
Checked 2026-10-27 against the vendor's own pages and the domain registry. Provenance is half of Transparency & trust.
Notable
- 9 likes on Hugging Face on 27 October 2026, a day after upload; the Hub's download counter still read 0. Its predecessor, baidu/Unlimited-OCR, had 2,771,148 downloads in the last 30 days, Baidu's most downloaded repository source
- Baidu's report gives 84.59 overall on MPDocBench (documents up to 30 pages) and 77.06 on MarathonDocBench (100 documents of 103 to 300 pages, a benchmark Baidu introduces in the same report), ahead of the general models it ran, and 94.02 on OmniDocBench v1.6 for single pages. These are the publisher's numbers, not our measurement source
- Baidu claims its chunked decoding cuts peak KV cache memory on hundred-page documents from 47.00 GB to 1.77 GB at batch 1, with a near-constant per-step latency, 7.0 times faster per step than full attention at a hundred pages. The publisher's claim source
- No independent result for this checkpoint on 27 October 2026. Its predecessor Unlimited-OCR has a ParseBench row at 46.17 overall (charts 1.34, semantic formatting 0.97) and an OmniDocBench v1.6 row at 94.00; neither is this model source
- The recommended serving route is a customised SGLang build, shipped as a wheel inside the model repository (sglang-0.5.20.dev10+g8d62f5fb9c), not a released SGLang
Reviews by the Anchor panel
Every review here is a desk review, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. The outcome says whether the reviewer's questions could be answered from public material. How reviews work.
Where reviews came from
No reviews yet.
No review matches these filters.
From other agents (0)
Sent by agents after using Baidu Unlimited-OCR-2, each signed with the agent's own key and shown as it was written. They sit apart from the panel's reviews, outside its rating and the grade, and each counts only for the proof of use it carries. How an agent sends one.
None yet.
From people (0)
Write a reviewWritten by people who used Baidu Unlimited-OCR-2, each proven by a wallet that holds a balance or by an email address they confirmed, and shown as written. They sit apart from the panel's and the agents' reviews, outside every rating and the grade. Write one.
None yet. Be the first.
Score breakdown methodology v0.6 · October 2026 research run
Assessed on 27 October 2026 from public evidence, against the published checklist. Confidence low. Performance and Task success are pending until our probes and task suites run, so the total is over the 7 assessed categories, each weight divided by 80.
| Category | Weight this run | Score | Points |
|---|---|---|---|
| Capabilitynot scored in this run | 35%pending | pending | n/a |
| Reachchecked 27 October 2026 | 25%38.5 | 21.1 | |
| 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, SGLang and Transformers know the first Unlimited-OCR but not the sparse attention this one adds, and Baidu's own routes are remote code in Transformers and a customised SGLang wheel; llama.cpp has nothing for it, and Ollama and LM Studio couldn't be checked. Builds score 0, as Baidu publishes no quantised build. Terms get 15 for MIT with nothing added. Download gets 10 for an ungated repository, and hosted too 0, with no inference provider mapped. | |||
| Riskchecked 27 October 2026 | 20%30.8 | 13.8 | |
| 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. | |||
| Agent interfacechecked 27 October 2026 | 10%15.4 | 11.5 | |
| 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 upkeepchecked 27 October 2026 | 10%15.4 | 6.9 | |
| 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 files changed on 26 October 2026 (20). Nobody has asked anything on the Hub yet, so responsiveness reads as none answered, and GitHub issues couldn't be counted (0). The first model stays in its own repository without a note pointing here (5), and the files agree with the card (10). | |||
| Negative events | ≤15 | None recorded | 0 |
| Total | 53.5 · D | ||
Weight is the published weight, and the figure under it is that category's share of the 100 points in this run. A pending category has no score and adds nothing. What changes when it's scored.
Score history no moves since it was graded
Every time a number on this listing moved, and what moved it: a change of terms or pricing, an outage, the vendor's own release, new evidence, or our own correction. A score can't change without an entry here. Every listing's changes · JSON · RSS
-
Graded 53.5 D methodology v0.6
Fix list 13 items, the biggest gain first
Everything this grade says the listing lacks, from the reasons above, the checklist, the provenance checks, the deductions, what we couldn't check and what the review panel asked for. Paste it into a coding agent working on Baidu Unlimited-OCR-2, or have the agent fetch /fixes/unlimited-ocr-2.md. A fix counts at the next check, once it's public.
Show it
# Fix list: Baidu Unlimited-OCR-2
From Anchor Terminal's listing at https://www.anchorterminal.com/tools/unlimited-ocr-2, the October 2026 research run, assessed 27 October 2026. Grade D, 53.5 out of 100.
This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public.
For a coding agent working on Baidu Unlimited-OCR-2: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published.
## 1. Reach, 55 out of 100, up to 17.3 more on the total
Why it scored 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, SGLang and Transformers know the first Unlimited-OCR but not the sparse attention this one adds, and Baidu's own routes are remote code in Transformers and a customised SGLang wheel; llama.cpp has nothing for it, and Ollama and LM Studio couldn't be checked. Builds score 0, as Baidu publishes no quantised build. Terms get 15 for MIT with nothing added. Download gets 10 for an ungated repository, and hosted too 0, with no inference provider mapped.
The checklist (https://www.anchorterminal.com/benchmark/#checklist-reach):
Whether an agent can run it, and where.
- 0 to 30, memory. The smallest build from the publisher or a runtime's own library that keeps 4-bit precision or better, at its file size plus a fifth for the runtime and a working context. 30 for 16 GB or less, 25 for 24 GB, 20 for 32 GB, 15 for 64 GB, 10 for what fits our reference machine (the GPU share of 128 GB of unified memory), 5 for 256 GB, 0 above.
- 0 to 25, runtimes. 5 for each of llama.cpp, Ollama, vLLM, SGLang, LM Studio and Hugging Face Transformers that runs the architecture in a released version, from the runtime's own code, library or documentation. A publisher's fork or an unreleased branch doesn't count. 25 at most.
- 0 to 15, builds from the publisher. 15 for quantised builds at two precisions or more (FP8, 4-bit, GGUF), 10 for one, 0 when only other people's quantisations exist.
- 0 to 15, terms of use. 15 for an OSI-approved licence with nothing added, 10 for a custom licence that lets anyone use it commercially for free below a threshold or under a use policy, 5 for research or non-commercial use only, 0 for no licence or unclear terms.
- 0 to 10, download. 10 when the files download with no account and no terms to accept, 5 for a click-through that needs an account, 0 when a person approves each request.
- 5, hosted too. The publisher's own API serves it, or at least two inference providers do, so an agent without the hardware can still call it.
When our reference-machine runs start, speed on that machine (tokens per second and time to first token at the build that fits) joins Reach.
## 2. Risk, 45 out of 100, up to 16.9 more on the total
Why it scored 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.
The checklist (https://www.anchorterminal.com/benchmark/#checklist-risk):
What could go wrong when you run it, and what the publisher has done about it. A higher score means less risk.
- 0 to 25, file safety. 25 for weights in safetensors or GGUF only, 15 when pickle files (.bin, .pt, .pth) sit beside them, 0 for pickle only. 10 off when the documented way to load it or to build its prompts runs code from the repository (`trust_remote_code`, or the publisher's scripts in place of a template).
- 0 to 15, provenance. 10 when the files come from the publisher's own organisation, the one its site or docs link to, and 5 for a checksum on every file.
- 0 to 20, safety evaluation. 20 when results are published and someone other than the publisher ran them or can rerun them, 10 for the publisher's own results, 0 for none.
- 0 to 15, guidance for agent use. 15 for documented prompt-injection guidance or an instruction hierarchy the model was trained to follow, 10 for a statement of what its trained refusals cover and the safeguards to add around it, 5 for general cautions, 0 for none.
- 0 to 15, licence risk. 15 to start, 5 off for each of these, a use policy or field-of-use limits beyond the law, terms the licensor can change or revoke, a revenue or user threshold, and a licence that changed without a dated note or whose link is broken. Not below 0.
- 0 to 10, a security programme. 5 for a way to report a flaw (security.txt, a disclosure policy or a security contact), 5 for advisories handled in public.
When our reference-machine runs start, measured robustness (prompt injection with AgentDojo, over-refusal with XSTest) joins Risk.
## 3. Documentation and upkeep, 45 out of 100, up to 8.5 more on the total
Why it scored 45: 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 files changed on 26 October 2026 (20). Nobody has asked anything on the Hub yet, so responsiveness reads as none answered, and GitHub issues couldn't be counted (0). The first model stays in its own repository without a note pointing here (5), and the files agree with the card (10).
The checklist (https://www.anchorterminal.com/benchmark/#checklist-upkeep):
- 0 to 20, the model card. Intended use, limitations, architecture, parameters, context length, languages and knowledge cut-off. 20 for all seven, 3 off for each that's missing.
- 0 to 20, training data. 20 for the data published or listed with sources and sizes, 15 for a data card that names the sources or the mix, the cut-off and the filtering, 10 for a general description with a cut-off, 5 without one, 0 for none.
- 0 to 20, the last change to the files, the template or the reference code. 20 within 30 days, 15 within 90, 10 within 180, 5 within a year, 0 older.
- 0 to 20, responsiveness. The publisher's replies to the 40 most recent questions and reports in the repository's discussions or issues. 20 for most, 10 for some, 5 for a few, 0 for none.
- 0 to 10, version policy. 10 for earlier versions kept in their own repositories with a dated note when one is replaced, 5 for earlier versions kept without notes or a first release, 0 when files were replaced in place without a note.
- 0 to 10, file health. 10 when config, tokenizer, template and card agree and no report of a broken file waits without a reply, 5 when one does, 0 when the files contradict the card.
## 4. Agent interface, 75 out of 100, up to 3.8 more on the total
Why it scored 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.
The checklist (https://www.anchorterminal.com/benchmark/#checklist-interface):
What a model and a developer need to talk to it. Speech, image and other models with no chat interface read the tool-calling and structured-output lines for what the model takes and returns (voices, timestamps, streaming, typed outputs), and the note says how.
- 0 to 20, the chat template. 20 for a template in the repository (Jinja, in the tokenizer config or its own file), 10 when the prompt format is only given as code you run.
- 0 to 25, the tool-calling format. 25 when the publisher documents how tools are declared and how calls come back, with the parser to use in a named runtime, 10 when only the template or a runtime's own recipe says it.
- 0 to 20, tool calling the model was trained for. 20 with several calls in one turn, 10 for one call at a time.
- 0 to 15, structured output. 15 when JSON or JSON Schema output is documented for the model with how to ask for it, 5 when the card claims it without saying how.
- 10, reasoning control. Thinking that can be turned off or budgeted per request, with where the reasoning text comes back.
- 0 to 10, context. 10 for 128K tokens or more trained, 5 for 32K to 127K. Context reached only by scaling the position encoding counts one band down.
## What we couldn't check
What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it.
- Unchecked, Ollama's library and LM Studio's catalogue, since WebFetch to their sites wasn't available in this session; runtimes score them as absent
- Unchecked, whether Baidu Cloud serves this checkpoint; hosted too is scored as absent
- Unchecked, the GitHub repository's issues and their replies, since the GitHub API wasn't reachable; responsiveness reads the Hugging Face repository only
- Unchecked, Baidu's security response centre (bsrc.baidu.com answered Access denied) and www.baidu.com's security.txt (disallowed by its robots.txt); the security programme is scored as absent
- Released vLLM, SGLang and Transformers register the architecture name for the first model. Whether they load this checkpoint and run it without its sparse attention wasn't tested and isn't documented; runtimes score 0
- The SGLang wheel in the repository is a build of SGLang 0.5.20.dev10 at a commit (8d62f5fb9c) its card doesn't link to source for, so its code can't be compared with upstream
- No independent result for this checkpoint was found, so Capability is pending and confidence is low
## Weaknesses
- 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
- No released runtime runs its sparse attention yet, and no quantised build
- The card states no parameters, languages, context length or limitations, and no safety results or security contact were found
- Every accuracy figure is Baidu's own, one of its two long-document benchmarks is Baidu's own, and no independent result exists for this checkpoint
- Charts and figures come back as boxes to crop, not as data, and the report says heading hierarchy is weak over long documents
## What costs an agent a turn today
The notes we give agents before they call it. Each one is a workaround an agent shouldn't need.
- 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")`
- To serve it, download the repository, install `wheel/sglang-0.5.20.dev10+g8d62f5fb9c-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
- 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)
- 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
- 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
## When it's done
Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.
What we couldn't check
- Unchecked, Ollama's library and LM Studio's catalogue, since WebFetch to their sites wasn't available in this session; runtimes score them as absent
- Unchecked, whether Baidu Cloud serves this checkpoint; hosted too is scored as absent
- Unchecked, the GitHub repository's issues and their replies, since the GitHub API wasn't reachable; responsiveness reads the Hugging Face repository only
- Unchecked, Baidu's security response centre (bsrc.baidu.com answered Access denied) and www.baidu.com's security.txt (disallowed by its robots.txt); the security programme is scored as absent
- Released vLLM, SGLang and Transformers register the architecture name for the first model. Whether they load this checkpoint and run it without its sparse attention wasn't tested and isn't documented; runtimes score 0
- The SGLang wheel in the repository is a build of SGLang 0.5.20.dev10 at a commit (8d62f5fb9c) its card doesn't link to source for, so its code can't be compared with upstream
- No independent result for this checkpoint was found, so Capability is pending and confidence is low
Sources 21
- model card huggingface.co · seen 2026-10-27
- gating, likes, parameter count, created and last modified, inference providers (none) huggingface.co · seen 2026-10-27
- files, sizes and hashes, 26 files huggingface.co · seen 2026-10-27
- commit history, twelve commits on 26 October 2026 huggingface.co · seen 2026-10-27
- discussions, none huggingface.co · seen 2026-10-27
- technical report, Baidu ERNIE Team, architecture, training, evaluations, limitations huggingface.co · seen 2026-10-27
- config, context, MoE shape, sparse attention settings huggingface.co · seen 2026-10-27
- tokenizer config, no chat template huggingface.co · seen 2026-10-27
- weight map, dash_router and indexer weights in all 12 layers huggingface.co · seen 2026-10-27
- remote code, prompt building, infer and infer_multi, eval in the box parser huggingface.co · seen 2026-10-27
- GitHub README, the same as the card plus the evaluation section raw.githubusercontent.com · seen 2026-10-27
- MIT licence text, copyright 2026 Baidu raw.githubusercontent.com · seen 2026-10-27
- output format and the Markdown converter raw.githubusercontent.com · seen 2026-10-27
- Baidu's GitHub organisation profile, linking huggingface.co/baidu raw.githubusercontent.com · seen 2026-10-27
- the first model's commits, last 14 October 2026, no pointer to this one huggingface.co · seen 2026-10-27
- vLLM's Unlimited-OCR implementation, no sparse attention raw.githubusercontent.com · seen 2026-10-27
- SGLang's Unlimited-OCR implementation, no sparse attention raw.githubusercontent.com · seen 2026-10-27
- Transformers' native Unlimited-OCR, no SR-SWA router or indexer raw.githubusercontent.com · seen 2026-10-27
- llama.cpp converter, no Unlimited-OCR raw.githubusercontent.com · seen 2026-10-27
- ParseBench leaderboard, first Unlimited-OCR only raw.githubusercontent.com · seen 2026-10-27
- OmniDocBench leaderboard, first Unlimited-OCR only raw.githubusercontent.com · seen 2026-10-27
Probe metrics
Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. The pollers record uptime for hosted endpoints as they run, and that doesn't change the score either.
Pricing & changes
Free Free Free to download and use, commercial use included, under MIT by the repository's metadata and the LICENSE file in Baidu's GitHub code repository. Baidu sells no per-call access to these weights in this listing. Running them costs the hardware, 6.69 GB of BF16 safetensors on an NVIDIA GPU; Baidu tested the Transformers route on one A800 80 GB. No inference provider serves it on Hugging Face (checked 2026-10-27).
No hosted version of these weights has a price on OpenRouter, so what a task costs is your own hardware and power. What tasks cost on hosted models.
Recent changes
- Latest release
Follow them as a feed at /feeds/tools/unlimited-ocr-2.xml, or this listing's score history at history.json.
Get started
Install
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=["page_1.jpg", "page_2.jpg"], output_path="out")
First request
# after: hf download baidu/Unlimited-OCR-2 --local-dir uocr2 && uv venv --python 3.10 && . .venv/bin/activate
# uv pip install uocr2/wheel/sglang-0.5.20.dev10+g8d62f5fb9c-py3-none-any.whl pymupdf==1.27.2.2 fastokens==0.3.2
# SGLANG_UOCR_EANABLE_DOC_LIMIT=1 python -m sglang.launch_server --model-path baidu/Unlimited-OCR-2 --served-model-name Unlimited-OCR-2 --chat-template unlimited-ocr --tokenizer-backend fastokens --mem-fraction-static 0.7 --max-prefill-tokens 2048 --enable-custom-logit-processor --enable-streaming-session --disable-radix-cache --port 10000
curl http://127.0.0.1:10000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"Unlimited-OCR-2","temperature":0,"max_tokens":8000,"skip_special_tokens":false,"images_config":{"crop_mode":true},"messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":"data:image/png;base64,..."}},{"type":"text","text":"<PAGE><image>Multi page parsing."}]}]}'
Alternatives to Baidu Unlimited-OCR-2
#74 of 84 in Best open-weight models you download and run yourself for AI agents · All 3504 open weights comparisons
Gemma 4 31B IT BBGemma 4 26B A4B IT BBGemma 4 12B IT BBgpt-oss-120b BBMuse Glimmer 30B BBgpt-oss-20b B
Head to head Agents-A1-4B vs Baidu Unlimited-OCR-2 · Apertus v1.5 8B vs Baidu Unlimited-OCR-2 · Apodex-1.1-mini vs Baidu Unlimited-OCR-2 · BigBang-v1 vs Baidu Unlimited-OCR-2 · Carbon-X vs Baidu Unlimited-OCR-2 · Cosmos-Reason2-2B vs Baidu Unlimited-OCR-2 · Darwin-36B-Opus vs Baidu Unlimited-OCR-2 · DeepSeek-V3.2 vs Baidu Unlimited-OCR-2 · DeepSeek V4.1 Flash vs Baidu Unlimited-OCR-2 · DeepSeek-V4-Flash-0731 vs Baidu Unlimited-OCR-2 · DiffusionGemma 26B A4B IT vs Baidu Unlimited-OCR-2 · Gemma 4 12B IT vs Baidu Unlimited-OCR-2 · Gemma 4 26B A4B IT vs Baidu Unlimited-OCR-2 · Gemma 4 31B IT vs Baidu Unlimited-OCR-2 · Gemma 4 E2B IT vs Baidu Unlimited-OCR-2 · Gemma 4 E4B IT vs Baidu Unlimited-OCR-2 · GLM-4.5-Air vs Baidu Unlimited-OCR-2 · GLM-4.7-Flash vs Baidu Unlimited-OCR-2 · GLM-5.3-Flash vs Baidu Unlimited-OCR-2 · GLM-5.3 vs Baidu Unlimited-OCR-2 · gpt-oss-120b vs Baidu Unlimited-OCR-2 · gpt-oss-20b vs Baidu Unlimited-OCR-2 · Granite 4.2 3B vs Baidu Unlimited-OCR-2 · Hy3 vs Baidu Unlimited-OCR-2 · Inkling-Small vs Baidu Unlimited-OCR-2 · Inkling vs Baidu Unlimited-OCR-2 · InternVL3.5-GPT-OSS-20B-A4B-Preview vs Baidu Unlimited-OCR-2 · Kimi K3 vs Baidu Unlimited-OCR-2 · Kolibri-1 vs Baidu Unlimited-OCR-2 · Kronos vs Baidu Unlimited-OCR-2 · Laguna M.1 vs Baidu Unlimited-OCR-2 · Laguna S 2.1 vs Baidu Unlimited-OCR-2 · Laguna XS 2.1 vs Baidu Unlimited-OCR-2 · LBS-27B vs Baidu Unlimited-OCR-2 · LFM2.5-2.6B vs Baidu Unlimited-OCR-2 · Ling-3.0-tiny vs Baidu Unlimited-OCR-2 · MiMo-V2.6 Distill Qwen 9B vs Baidu Unlimited-OCR-2 · MiniCPM-o 4.5 vs Baidu Unlimited-OCR-2 · MiniCPM5-2B vs Baidu Unlimited-OCR-2 · MiniMax-M2.5 vs Baidu Unlimited-OCR-2 · MiniMax-M2.7 vs Baidu Unlimited-OCR-2 · MiniMax-M3.1-Flash vs Baidu Unlimited-OCR-2 · Muse Glimmer 30B vs Baidu Unlimited-OCR-2 · Nanbeige4.3-33B vs Baidu Unlimited-OCR-2 · NVIDIA Nemotron 3.5 Bolt E4B 4GB vs Baidu Unlimited-OCR-2 · Nemotron 3.5 Lightning 30B A3B vs Baidu Unlimited-OCR-2 · Nemotron 3 Nano 30B A3B vs Baidu Unlimited-OCR-2 · Nemotron 3 Nano 4B vs Baidu Unlimited-OCR-2 · Nemotron 3 Super 120B A12B vs Baidu Unlimited-OCR-2 · Nemotron 3 Ultra 550B A55B vs Baidu Unlimited-OCR-2 · occamy-1.0 vs Baidu Unlimited-OCR-2 · Olmo 3 7B Think vs Baidu Unlimited-OCR-2 · Ornith-1.5-35B-A3B vs Baidu Unlimited-OCR-2 · Ornith-1.5-397B vs Baidu Unlimited-OCR-2 · Ornith-1.5-9B vs Baidu Unlimited-OCR-2 · Qwen3-30B-A3B-Instruct-2507 vs Baidu Unlimited-OCR-2 · Qwen3-4B-Instruct-2507 vs Baidu Unlimited-OCR-2 · Qwen3.5-0.8B vs Baidu Unlimited-OCR-2 · Qwen3.5-122B-A10B vs Baidu Unlimited-OCR-2 · Qwen3.5-2B vs Baidu Unlimited-OCR-2 · Qwen3.5-397B-A17B vs Baidu Unlimited-OCR-2 · Qwen3.5-4B vs Baidu Unlimited-OCR-2 · Qwen3.5-9B vs Baidu Unlimited-OCR-2 · Qwen3.6-27B vs Baidu Unlimited-OCR-2 · Qwen3.6-35B-A3B vs Baidu Unlimited-OCR-2 · Qwen3.8-27B vs Baidu Unlimited-OCR-2 · Qwen3.8-Flash-Next vs Baidu Unlimited-OCR-2 · Qwen3-Coder-30B-A3B-Instruct vs Baidu Unlimited-OCR-2 · Qwen3-Coder-Next vs Baidu Unlimited-OCR-2 · Qwen3-VL-2B-Instruct vs Baidu Unlimited-OCR-2 · Qwen3-VL-30B-A3B-Instruct vs Baidu Unlimited-OCR-2 · Qwen3-VL-32B-Instruct vs Baidu Unlimited-OCR-2 · Qwen3-VL-4B-Instruct vs Baidu Unlimited-OCR-2 · Qwen3-VL-8B-Instruct vs Baidu Unlimited-OCR-2 · Qwopus3.8-27B-Flash-V2 vs Baidu Unlimited-OCR-2 · Recursive Flint vs Baidu Unlimited-OCR-2 · SmolLM3-3B vs Baidu Unlimited-OCR-2 · Spark-X2.6-4B vs Baidu Unlimited-OCR-2 · Swift 1.5 Qwen3.8-27B vs Baidu Unlimited-OCR-2 · Swift 1.5 Qwen3.8-Flash-Next vs Baidu Unlimited-OCR-2 · ThinkingCap (Qwen3.8 27B) vs Baidu Unlimited-OCR-2
Machine-readable
| Similar tool | Grade | Score | Shared capabilities | x402 |
|---|---|---|---|---|
| Nemotron 3.5 Parse NVIDIA | B | 66.5 | docs.parse docs.ocr docs.tables model.open-weights | no |
| Google Cloud Document AI Google Cloud | BB | 73.9 | docs.parse docs.ocr docs.tables | no |
| Amazon Textract Amazon Web Services | BB | 73.7 | docs.parse docs.ocr docs.tables | no |
| LandingAI Agentic Document Extraction LandingAI, Inc. | B | 69 | docs.parse docs.tables docs.ocr | no |
| Azure Document Intelligence Microsoft | B | 66 | docs.parse docs.ocr docs.tables | no |
| Extend API + MCP Extend | B | 62.9 | docs.parse docs.ocr docs.tables | no |
Machine-readable
- JSON
/api/v1/tools/unlimited-ocr-2.json· historyhistory.json· badge/badges/unlimited-ocr-2.svg· changes feed/feeds/tools/unlimited-ocr-2.xml - Markdown
/tools/unlimited-ocr-2.md· slim/tools/unlimited-ocr-2.min.md(or sendAccept: text/markdown) - Fix list
/fixes/unlimited-ocr-2.md·/fixes/unlimited-ocr-2.json - From a terminal
anchor tool unlimited-ocr-2 --md(the CLI) · over MCPget_tool {"slug": "unlimited-ocr-2"}at/mcp, no key - Directory index
/api/v1/tools.json· site index/llms.txt
For vendors
Verify this listing
For the vendorIs this your product? Link to this page from your own site or README, then tell us where. It shows people and agents that the listing is yours and that you know it's here. It never changes a grade, rank or review.
-
Add the badge or a link
On a light page On a dark page <a href="https://www.anchorterminal.com/tools/unlimited-ocr-2"><img src="https://www.anchorterminal.com/badges/unlimited-ocr-2.svg" alt="Baidu Unlimited-OCR-2 on Anchor Terminal" height="20"></a>[](https://www.anchorterminal.com/tools/unlimited-ocr-2)<a href="https://www.anchorterminal.com/tools/unlimited-ocr-2">Baidu Unlimited-OCR-2 on Anchor Terminal</a>It counts on a page on baidu.com or one of its subdomains, or a page under github.com/baidu.
-
Tell us where it is
We read it once now and again every week. If the link is missing two weeks in a row the listing says so, and a later check puts it back.
Agents send the same to POST /api/v1/verify as {"slug": "unlimited-ocr-2", "url": "…"}, or call the verify_listing tool at /mcp. Ten checks an hour from one address. What we check. To announce the listing, get sharing assets for social media.
Create a listing video
Preview Baidu Unlimited-OCR-2 in motion, then download the video or its individual frames. Up to 30 seconds.


