本地OCR做到93%还不够?用RAG补上最后7%
Qwen3.6 27B + TurboQuant RAG:截断补全,格式归一,反而更快。
上一篇文章测了 Qwen3.6 27B 的中文 OCR,五类文档字符准确率 93-100%。但有两种残余问题:长文档被 token 限制截断,合同表格输出格式和原文不一致。
RAG 能不能消除这最后的差距?
● ● ●
管道
图片 → Qwen3.6 OCR → BGE-M3 embedding → TurboQuant 检索 → Qwen3.6 修正
和 Gemini 那篇文章的 RAG 管道结构一样,但使用场景完全不同。Gemma 4 用 RAG 纠正幻觉(裸 OCR 有 38-70% 的错误率),Qwen3.6 用 RAG 只是补全截断和修正格式(裸 OCR 只剩 <7% 的残余)。
● ● ●
实测
用一篇四个 Section 的中英技术文档测试,故意限制 OCR 输出到 512 token。
| 裸 OCR | RAG 修正 | |
|---|---|---|
| 耗时 | 14.9s | 10.9s |
| Section 2 末尾 | "1.3" 截断 | "1.3-1.8×" |
| Section 3 | 缺失 | Performance Metrics 完整 |
| Section 4 | 缺失 | API Endpoint 补全 |
RAG 修正不仅补全了截断内容,还更快——因为上下文包含了文档的关键术语,模型不需要从零开始 OCR 全部文字,只聚焦补缺失的尾巴。
● ● ●
两种 RAG,两种用法
同样的 BGE-M3 + TurboQuant + LLM 管道,Gemma 和 Qwen 用起来完全不同。
Gemma 的 RAG 是"救火"。OCR 输出里年份错了、术语篡改了、整段幻觉了,需要把整个错误输出丢进上下文让模型重写。耗时且不稳定——如果检索到的上下文不精确,纠正本身也可能出错。
Qwen 的 RAG 是"打磨"。裸 OCR 已经对了 93% 以上,RAG 只需要做三件事:补全截断的尾巴、把 JSON 输出还原成合同格式、把 pipe 表格还原成原文排版。每件事都很小,但组合起来把一个"能用"的系统变成"生产就绪"。
● ● ●
什么时候需要 RAG
发票、表格这类结构化文档,Qwen 裸 OCR 已经 0-7% CER。不需要 RAG。
长文档、合同、多页扫描件,受 token 限制会截断。需要 RAG 补全。
多格式输出归一化——合同输出 JSON、表格输出 Markdown——需要 RAG 用知识库里的模板还原标准格式。
● ● ●
建议
如果你要在本地做中文文档 OCR:Qwen3.6 27B 裸 OCR 已经够用。配一个 RAG 管道不是为了修错误,而是为了消除最后的截断和格式差异,把一个 93% 的工具推到 99%。
完整代码:https://github.com/alitrack/labs/tree/main/ocr-benchmark