跪拜 Guibai
← All articles
AI

Local Multimodal OCR Shootout: qwen3.5-9b Hits 0.5% CER, Apple Vision Wins the Throughput Race

By 谁在黄金彼岸 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Teams handling CJK OCR on local hardware now have a clear accuracy/throughput tradeoff with concrete numbers: a 9B model beats traditional pipelines on quality but can't run bulk jobs, and a 3.2% CER vision pipeline is good enough when downstream retrieval and extraction tolerate single-character noise.

Summary

A test on scanned pages of *The Cambridge History of China* compared three OCR paths for Chinese text: qwen3.5-9b running locally in LM Studio, Apple's built-in Vision framework, and gemma-4-e4b as a local VLM. qwen came out on top with 0.5% character error rate, half a percent on pages dense with classical quotes; Apple Vision landed at 3.2% but ran 15 times faster at 12 seconds per page; gemma was unusable at 40.1% with multilingual garbage and fabrication.

Two findings reshape the choice. A canary page — text generated minutes before the test with impossible dates and random strings — proved qwen really reads pixels, despite API telemetry showing no image tokens, and exposed a metering quirk in LM Studio. The error profiles also differ sharply: qwen makes deliberate semantic "corrections" that improve readability but tamper with an archival record, while Vision only substitutes visually similar characters and never invents content.

The author's recommended architecture splits the work: Apple Vision handles all 11,936 pages overnight with parallel processes on the Neural Engine, while qwen-VLM runs sampled quality checks, escalates difficult pages, and does an auditable second proofreading pass. The deciding constraint is not accuracy but throughput and slot contention on a shared GPU server.

Takeaways
— qwen3.5-9b (local VLM) achieved 0.5% CER on classical Chinese pages, about one-sixth the error rate of a traditional OCR baseline.
— Apple Vision hit 3.2% CER but ran in 12 seconds per page on the Neural Engine, making 11,936 pages finish overnight with 3–4 parallel processes.
— gemma-4-e4b was unusable for Chinese OCR at 40.1% CER, mixing multilingual garbage and rewriting historical facts.
— The canary page test — content generated minutes before the run — proved qwen truly reads image pixels; `prompt_tokens=58` was a service-side metering quirk, not evidence of missing vision.
— qwen's errors are deliberate: punctuation normalization, semantic 'corrections' like 刺史 for 刺吏, and missing-glyph completion. These help readers but break verbatim archival requirements.
— Apple Vision never fabricates: it preserves headers, footnotes, and line breaks, leaves blanks for missing glyphs, and its substitution errors are enumerable and benign to bge-m3 semantic retrieval.
— The recommended pipeline uses Apple Vision for bulk OCR, qwen-VLM for sampled QA (10–20 pages per book), difficult-page escalation, and a diff-based second proofreading with locked proper names.
— Production calls to qwen must disable reasoning (`reasoning_effort=none`), cap `max_tokens`, and retry empty results to avoid budget exhaustion under slot contention.
— Raw scanned pages stay local; only sampled baselines use a cloud model.
Conclusions

The canary page is a cheap, decisive test for whether a multimodal model actually sees the image or recites from training memory — worth adopting in any OCR eval when API telemetry about tokens is unreliable.

qwen's semantic 'corrections' are a genuine liability for archival work; the same behavior that helps reading comprehension silently edits the source text in 0.3% of positions.

Apple Vision's honest-error profile becomes an advantage in a closed loop: high-frequency, enumerable substitutions are easy to ignore via semantic retrieval, while fabricated output would poison downstream extraction.

The 9B model's throughput wall (80–100 seconds per page, exclusive slot) is the real bottleneck; quality no longer justifies running it at scale when a 15x faster path with 3.2% CER exists.

LM Studio's `prompt_tokens` field omitting image tokens is a footgun for developers who rely on telemetry to verify multimodal input; the only trustworthy check is content.

Concepts & terms
CER
Character Error Rate, computed as edit distance divided by the number of ground-truth characters. Lower is better; 0.5% means roughly one character wrong per 200.
Canary page
A test page containing random, impossible-to-memorize text (fake dates, random IDs, nonsensical phrases) generated just before evaluation. If a model reproduces it, that proves it truly reads the image rather than reciting from training data.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗