# Unlimited-OCR 2 on a 16 GB GPU: it reads as well as Chandra 2, but it is not unlimited

> Source: <https://dev.to/efraingaray/unlimited-ocr-2-on-a-16-gb-gpu-it-reads-as-well-as-chandra-2-but-it-is-not-unlimited-34bb>
> Published: 2026-10-28 21:34:13+00:00

On October 27 Baidu released Unlimited-OCR 2: 3.3B parameters, MIT license, and a promise that its sparse attention keeps "per-step decoding latency and memory footprint nearly constant regardless of document length". That night I ran it on a 16 GB RTX 4070 Ti SUPER against what I actually used for huge PDFs (Datalab's Marker and Chandra 2, locally), DeepSeek-OCR, Unlimited-OCR 1 and Tesseract, with the decision rules written down before the first run.

| Median character error rate per page | Unlimited-OCR 2 | Chandra 2 | Tesseract | Marker 2.0 | DeepSeek-OCR | 
| 20 pages of a real Central Bank of Chile report | 0.12 % | 0.31 % | 0.51 % | 2.51 % | 3.12 % | 

- 
**On reading quality it ties at the top with Chandra 2** (paired difference -0.15 points, 95 % CI -0.36 to 0.00) and beats Tesseract, Marker and DeepSeek-OCR. Marker's error is mostly the page footer placed elsewhere; DeepSeek-OCR actually drops paragraphs (under 90 % of the text on 6 of 20 pages).
- 
**"Unlimited" does not hold on 16 GB with transformers.** From 10 to 40 pages in one request, memory went from 7.5 to 11.1 GB and time per token rose 1.49 times; at 80 pages it ran out of memory after 74 minutes. The transformers path keeps every token in a dynamic cache.
- 
**With Baidu's modified SGLang, time per token stays flat** (4.17-4.19 ms from 10 to 40 pages, about nine times faster than transformers). But the 10-page window mode hung after the first window, and a single window silently returned 24 of 40 pages when its fixed cache filled up (the README's`--allow-auto-truncate` ).
- 
**For huge files, Marker is still the practical choice:** the full 74-page report in 12.6 minutes using 4.2 GB of the card. Chandra 2 took 46 minutes and 11 GB.
- Unlimited-OCR 2 is MIT; Chandra 2's weights are free only under 2 million dollars in funding or revenue.

The post also covers the install stumbles on NixOS (Triton looking for `/sbin/ldconfig`, Surya spawning Docker with `--runtime nvidia`), a normalization bug the external audit caught in my own analysis, and the threats to validity.

**Read the full measurements, the pre-registered sheet and the scripts → [https://efraingaray.com/en/blog/unlimited-ocr-2-16gb/](https://efraingaray.com/en/blog/unlimited-ocr-2-16gb/)**
