A table continues from page 10 onto page 11. Parsing the pages independently can separate column headings and units from the numbers that follow. Once that text becomes RAG evidence, a small extraction break can become a wrong answer with a misleading citation. Preserving that boundary is the useful question behind Unlimited-OCR 2.

Baidu's model card records the version 2 release on October 27, distinct from the original Unlimited-OCR announcement in June. This analysis inspected documentation and source on October 29. We did not run OCR or GPU inference.

Bounded references do not make the whole job constant-cost

The card describes SR-SWA as reducing long text/visual attention interactions to a bounded set of working references, with 512 tokens as an example. That reference budget and the size of the input PDF are separate quantities. SR-SWA description

A hundred pages still need image conversion, encoding and output generation. A claim about stable per-step attention cost does not establish constant document processing time, temporary memory or concurrent-request cost. A finite reference set also does not imply lossless retention of every detail from earlier pages.

The serving configuration exposes this tradeoff. The official README's SGLang memory notes explain that smaller page windows reduce peak memory but can hurt merging when continued blocks lose context across a boundary. Window size belongs in the accuracy evaluation as well as the memory budget.

Match the inputs before comparing parsing modes

The card's Transformers path passes ordered page images to infer_multi. Its A800 80GB entry describes a test environment, not a stated minimum VRAM requirement. This unexecuted example assumes an already loaded model/tokenizer and existing page images. Inference guidance

pages = [f"document/page_{i:03d}.jpg" for i in range(1, 11)]
text, output_tokens = model.infer_multi(
    tokenizer, image_files=pages,
    output_path="output/document", save_results=True,
)

The expected return is parsed text and an output-token count. We did not install the stack, download weights or load the model. The documented loading path uses custom code, so review and pin both code and model revision before a reproduction. Start with public or synthetic documents rather than customer data.

There is another comparison trap: the card describes dynamic tiling as the default single-page path and a global view for multi-page input. A difference between those defaults cannot be attributed solely to retained context. Record rendering resolution and image-encoding conditions, then establish comparable settings.

In the inspected model source, infer_multi wraps a call and returns text plus token count. Internal _uocr_generate has length limits and a finish reason. A returned call alone does not establish that every page finished. This source observation also does not measure the full memory behavior of the SGLang path.

A correct page count can hide missing content

A minimal pre-ingestion check compares input pages with output boundaries. Is a matching count enough? The second synthetic output below substitutes the first page for the middle one.

Save the original example as pages.mjs and run it with Node.js 18 or newer. Its inputs are three invented page strings, not OCR results or Baidu benchmark data. It needs no packages or network calls.

const expected = ['A:100', 'B:200', 'C:300'];
const outputs = [
  '<PAGE>A:100<PAGE>B:200<PAGE>C:300',
  '<PAGE>A:100<PAGE>A:100<PAGE>C:300'
];
for (const text of outputs) {
  const pages = text.split('<PAGE>').slice(1).map(s => s.trim());
  console.log(JSON.stringify({
    pageCountOK: pages.length === expected.length,
    exactPages: expected.filter((ref, i) => pages[i] === ref).length,
    totalPages: expected.length
  }));
}

Executed output:

{"pageCountOK":true,"exactPages":3,"totalPages":3}
{"pageCountOK":true,"exactPages":2,"totalPages":3}

Both outputs pass the count check, but one has an incorrect page correspondence. Exact match here is an explanatory check for synthetic strings. Real documents require a whitespace policy and human-checked references, with separate scoring for table structure and cross-page continuity. Marker counting can flag suspected truncation or omission; it is not an accuracy score.

Put boundary conditions into the 10/50/100-page evaluation

This is a proposed experiment, not measured results. Create 10-, 50- and 100-page groups from a common source document. As window size changes, compare the same table placed within a window and across its boundary. Rotate placements: otherwise harder tables concentrated at boundaries would confound document difficulty with the window effect.

Evaluation axis Record RAG failure to catch
Page completeness Missing, duplicated, reordered and truncated pages Accepting incomplete evidence as a successful parse
Continued tables Headings, units and continued rows Retrieving numbers without their units
Provenance Document ID/revision, source pages and text spans Correct-looking answers citing the wrong page
Resources Model/server revision, precision, peak GPU/host memory and concurrency Budgeting only for decoding cache
Time PDF conversion, prefill, decode and end-to-end time Mistaking token speed for job completion time

Preserve page correspondence when building retrieval chunks. A chunk combining a continued table should retain multiple source_pages. Reusing a generated chunk index as the original page number makes citations harder to audit.

For a service extracting one small receipt, long-context handling may add more configuration than value. For workflows built around continued tables and footnotes, the important setting is the one that preserves those relationships within the resource budget. This article establishes neither independently benchmarked performance nor Korean OCR accuracy.

For tracing failures back to ingestion, see chunking and hybrid-retrieval failure analysis.

The published paid course below connects to document indexing, retrieval and RAG evaluation. It is not Unlimited-OCR deployment training. The final link is promotional.