编程 MinerU-Popo:4B 后处理模型把跨页 OCR 拼回文档树,TEDS 53.7→90.6

2026-09-03 18:45:07

MinerU-Popo:4B 后处理模型把跨页 OCR 拼回文档树,TEDS 53.7→90.6

MinerU 团队开源了 MinerU-Popo。它不是一个新 OCR 模型,而是一个专门给 OCR 结果做"后处理"的 4B 参数小模型。

后处理这个概念听起来不够性感,但文档解析最近两年最大的痛点恰好在这里。

一、单页 OCR 很强,但文档的逻辑断了

1. 问题出在"一页一页"

现在的 OCR 已经不是当年那种"认字"的 OCR。MinerU、PaddleOCR、GLM-OCR、Dolphin、MonkeyOCR,这些基于 VLM 的 OCR 模型,单页解析已经做得很强。

元素类型、位置框、阅读顺序、文本内容,每一页都能拆得很清楚。

但问题在于,"一页一页"的粒度,对应不上文档真实的逻辑结构:

  • 一份文档是一页一页的,但逻辑不是。
  • 一段话可能从第 3 页底部开始,到第 4 页才结束。
  • 一张大表格可能被页边拦腰截断。
  • 标题层级一跨页就乱掉。
  • 图和文字各说各的。

把这些"页级"结果直接丢给 RAG 去检索,经常答非所问。因为答案往往散在跨页结构里,而不是某一页的某一段。

这就是文档级结构的必要性。比如,要在五百页招股书里找"这家公司 2024 年营收多少",答案散在财务附注的两百多页里。没有结构,检索捞回来的是一堆无关段落;有了结构,系统会知道去"财务报表"那一章找,一步到位。

2. Popo 做的事

MinerU-Popo 补的正是这个缺口。

它不重新做识别,而是吃现有 OCR 的输出,把碎成一页一页的结果重新拼成文档级结构。总参数 4B,负责四件事:表格截断分析、文本截断分析、标题层级分析、图文关联分析。

拆开来看:

  • 表格截断分析:把被页边切成两半的表格重新拼接。
  • 文本截断分析:把从上一页断到下一页的话接回去。
  • 标题层级分析:判断"2.3"到底是"2"的小节,还是与"2"平级。这个一旦乱了,整篇文档的目录就废了。
  • 图文关联分析:让每张图找到它对应的那段文字。

这个"拼"不是简单的拼接,而是四件事一起完成,输出一棵完整的文档树。最终拿到的不是一堆页,而是一份有目录、有层级、图归图、文归文的结构化文档。

一句话:OCR 负责读,Popo 负责拼。

二、一个 4B 小模型凭什么干这活

1. 三招

面向任务的数据引擎

针对四个子任务生成 30K 条训练数据,并对输入做了精简,让模型只看到它需要的信息,不受无关内容干扰。

四个子任务的数据形态差异很大,硬混在一起训练会让模型糊涂。数据引擎先把数据按任务分开,再裁掉与当前任务无关的部分,模型学起来更干净。

动态分块与同步

长文档不可能一次全塞进模型,Popo 按动态块切分,块与块之间留有重叠,再把块级结果对齐,保持全局一致性。

被页边切断的段落,在这一步被重新接上。块与块之间的重叠像缝衣服的针脚,让相邻两块能够对齐,块间偏差在这层重叠里被抹平。

文档富化

把对齐后的结果建成一棵文档树,节点还能生成摘要,长的章节自动拆分,供下游检索和分析使用。

这一步最容易被低估。文档树建起来之后,检索不再需要在一堆平铺的页里捞,直接顺着树的层级往下走,准确性完全不同。

这三招下来,一个 4B 模型就能胜任以前需要大模型硬扛的工作。

2. 效果数据

接上 Popo 后处理之后,五家主流 OCR 的标题层级 TEDS 数据:

OCR 模型处理前 TEDS处理后 TEDS
MinerU53.790.6
MonkeyOCR48.987.4
Dolphin60.483.5
PaddleOCR59.382.6
GLM-OCR53.581.8

TEDS 是评测文档层级结构还原度的指标,简单理解就是机器还原出的标题层级与人眼判断的相似程度。各家原来都卡在五六十分,说明单页 OCR 对"层级"基本是放弃的;Popo 接入后全部冲到八十分以上。

与直接拿大模型硬做的对比更明显。Qwen3-VL-32B(32B 参数)直接做这件事,TEDS 只有 78.0,每秒处理 0.04 篇文档。Popo 用 4B 参数做到 TEDS 90.6,每秒处理 0.37 篇。参数只有八分之一,成绩反超,速度快九倍。

这说明两件事:

  • 文档级结构还原不需要数百亿参数硬扛,小模型用对地方一样能解决问题。
  • 推理速度上来了才能谈大规模落地。每秒 0.37 篇,一天可以处理超过三万篇文档,这个吞吐量才是企业级可用的。

下游 RAG 同样受益。在 ViDoRe V3 基准上,大多数子集的检索准确率都有提升,单次查询延迟最高降低 70%。

延迟降低 70% 意味着,同样的知识库,以前用户等三秒出答案的场景,现在不到一秒。对客服、内部问答这类高频场景,这是体验上的质变。

另一个实际要点:Popo 是"加"在现有 OCR 后面的,不需要推倒重来。原来用哪家 OCR 可以继续用,后面挂一层 Popo 就行。

3. 文档 AI 分工里多了一个环节

文档处理流水线过去大致是:版面结构负责看清,视觉负责看懂,推理负责想明白。

现在需要补一环——结构。

OCR 把一页页的字抠出来,Popo 把跨页的结构拼起来,拼完之后,推理模型才有完整的文档可以分析。

缺了这一环,再聪明的推理模型看到的也是一堆断开的页。后续选型不能只看单页识别率,要看整条链路:谁负责读、谁负责拼、谁负责想,每个环节是否闭环。

4. 成本账

4B 模型与需要 32B 才能完成的工作相比,省下的是实际的计算成本。速度差九倍,意味着同样的服务器可以处理九倍量的文档。这比纠结每页几厘钱的 token 费用重要得多。

换算一下:32B 模型跑一次全文档的单位处理成本与 4B 差出不少。对每天处理数万页文档的企业,这一项可能省出一台服务器的费用。

Popo 是即插即用式的接入,不用推翻现有 OCR 系统。MinerU、PaddleOCR、GLM-OCR 的输出它都能接,做一下格式规范化即可。对已经在用这些工具的企业,几乎是零迁移成本,历史积累的处理好的文档可以直接衔接。

三、文档 AI 的下一层是"结构"

文档 AI 这几年是一层一层往上爬的:

  • 最早是"识别"——把纸上的字变成文本。
  • 然后是"读懂"——模型理解语义。

Popo 补上的是中间夹着的一层:"结构"。

字认识了、语义理解了,但段落与段落之间、表格与正文之间、图与文之间的关系,一直在丢。Popo 做的事,就是把这层关系捡回来。

一个简单的例子:产品说明书,第 1 页是标题页,第 2 页是参数表,第 3 到第 5 页讲用法。单页 OCR 能把这五页的字全部认出来,但它不知道"第 2 页那张表"就是"第 1 页那个产品"的参数。人看文档是带着结构看的——哪是标题、哪是正文、哪是表格,一目了然。

OCR 让机器"看见"了字,Popo 让机器"看见"了文档的骨架。结构立起来之后,文档才真正从"一堆页"变成"一本书"。

小结

文档解析的竞争点,正在从"单页识别率"转向"整篇结构还原度"。谁能把跨页的逻辑接得最完整,谁就赢得下一程。

OCR 不会消失,而且会越来越有价值。但价值点不再是"认字",而是"认字之后怎么拼"。后处理这个环节,会成为文档 AI 的基础组成部分。

判断一个文档处理工具,不能只看它能不能读对一页,还要看它能不能读懂一整篇。结构对了,下游的检索、分析、问答才顺。

项目信息:

  • 论文:https://arxiv.org/html/2605.24973v2
  • GitHub:https://github.com/opendatalab/MinerU-Popo/tree/master
复制全文 生成海报 MinerU-Popo OCR 文档解析 RAG 大模型

推荐文章

程序员茄子在线接单