文档解析专题:OvisOCR2 技术报告拆解
欢迎大家关注刘一手的公众号:刘一手AI
欢迎大家关注刘一手的知乎:刘一手
《三年面试五年模拟》AIGC/LLM/AI Agent算法工程师/开发工程师求职面试秘籍独家资源:【三年面试五年模拟】WeThinkIn/AIGC-Interview-Book,欢迎大家Star~
AIGC/LLM/AI Agent算法岗/开发岗求职面试内推学习社群(涵盖AIGC、LLM大模型、AI Agent、传统深度学习、自动驾驶、机器学习、计算机视觉、自然语言处理、强化学习、大数据挖掘、具身智能、元宇宙、AGI等AI行业最新面试干货经验与核心知识)欢迎大家加入:https://t.zsxq.com/33pJ0
7月中,阿里的 ATH-MaaS 团队放出了 OvisOCR2 的技术报告(arXiv 2607.13639)。模型只有 0.8B 参数,输入一张文档页面图像,直接吐出带表格、公式和阅读顺序的Markdown。
它在 OmniDocBench v1.6 上拿了 96.58 的总分,把这个榜单的第一名从 pipeline 方法手里抢了过来。我把报告从头到尾读了一遍,又对着 OmniDocBench 的公开榜单核了一轮数字,这篇讲讲它是怎么做到的,以及哪些地方还没做到。
榜首易主这件事为什么值得说
文档解析这个方向有两条路线。pipeline 路线先做版面分析,把页面切成一个个区域,再对每个区域单独识别,最后按阅读顺序拼回去。PaddleOCR-VL、MinerU、GLM-OCR 都走这条路,OmniDocBench 榜单的前三名长期被它们占着。端到端路线用一个模型看完整页,一遍生成全部 Markdown,部署简单,但成绩一直追不上。写报告的时候,端到端阵营的最好成绩是 HunyuanOCR-1.5 的 94.74,离 pipeline 榜首 PaddleOCR-VL-1.6 的 96.33 还差着一截。
pipeline 的问题在于错误会沿着阶段往下传。版面分析漏了一张表,后面识别做得再好也补不回来。报告里有个数字把这一点量化得很直白。在他们自建的复杂表格测试集上,几个 pipeline 方法的漏表率在 13% 到 17% 之间,OvisOCR2 是 8%。表都没进流水线,识别器无从下手。
OvisOCR2 这次以 96.58 反超,文本编辑距离、公式 CDM、表格 TEDS、阅读顺序四个子项全部第一。底座是 Qwen3.5-0.8B,整个 Qwen3.5 家族里最小的那个。0.8B 的体量意味着单卡甚至端侧就能跑,这对要处理大批量文档的工程团队有直接的成本意义。
数据引擎,真实数据和合成数据各管一头
报告花了最大的篇幅讲数据,我认为这也是全文最值得抄作业的部分。

真实数据这条线,他们没有自己从零标注,用的是 PaddleOCR-VL-1.5 和 MinerU2.5-Pro 这两个现成解析器的输出。有意思的地方在于他们不直接拿解析器给的 Markdown 字符串,改为解析结构化的 JSON 响应,再用一套针对每个来源单独写的规则转成统一格式。规则细到什么程度呢,标题块要根据编号模式推导 Markdown 的标题层级,还得防着把年份数字误判成一级标题;公式统一成 $...$ 和 $$...$$;表格必须是合法的 HTML 结构,空表、断表、尾部重复的碎片全部丢弃;类别不认识的块直接拒收,不做静默忽略。
规则过完还有人工抽检。他们按来源、解析器、文档领域把候选数据分成子集,每个子集随机抽样,人对着原图检查文本、公式渲染、表格对齐和阅读顺序。子集只是偶发小错就保留,错误频繁就整个子集扔掉。这个阶段刻意保守,不做修补,只做取舍。
合成数据这条线解决长尾问题。起点是难例挖掘,把模型在真实场景和自测里翻车的样本收集起来,分析翻车原因,让多模态模型把难例转写成 HTML 模板,再用一个 agent 在模板上做内容和结构两个层面的随机变换,批量生成新页面。关键设计是同源,也就是同一份 HTML 既用 Playwright 渲染成图像,又直接从 DOM 提取 Markdown 真值。标注不经过任何解析器,天然是干净的。坐标框也从渲染后的 DOM 里读,和截图严格一致。
这两条线的分工可以一句话概括。真实数据教模型见世面,合成数据教模型啃硬骨头。
训练用了个绕路的办法,4B 学完再教 0.8B
训练分四步,SFT、强化学习、在线策略蒸馏、模型融合。
SFT 阶段同时训了 0.8B 和 4B 两个模型,用同一份数据。之后的强化学习没有直接上 0.8B,只在 4B 分支上做。这里的理由报告给了实验证据,我觉得是全文最有信息量的一张图。
同样的 RL 配置,4B 的 KL 损失全程贴着零走,验证集的表格 TEDS 稳在 94 附近。0.8B 的 KL 一路上抬,950 步左右冲出一个超过 0.6 的尖峰,表格质量从 93.5 掉到 92 出头。小模型容量有限,在长结构化输出上扛不住高方差的策略更新。这个现象很多做小模型 RL 的人应该都撞见过,这里给了张干净的对照图。
RL 用的是 GRPO,奖励按页面里实际存在的成分计算。文本用 1 减归一化编辑距离,公式用 CDM,表格用 TEDS,页面里没有的成分不参与平均。输出被截断或者结构解析失败时,对应成分直接记零。这套奖励的好处是结构错误躲不掉。一张表文字全对但单元格拓扑错了,TEDS 会直接给出惩罚,token 级的模仿损失对这类错误反而不敏感。
4B 在 RL 里学到的偏好,再通过在线策略蒸馏传给 0.8B。流程是学生自己采样完整的页面输出,教师在同样的前缀上给学生 top-k 候选 token 打分,用反向 KL 对齐。反向 KL 是模式寻找的方向,学生会避开教师认为很差的 token,而不用把概率摊到教师的整个分布上。工程上也顺便省了算力,对齐只在 top-k 支撑集上做,主要张量从词表规模降到 k 的规模。最后再对几个不同配置训出来的候选模型做加权参数平均,得到最终版本。
成绩单,以及没赢的地方
OmniDocBench v1.6 上 96.58,前面说过了。PureDocBench 上 Avg3 拿了 75.06,也是第一,其中干净渲染页和数字退化页两个赛道都领先。但真实翻拍赛道它只有 66.56,输给了 Gemini-3.1-Pro 的 71.98 和 Qwen3.5-122B-A10B 的 69.85。手机翻拍、复印、屏幕摄影这类图像上,大参数量通用模型的鲁棒性还是压过了专用小模型。报告自己也把这一条列为后续方向,没有回避。
他们还建了个一千多页的内部测试集,专门覆盖公开榜单照顾不到的场景,比如带印章的扫描件、印刷模板上的手写批注、不规则合并单元格的表格。OvisOCR2 总分 85.54 排第一,简单、中等、困难三档全部领先。手写子集上它的表格 TEDS 输给了 GLM-OCR,总分仍是最高。
附录里的定性对比值得翻一翻。下面这页中文表格文档,OvisOCR2 的输出和原图结构一致,PaddleOCR-VL-1.6 在表格下方多插了一行,MinerU2.5-Pro 在右侧多出了整列错位的单元格。
读者注
这篇报告最大的意义在于把一个方向之争暂时了结了。过去选 pipeline 是因为它准,忍受它部署复杂、错误累积。现在一个 0.8B 的端到端模型在主流榜单上全面胜出,继续维护多阶段流水线的理由少了一大半。
但我不觉得功劳主要在模型结构。通读下来,赢的关键是数据工程,尤其是合成管线那个同源设计,图像和标注从同一份 HTML 派生,训练目标完全确定,这比任何靠解析器伪标注的方案都干净。难例挖掘再把合成的火力对准模型真实的短板。训练侧的贡献是那条绕路的经验,小模型直接 RL 会翻车,先在大模型上做 RL 再蒸馏回来,这个配方对其他小模型任务同样适用。
弱点也明确。实拍退化图像上它还打不过通用大模型,拿它处理手机随手拍的文档要留个心眼。模型权重已经放在 HuggingFace 上,标 0.8B,感兴趣可以直接拉下来试。
参考
- 技术报告 https://arxiv.org/abs/2607.13639
- 模型权重 https://huggingface.co/ATH-MaaS/OvisOCR2
- OmniDocBench 公开榜单 https://opendatalab.com/omnidocbench
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)