{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-27",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.6",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "tool": {
    "slug": "unlimited-ocr-2",
    "name": "Baidu Unlimited-OCR-2",
    "vendor": "Baidu",
    "vendorUrl": "https://github.com/baidu",
    "kind": "weights",
    "category": "open-weights",
    "summary": "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.",
    "url": "https://www.anchorterminal.com/tools/unlimited-ocr-2",
    "markdownUrl": "https://www.anchorterminal.com/tools/unlimited-ocr-2.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/unlimited-ocr-2.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/unlimited-ocr-2.json",
    "repo": "https://huggingface.co/baidu/Unlimited-OCR-2",
    "license": "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)",
    "transports": [],
    "packages": [
      {
        "registry": "huggingface",
        "name": "baidu/Unlimited-OCR-2"
      }
    ],
    "auth": "none",
    "authNotes": "The weights download from Hugging Face with no account, token or terms to accept. The repository isn't gated (checked 2026-10-27).",
    "pricing": "free",
    "pricingNotes": "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).",
    "priceSummary": "Free",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "Weights you download and run yourself, so there is nothing to pay per call and no payment protocol (checked 2026-10-27).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": null,
      "npmWeekly": null,
      "pypiWeekly": null,
      "asOf": "2026-10-27"
    },
    "docsUrl": "https://huggingface.co/baidu/Unlimited-OCR-2",
    "capabilities": [
      "docs.ocr",
      "docs.parse",
      "docs.tables",
      "model.open-weights"
    ],
    "tags": [
      "open-weights",
      "model",
      "ocr",
      "document-parsing",
      "multi-page",
      "long-documents",
      "tables",
      "layout",
      "bounding-boxes",
      "vision",
      "mixture-of-experts",
      "safetensors",
      "self-hosted",
      "new"
    ],
    "lastRelease": "2026-10-26",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 53.5,
      "grade": "D",
      "agentReady": false,
      "rank": 0,
      "ranked": false,
      "notRankedWhy": "An open-weight model, graded by the open-weight checklist and ranked among open-weight models, not against tools",
      "rankOf": 1217,
      "categoryRank": 74,
      "methodology": "0.6",
      "run": "2026-10-01",
      "scores": {
        "interface": 75,
        "reach": 55,
        "risk": 45,
        "upkeep": 45
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "capability",
          "name": "Capability",
          "weight": 35,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending for this listing. Nobody independent has published results for it in at least two areas yet, so its weight is shared across the other four and the total is capped at 61 until they do or our own runs start."
        },
        {
          "key": "reach",
          "name": "Reach",
          "weight": 25,
          "effectiveWeight": 38.46,
          "score": 55,
          "points": 21.15,
          "reason": "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.",
          "checked": "2026-10-27"
        },
        {
          "key": "risk",
          "name": "Risk",
          "weight": 20,
          "effectiveWeight": 30.77,
          "score": 45,
          "points": 13.85,
          "reason": "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.",
          "checked": "2026-10-27"
        },
        {
          "key": "interface",
          "name": "Agent interface",
          "weight": 10,
          "effectiveWeight": 15.38,
          "score": 75,
          "points": 11.54,
          "reason": "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.",
          "checked": "2026-10-27"
        },
        {
          "key": "upkeep",
          "name": "Documentation and upkeep",
          "weight": 10,
          "effectiveWeight": 15.38,
          "score": 45,
          "points": 6.92,
          "reason": "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).",
          "checked": "2026-10-27"
        }
      ],
      "assessment": {
        "date": "2026-10-27",
        "basis": "public evidence",
        "confidence": "low",
        "notes": {
          "capability": "Pending for this listing. Independent results were found in 0 areas (none), and Capability needs 2. Its weight is shared across the other four categories and the total is capped at 61 until there are more, or our own runs start.",
          "interface": "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.",
          "reach": "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.",
          "risk": "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.",
          "upkeep": "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)."
        },
        "sources": [
          {
            "what": "model card",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2",
            "seen": "2026-10-27"
          },
          {
            "what": "gating, likes, parameter count, created and last modified, inference providers (none)",
            "url": "https://huggingface.co/api/models/baidu/Unlimited-OCR-2",
            "seen": "2026-10-27"
          },
          {
            "what": "files, sizes and hashes, 26 files",
            "url": "https://huggingface.co/api/models/baidu/Unlimited-OCR-2/tree/main?recursive=true",
            "seen": "2026-10-27"
          },
          {
            "what": "commit history, twelve commits on 26 October 2026",
            "url": "https://huggingface.co/api/models/baidu/Unlimited-OCR-2/commits/main",
            "seen": "2026-10-27"
          },
          {
            "what": "discussions, none",
            "url": "https://huggingface.co/api/models/baidu/Unlimited-OCR-2/discussions",
            "seen": "2026-10-27"
          },
          {
            "what": "technical report, Baidu ERNIE Team, architecture, training, evaluations, limitations",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2/blob/main/Unlimited-OCR-2.pdf",
            "seen": "2026-10-27"
          },
          {
            "what": "config, context, MoE shape, sparse attention settings",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2/raw/main/config.json",
            "seen": "2026-10-27"
          },
          {
            "what": "tokenizer config, no chat template",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2/raw/main/tokenizer_config.json",
            "seen": "2026-10-27"
          },
          {
            "what": "weight map, dash_router and indexer weights in all 12 layers",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2/raw/main/model.safetensors.index.json",
            "seen": "2026-10-27"
          },
          {
            "what": "remote code, prompt building, infer and infer_multi, eval in the box parser",
            "url": "https://huggingface.co/baidu/Unlimited-OCR-2/raw/main/modeling_unlimitedocr.py",
            "seen": "2026-10-27"
          },
          {
            "what": "GitHub README, the same as the card plus the evaluation section",
            "url": "https://raw.githubusercontent.com/baidu/Unlimited-OCR/main/README.md",
            "seen": "2026-10-27"
          },
          {
            "what": "MIT licence text, copyright 2026 Baidu",
            "url": "https://raw.githubusercontent.com/baidu/Unlimited-OCR/main/LICENSE",
            "seen": "2026-10-27"
          },
          {
            "what": "output format and the Markdown converter",
            "url": "https://raw.githubusercontent.com/baidu/Unlimited-OCR/main/utils/README.md",
            "seen": "2026-10-27"
          },
          {
            "what": "Baidu's GitHub organisation profile, linking huggingface.co/baidu",
            "url": "https://raw.githubusercontent.com/baidu/.github/main/profile/README.md",
            "seen": "2026-10-27"
          },
          {
            "what": "the first model's commits, last 14 October 2026, no pointer to this one",
            "url": "https://huggingface.co/api/models/baidu/Unlimited-OCR/commits/main",
            "seen": "2026-10-27"
          },
          {
            "what": "vLLM's Unlimited-OCR implementation, no sparse attention",
            "url": "https://raw.githubusercontent.com/vllm-project/vllm/v0.32.0/vllm/model_executor/models/unlimited_ocr.py",
            "seen": "2026-10-27"
          },
          {
            "what": "SGLang's Unlimited-OCR implementation, no sparse attention",
            "url": "https://raw.githubusercontent.com/sgl-project/sglang/v0.5.22/python/sglang/srt/models/unlimited_ocr.py",
            "seen": "2026-10-27"
          },
          {
            "what": "Transformers' native Unlimited-OCR, no SR-SWA router or indexer",
            "url": "https://raw.githubusercontent.com/huggingface/transformers/v5.20.2/src/transformers/models/unlimited_ocr/modeling_unlimited_ocr.py",
            "seen": "2026-10-27"
          },
          {
            "what": "llama.cpp converter, no Unlimited-OCR",
            "url": "https://raw.githubusercontent.com/ggml-org/llama.cpp/master/convert_hf_to_gguf.py",
            "seen": "2026-10-27"
          },
          {
            "what": "ParseBench leaderboard, first Unlimited-OCR only",
            "url": "https://raw.githubusercontent.com/run-llama/ParseBench/main/leaderboard.csv",
            "seen": "2026-10-27"
          },
          {
            "what": "OmniDocBench leaderboard, first Unlimited-OCR only",
            "url": "https://raw.githubusercontent.com/opendatalab/OmniDocBench/main/README.md",
            "seen": "2026-10-27"
          }
        ],
        "openQuestions": [
          "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"
        ]
      },
      "negative": 0,
      "verdict": "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.",
      "bestFor": "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",
      "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"
      ],
      "agentNotes": [
        "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 `\u003cPAGE\u003e\u003cimage\u003e` 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"
      ],
      "metrics": {
        "kind": "local",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "low",
          "grade": "D",
          "methodology": "0.6",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 53.5
        }
      ],
      "editorialScores": {
        "interface": 75,
        "reach": 55,
        "risk": 45,
        "upkeep": 45
      },
      "provenanceScore": 73,
      "checked": {
        "categories": {
          "interface": "2026-10-27",
          "reach": "2026-10-27",
          "risk": "2026-10-27",
          "upkeep": "2026-10-27"
        },
        "last": "2026-10-27",
        "oldest": "2026-10-27",
        "stale": false,
        "staleAfterDays": 90
      },
      "scoreHistory": [
        {
          "date": "2026-10-27",
          "grade": "D",
          "kind": "listed",
          "method": "0.6",
          "score": 53.5
        }
      ]
    },
    "connect": {
      "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\n# then AutoModel.from_pretrained(\"baidu/Unlimited-OCR-2\", trust_remote_code=True, use_safetensors=True, torch_dtype=torch.bfloat16).eval().cuda()\n# and model.infer_multi(tokenizer, image_files=[\"page_1.jpg\", \"page_2.jpg\"], output_path=\"out\")",
      "http": "# after: hf download baidu/Unlimited-OCR-2 --local-dir uocr2 \u0026\u0026 uv venv --python 3.10 \u0026\u0026 . .venv/bin/activate\n#        uv pip install uocr2/wheel/sglang-0.5.20.dev10+g8d62f5fb9c-py3-none-any.whl pymupdf==1.27.2.2 fastokens==0.3.2\n#        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\ncurl 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\":\"\u003cPAGE\u003e\u003cimage\u003eMulti page parsing.\"}]}]}'"
    },
    "letme": {
      "capability": "https://letme.dev/docs.ocr",
      "tool": "https://letme.dev/unlimited-ocr-2"
    },
    "weights": {
      "trainedBy": "Baidu (ERNIE Team)",
      "builtOn": "baidu/Unlimited-OCR (post-trained from its checkpoint per the report, MIT by its metadata), whose backbone is deepseek-ai/DeepSeek-OCR (MIT by its metadata); not declared in the card's metadata",
      "params": "3.3B (3B-A0.5B mixture-of-experts decoder per the report)",
      "context": 131072,
      "goodFor": "Parsing long scanned or rendered documents, tens to hundreds of pages, into ordered layout blocks with boxes and HTML tables in one request, on an NVIDIA GPU, if Baidu's own results hold up.",
      "runtimes": [],
      "builds": [
        {
          "name": "Unlimited-OCR-2 (BF16 safetensors)",
          "url": "https://huggingface.co/baidu/Unlimited-OCR-2",
          "who": "publisher",
          "precision": "bf16",
          "sizeGB": 6.69,
          "memoryGB": 12,
          "format": "safetensors",
          "runsOn": [
            "Transformers (remote code)",
            "SGLang (Baidu's customised wheel)"
          ],
          "note": "Two shards, 6,688,305,576 bytes, so 6.69 GB × 1.2 = 8.03 GB, within 12 GB. The whole repository is 6.87 GB with the report, the wheel and a 156 MB GIF, which comes to the same band. The only build from Baidu; no copy by anyone else exists yet"
        }
      ],
      "run": "hf download baidu/Unlimited-OCR-2 --local-dir uocr2 \u0026\u0026 uv venv --python 3.10 \u0026\u0026 . .venv/bin/activate \u0026\u0026 uv pip install uocr2/wheel/sglang-0.5.20.dev10+g8d62f5fb9c-py3-none-any.whl pymupdf==1.27.2.2 fastokens==0.3.2 \u0026\u0026 SGLANG_UOCR_EANABLE_DOC_LIMIT=1 SGLANG_UOCR_DOC_GUNDAM_PAGE_WINDOW=10 SGLANG_UOCR_DOC_BASE_PAGE_WINDOW=10 SGLANG_UOCR_MAX_PAGE_TOKENS=20000 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 --allow-auto-truncate --disable-radix-cache --port 10000",
      "runBuild": "Unlimited-OCR-2 (BF16 safetensors)",
      "checked": "2026-10-27",
      "minMemoryGB": 12
    },
    "family": {
      "lab": "Baidu",
      "family": "Unlimited OCR 2",
      "url": "https://www.anchorterminal.com/open-weights/#baidu",
      "olderCount": 1
    },
    "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 (https://huggingface.co/api/models/baidu/Unlimited-OCR-2)",
      "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 (https://huggingface.co/baidu/Unlimited-OCR-2/blob/main/Unlimited-OCR-2.pdf)",
      "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 (https://huggingface.co/baidu/Unlimited-OCR-2/blob/main/Unlimited-OCR-2.pdf)",
      "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 (https://raw.githubusercontent.com/run-llama/ParseBench/main/leaderboard.csv)",
      "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"
    ],
    "area": "models",
    "details": [
      {
        "label": "Surface graded",
        "value": "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"
      },
      {
        "label": "Model",
        "value": "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"
      },
      {
        "label": "Documents",
        "value": "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"
      },
      {
        "label": "Languages",
        "value": "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"
      },
      {
        "label": "Files",
        "value": "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"
      },
      {
        "label": "Licence",
        "value": "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"
      },
      {
        "label": "Runtimes",
        "value": "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"
      },
      {
        "label": "Input and output",
        "value": "Input is page images and the prompt \u003cPAGE\u003e\u003cimage\u003e 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, \u003cPAGE\u003e per page, then \u003cBLOCK\u003e with the class, an optional \u003cLEVELn\u003e for titles, a box [x1,y1,x2,y2] on a 0 to 1000 scale and \u003cFORK\u003e 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"
      },
      {
        "label": "Recommended settings",
        "value": "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"
      },
      {
        "label": "Hardware",
        "value": "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"
      },
      {
        "label": "Training data",
        "value": "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"
      }
    ],
    "provenance": {
      "legalEntity": "Baidu, Inc.",
      "domain": "baidu.com",
      "domainRegistered": "1999-10-11",
      "endpointOnVendorDomain": null,
      "terms": "",
      "privacy": "",
      "statusPage": "",
      "changelog": "https://huggingface.co/baidu/Unlimited-OCR-2/commits/main",
      "securityTxt": "unknown",
      "checked": "2026-10-27",
      "notes": [
        "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."
      ],
      "score": 73,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Baidu, Inc.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "baidu.com, registered 1999-10-11 (27 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "no hosted endpoint",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Terms of service",
          "value": "nothing 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 in",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Privacy policy",
          "value": "nothing hosted, not scored",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "could not be fetched",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/unlimited-ocr-2.json"
  }
}
