做发票、合同、证照、表格录入这类文档识别时,最容易卡住的一步不是接哪个接口,而是先判断该用专用 OCR 模型还是通用大模型。两者在版式还原、手写和生僻字、字段结构化上的表现差距很大,计费口径也完全不同。这篇按任务特征拆开讲,给出可照着走的选型和验证顺序。
做发票、合同、证照、表格录入这类文档识别时,最容易卡住的一步不是接哪个接口,而是先判断该用专用 OCR 模型还是通用大模型。两者在版式还原、手写和生僻字、字段结构化上的表现差距很大,计费口径也完全不同。选错了不是多花点钱的问题,而是后期大量人工复核压垮流程。
这篇按任务特征拆开讲,给出可照着走的选型和验证顺序。核心思路是:先分清任务属于哪一层识别,再按精度和成本两条线做对照,最后决定是单走一条还是做混合流水线。所有涉及具体数字的地方,都去站内对应页面核对你当时的账单和报价。
先分清你的任务属于哪一类识别
不要一上来就问「哪个模型识别率高」。先把需求拆成三层,三层的难度和技术路线完全不同。拆错了,后面所有的对比都是在比一个不需要的指标。
| 任务层次 | 典型场景 | 更适合的路线 |
|---|---|---|
| 纯文本抽取 | 把扫描件里的文字抠出来,不要坐标不要结构 | 专用 OCR 通常够用 |
| 版式与坐标还原 | 表格、多栏、印章位置、阅读顺序 | 专用 OCR 或版面分析模型 |
| 字段语义理解 | 跨页推理、字段校验、口语化指令输出 | 通用大模型更占优势 |
- 纯文本抽取和固定版式表单,专用 OCR 一般能稳定交付,成本和延迟都可控;
- 需要跨页理解、字段推理、口语化指令的场景才轮到通用大模型上场;
- 如果同一份文档既要还原表格结构又要做字段校验,往往需要两者串联,而不是二选一;
- 判断不准的时候,先问自己:这份文档的版式下个月会不会变?会变就往通用大模型偏一点。
精度别只看一个数字,按四个维度拆开比
官方案例图上的识别效果参考价值有限。真实的精度差异要在你自己的文档上按四个维度分别看,混在一起平均会掩盖系统性偏差。
- 字符准确率
- 印刷体、手写、生僻字、小字号分别是什么水平,不要只看印刷体平均值
- 结构还原
- 表格合并单元格、多栏排版、印章压字会不会串行,串行比错字更难修
- 字段级准确率
- 抽出来的金额、日期、编号能否直接入库,不能入库就等于零
- 拒识能力
- 不确定时给不给置信度,还是直接编一个看起来合理的值
第三和第四点最容易被忽略,但它们决定的其实是你后面的后处理和人工复核成本。字段级准确率低一点,可能只是多几个复核工位;拒识能力差,则是错误静默扩散,等发现时已经入了账。
成本要按整条链路算,不只看单价
专用 OCR 一般按页或按次计费,通用大模型按输入输出 token 计费。表面单价没法直接比,因为长文档和高分辨率图片会显著放大 token 用量,同一页在两边的口径完全不一样。
| 成本项 | 专用 OCR | 通用大模型 |
|---|---|---|
| 主要计费口径 | 按页或按次 | 按输入输出 token |
| 高分辨率大图影响 | 通常影响小 | token 用量明显放大 |
| 长文档影响 | 按页线性增长 | 整页送进去成本陡增 |
| 后处理成本 | 格式稳定,偏低 | 格式漂移,校验重试偏多 |
- 到 /tools/model-cost-calculator 按自己的月处理量换算,别用单页价乘以页数就想当然;
- 再到 /official-api 核对当时的各家价格,注意区分是否有批量折扣和阶梯价;
- 把失败重跑、人工复核和存档的隐性人力成本也算进去,小团队尤其要按倍数留余量;
- 通用大模型输出格式漂移导致的校验和重试,长期看往往比接口费更贵。
用几个任务信号快速做初判
在你还没跑样本之前,可以先根据任务信号做一个粗判,帮你决定先测哪一条路线,节省验证时间。
| 任务信号 | 偏向专用 OCR | 偏向通用大模型 |
|---|---|---|
| 版式 | 固定、可预期 | 杂乱、经常变 |
| 文字类型 | 印刷体为主 | 手写、混排、生僻字多 |
| 输出要求 | 只要字段和文本 | 要解释、摘要、推理 |
| 处理量 | 日处理量大 | 单量不大或试点阶段 |
| 延迟要求 | 对响应时间敏感 | 可以接受稍慢 |
还有一条混合路线值得优先考虑:专用 OCR 先出文本和坐标,通用大模型只做纠错和结构化。这样通常能同时压低误差和单价,代价是链路变长,需要多监控一环。
- 拿不准时先用小批量真实文档跑一遍,别用官方案例图做判断;
- 样本要覆盖你自己业务里最脏的那一类,而不是最好看的那一类;
- 把两类错误分开记:识别错了字,还是理解错了字段含义。
上线前必须做的一轮对照验证
选型不能靠感觉,上线前必须跑一轮对照。下面这套顺序可以照着走,重点是分组测,而不是混在一起看总分。
- 抽真实样本从真实业务里抽一批,覆盖清晰件、扫描件、拍照件、手写件、表格件,按类型分组而不是混在一起平均。
- 定验收线为每组写下字段级准确率、结构性错误率、必须人工复核的比例三条线,先写再去测。
- 跑对照同一批样本分别跑专用 OCR 和通用大模型,记录错例类型,看错误是随机噪声还是系统性偏差。
- 算总账把每条路线的耗时、单价、失败率一起列成表,再决定主路和兜底路。
验证时特别留意一点:如果某一类文档在通用大模型上错得很有规律,说明它缺的是版面信息而不是语言理解能力,这类任务回到专用 OCR 反而更稳。
混合流水线怎么搭更稳
大多数真实业务的答案不是二选一,而是分层组合。下面这套三层结构是常见做法,可以根据你的量级裁剪。
- 第一层用专用 OCR 或轻量版面分析做粗抽取,速度快、成本低,先把大块文本和坐标拿到;
- 第二层只把低置信度片段或需要推理的字段送进通用大模型,减少 token 消耗;
- 第三层做规则校验,比如金额合计、日期合法、编号格式,把明显错的拦下来;
- 保留原始图像和中间结果,出问题时能回放到具体是识别错还是推理错。
第三层的规则校验最便宜也最容易被跳过。它不需要模型,只需要你把业务里已知的硬约束写下来,就能挡掉相当一部分明显错误。
先让便宜的环节做掉大部分活,再让贵的模型只处理真正难的那一小部分。
常见踩坑与不适用的情况
下面这些坑几乎每个做文档识别的团队都会遇到,提前知道能少走弯路。同时也要清楚,某些场景下这两条路线都不合适。
- 用通用大模型直接处理整页高清扫描图,token 费用会远超预期,且长文档容易漏段;
- 把专用 OCR 的字段级结果当最终数据直接入库,不做校验,错误会静默扩散;
- 文档类型频繁变更时,专用 OCR 的模板维护成本会持续上升,这时要重新评估路线;
- 强合规场景要确认数据是否出内网、是否留存,通用大模型走公网接口前先过一遍 /safety。
一份可以直接照着做的落地清单
把前面几节收敛成一张清单,按顺序执行,每步都有可见的产出,方便和团队同步进度。
- 归类任务把任务归到三层识别中的哪一类,写下验收线,产出一页纸的选型备忘。
- 准备样本抽 50 到 200 份真实样本,按文档类型分组,覆盖最脏的那一类。
- 跑对照记录每组准确率、单价、耗时、失败率,算每千份走到可用状态的总花费。
- 定路线定主路线和兜底路线,写清触发切换的条件,比如复核率超过某条线就切。
- 持续抽检上线后持续抽检,把人工复核率当作核心指标盯着,发现漂移再回到对照表。
常见问题
专用 OCR 和通用大模型,哪个识别准确率更高?
没有统一答案,取决于文档类型。印刷体、固定版式的表单和票据,专用 OCR 往往更稳,字符级错误更少;版式杂乱、需要跨字段推理或输出自然语言的场景,通用大模型更有优势。正确做法是按你的真实样本分组测,而不是看笼统的总体准确率。
通用大模型做 OCR,成本一定更高吗?
不一定,但更容易失控。计费按 token 算,图片分辨率高、文档页数多会明显放大用量,加上输出格式漂移带来的重试,实际花费常高于预估。到 /tools/model-cost-calculator 按自己的月处理量换算一次,再对比专用 OCR 的按页计费,差别会很清楚。
能不能只用通用大模型,不接专用 OCR?
小批量、文档类型多变、需要语义理解时可行,省掉一套模板维护。但日处理量大、对延迟敏感、字段要求严格时,纯大模型路线的单价和稳定性都容易成为瓶颈。建议先跑一批样本,算清每页成本和错误需要人工返工的比例再决定。
混合方案会不会让系统更难维护?
会多一点组件,但换来的是可控的成本和误差。常见做法是专用 OCR 出文本和坐标,只把低置信片段或需要推理的字段送进大模型,再加一层规则校验。要注意保留中间结果和原始图像,否则出错时很难定位是哪一层的问题。
怎么判断该不该换路线?
盯三个信号:人工复核比例持续升高、单页成本超出预算、错例集中在某类文档。前两个说明当前路线性价比在下降,第三个说明需要按文档类型拆分路线而不是整体切换。换之前先在小批量上验证,别一次性全量迁移。