随着多模态大模型越来越强,OCR的短板反而逐渐明显。
模型拿到的开始不再是一张图、一段话,而是一张卡证、一份报表、一整页合同;要的也不只是文字,而是“哪个字段是什么、数字从哪来”。
面向此类真实业务文档与卡证场景,OCR应当作为大模型获取视觉文字证据的基础能力来建设。
字符、位置、版式和字段关系共同决定模型读到了什么,也决定它据此能回答什么。把它们放在一条连续的理解过程中,才能衡量模型对业务材料的掌握程度。
据此,蚂蚁AI安全实验室提出PolyOCR,以能力引导策略优化算法CGPO,将在线策略蒸馏与强化学习结合,给大模型装上“读懂文档”的底层能力。
实验在OCRBenchV2.1,CC-OCR,In-houseKIE Benchmark等多个榜单斩获SOTA,并在版式解析Benchmark OmniDocBenchV1.6也获得了高性能。
PolyOCR跨基准表现。OmniDocBench使用9B版面引导流程,MDPBench使用2.7B多语言文档解析模型;CC-OCR不含多语言方向。
为什么传统OCR不够用了?
先回到业务场景看问题。想象一个典型的企业流程:员工上传了一张报销单的照片,系统要自动识别金额、日期、发票号码,还要确认这些数字从图片里的哪个位置来的——毕竟PS过的发票不少见。
传统的OCR方案一般是分段式:先用一个模型检测文字区域,再用一个模型识别每个区域里的字,最后用规则或者另一个模型做字段抽取。三个环节串联,中间没有统一标准,任何一个环节出错,结果就全错。
而PolyOCR的思路是统一文字识别与版式解析:让大模型一次性读取整个页面,同时输出“这是什么字”“字在哪”“是什么字段”这三层信息。这三个任务共享同一个视觉编码器,用同一套参数学习,互相之间还能修正——如果模型觉得“这个字看起来像是金额,但位置不太对”,它会重新检查,而不是硬给答案。
数据工程:高效构建6000万条OCR监督数据
如果按自然收集到的数据比例训练,常见的印刷文字可能占比过高,而复杂表格、字段关联和长尾版式得不到足够学习。简单增加样本总量,未必能补上这种缺口。PolyOCR的数据构建围绕能力覆盖展开,重点处理公开数据不足或标注代价较高的任务。
以卡证和表单的信息抽取为例,团队先把文档重建成可编辑的HTML/CSS,在保留字段语义与版式约束的条件下替换键值内容,再渲染为图像。这样既能变化内容,又能保持图像与字段标注之间的对应。而对于文字溢出、元素重叠、异常换行和字段错位的图像,则会在质量检查中被筛除。
任务导向的数据引擎。不同来源的材料被转换为带有空间、结构和语义约束的监督数据。
这里需要保住的是监督关系。例如,表格解析不仅检查HTML能否被解析,还需要确认内容与原图一致、页面上的表格没有遗漏。基于此,团队采用多模型交叉验证、结构检查与人工抽查;对于难例,模型之间的分歧则提供了进一步核验的线索,而不是可以直接信任的标签。
经过能力平衡与采样,约6000万条监督微调样本覆盖文字感知、文档结构、理解推理及通用多模态任务。数据规模为联合学习提供基础,质量验证则尽量确保不同任务围绕同一份视觉证据建立正确的监督关系。
训练:让教师指导跟上学生的成长
数据有了,如何分配学习机会?PolyOCR的训练分两个阶段。先通过监督微调建立多种OCR能力,再用CGPO做针对性优化。
监督微调采用分阶段课程:前期侧重文字感知与文档结构,理解和推理任务的占比随后从10%提高到35%,通用多模态数据保持15%。随着训练推进,更复杂的语义操作逐步增加,基础任务仍持续参与学习。
后训练要处理一个更细致的问题。论文举例:一份包含1000个字符的财务文档,金额应为“18650”,多个候选却分别写成了“18850”或“18350”。用常规的文本相似度(比如编辑距离)来打分,每个答案都只错一个字符,归一化编辑相似度均为0.999。整页分数看似很高,但关键金额错了。
如果按组内相对奖励计算优势的传统GRPO,同组生成的答案分数都很高,模型得到的梯度信号几乎为零,则无法提供奖励驱动的纠错梯度。在线策略蒸馏OPD因此成为补充:教师沿学生实际生成的上下文提供逐token指导,使局部错误有机会获得更细的反馈。但这里又有个新问题:教师也可能出错,如果学生机械模仿,错误则会被继承下来。
两阶段训练框架。课程学习建立基础能力,CGPO按样本调节教师指导,并保持GRPO持续优化。
CGPO的解决方案是,把蒸馏强度从统一的训练安排变成样本级的能力判断。它同时判断教师的绝对质量和相对优势。教师虽比学生强,但两者都做得很差时,模仿可能强化错误;教师表现好,而学生已经掌握该样本时,指导也可能冗余。两个条件共同决定了蒸馏权重。
教师与学生使用同一参考答案和任务验证器评分。教师能力提前估计并缓存,学生能力在线更新。独立生成样本用于校准教师质量(胜过学生的概率)和学生的相对水平。只有同时满足教师做得好、学生还有差距时,才会启用蒸馏。当校准后的教师胜率低于0.5时,该样本的蒸馏权重归零,延续结果反馈驱动的优化。同一训练时刻,学生如果已掌握常见字段,则不依赖教师处理复杂表格。CGPO通过样本级判断表达这种差异。
测评:CGPO的提升究竟来自哪里?
测评需要回答两个不同的问题:模型能处理哪些任务,以及性能提升能否归因于提出的方法。论文先从同一监督微调起点出发,比较GRPO、OPD、两者的固定权重组合、余弦衰减组合和CGPO,以区分监督信号与样本级路由各自的作用。
CGPO消融实验。余弦衰减对照按训练步数统一调整蒸馏权重,用于检验样本级能力判断的作用。
余弦衰减对照按训练步数统一降低蒸馏权重。相较按训练步数衰减权重的余弦方案,CGPO在OCRBenchv2.1英文和中文上分别提高2.19分、2.06分,OmniDocBench提高1.45分,CC-OCR提高0.11分。在本次比较范围内,结果支持按样本分配指导,而不仅仅是预设一个递减策略。
相较固定权重的GRPO与OPD组合,CGPO的英文得分则从75.42提高至80.42,中文从77.08提高至78.37。PolyOCR把结果反馈、细粒度指导和能力判断放在同一框架中,才构成了这项后训练方法的完整技术逻辑。
当然也应当看到,CGPO的路由粒度是样本级的。一个整体表现较好的教师,仍可能在某个字符上出错。因此,实验验证的是这套监督分配方法的效果,而不能据此推导出关键字段已经不会出错,或多任务之间的干扰已经被彻底解决。
读懂整页,难点还在文字之外
在测评实验结果中,9B的OCRBenchv2.1中英文得分分别为80.42和78.37;CC-OCR三个已评测方向的平均分为82.43。英文与CC-OCR平均分在论文所比较模型中领先。这些数字共同支撑的是模型对多种文字相关任务的覆盖,不能替代对具体业务材料的验证。
采用两种模式进一步设置OmniDocBench测试:9B直接处理整页的OmniDocBench得分为91.57;借助PP-DocLayoutV3分析版面、裁切区域,再由同一个PolyOCR解析文字、公式和表格,得分则提升至95.52。
后者的分数更高,并不意味着PolyOCR的端到端能力不行。相反,这个结果恰恰说明:PolyOCR的定位是“基础能力”。能力统一描述的是模型能够共享学习并处理哪些任务,工程系统仍然可以借助版面模块改善输入组织。外部模块负责把区域和阅读顺序组织好,模型负责内容识别与结构恢复;这组实验也提示,复杂页面的误差需要沿处理链路定位,不能全部归结为模型不认识文字。
2B还是9B?基于应用场景选择
将OCR作为基础能力建设,还必须考虑它被调用的频率。在线提交证件时,用户等待的是字段及时回填;处理复杂报告时,系统更关心结构是否完整、信息是否准确。两种场景需要的能力有交集,但对推理时延、资源和任务复杂度的取舍不同。
卡证评测为这种多尺度设计提供了业务相关证据:在学信网证明、身份证、录取通知书和国际护照四类材料上,2B与9B的整体字段级F1分别为93.49%和93.60%。
卡证与证明材料的字段级F1对比。2B与9B的整体F1分别为93.49%和93.60%。
出乎意料的是,两者在这一测试集上的整体差距仅为0.11个百分点(93.49%vs93.60%)。2B在学信网证明上达到95.53%,9B在录取通知书上达到88.35%,分别是表内对应列的最高值。这些结果说明,模型规模与具体材料上的表现并非简单的单调关系,选择模型时应当回到实际材料分布。
两者差距在更广泛的能力评测中渐显:2B在OCRBenchv2.1英文、中文上分别为72.33、71.32分,CC-OCR为80.53分;9B对应为80.42、78.37和82.43分。这也表明:卡证测试集上接近的表现,并不意味着两者在所有文档和推理任务上等价。
从测评数据来看,PolyOCR-2B为时延敏感的真实业务提供值得实测的轻量候选,9B则承接更复杂的文档理解与抽取需求,因此部署选择需结合硬件、分辨率、输出长度及并发量验证。在实测时延数据出来之前,建议先用2B在卡证场景做灰度验证,复杂报告类材料再用9B。
写在最后
PolyOCR想做的是把“读文档”做成大模型的基础能力,而不是外挂的OCR工具。
传统OCR是“认字”——你给它一张图,它给你一串文字。PolyOCR则是“理解”——给它一张图,它告诉你字段、位置、含义及字段间的联系。
PolyOCR的技术主线目标是:让大模型在读取业务材料时,尽可能保留文字事实、空间关系与结构约束,并在训练中获得与当前能力相匹配的反馈。对于文档卡证业务,可靠的抽取与推理,首先取决于模型是否读对了它所依据的材料。
技术报告:https://arxiv.org/abs/2609.37712
代码:https://github.com/inclusionAI/PolyOCR-Venus
一键三连「点赞」「转发」「小心心」
欢迎在评论区留下你的想法!
— 完 —
【学术投稿】请在工作日发送邮件至:ai@qbitai.com,标题注明【投稿】,并告诉我们:你是谁,从哪来,投稿内容附上项目/主页链接,以及联系方式。
🎓
我们会 (尽量) 及时回复你 :)
🌟 点亮星标 🌟
科技前沿进展每日见



