科技行者 2026-11-11 13:44:57
你有没有想过,一个识别文字的AI模型,到底应该有多"笨",又应该有多"聪明"?
说它笨,是因为传统OCR说到底就是把图片里的字变成电脑能读的文本,跟翻译机差不多,输入是像素,输出是字符串,没什么好商量的。
说它该聪明,是因为现实世界里的文字从来不是干净利落地躺在那里等你识别。它们印在皱巴巴的收据上,藏在模糊的监控截图里,写在医生看不懂的病历本上,还可能是一张图表里需要你先理解坐标轴含义才能读出数字的那种"文字"。
2026年9月,蚂蚁集团的研究团队发布了一篇技术报告,介绍了他们做的一套叫PolyOCR的OCR模型家族。这篇报告里有个说法挺扎心的,现在的OCR系统大多是"偏科生",有的只会读文字,有的只会解析文档结构,很少有一个模型能把这些事都干好。PolyOCR想做的,就是让一个模型同时具备这些能力,还要在各个方面都不掉链子。
这事到底难在哪,又是怎么解决的,我们一点点聊。
当"全能"成为一个工程问题
先说说现状。目前市面上处理文字图像的AI大致分两条路。
第一条路是专才路线,针对某个具体任务打磨到极致,比如专门做场景文字识别的,专门做表格解析的,专门做证件信息提取的。这类系统往往在自己的赛道上跑得飞快,但换个任务就歇菜了,因为架构、训练数据、输出格式全是为特定场景量身定做的,很难迁移。
第二条路是通才路线,靠通用的多模态大模型硬扛,靠海量预训练数据"自然而然"学会一些OCR能力。问题是这种能力是副产品,不是精心调教出来的,所以经常出现这个模型认字准但定位不准,那个模型解析文档行却看不懂图表的尴尬局面。
**这暴露出一个根本矛盾:广度和精度很难两头兼顾。**
多模态大模型*:能同时处理图像和文字输入,并生成自然语言输出的AI模型,比如GPT、Qwen系列。
你可能觉得这不就是"鱼和熊掌"的老问题吗,但在OCR领域,这个矛盾被放大了。因为OCR任务之间的差异实在太大了。认字要求精确到每个字符,定位要求精确到像素坐标,结构化提取要求严格遵守输出格式,推理类任务又要求理解语义逻辑。如果用同一套训练策略硬train一个模型去学这些完全不同性质的能力,很容易出现某个任务学猛了,把另一个任务的"手感"带偏了,这在机器学习里叫灾难性遗忘。
就像一个厨师同时要学做法式甜点和川菜火锅,如果教学安排不合理,很可能练甜点的那几周手劈椒的刀法都生了。如果不精心设计训练节奏,结果就是样样通、样样松。
PolyOCR团队的应对思路分成两条线,一条是数据怎么喂,一条是训练策略怎么排。我们先看数据这条线。
数据从哪来:把六种能力摆上台面
PolyOCR把OCR相关的能力拆成六个维度:文字识别、文字定位、文档解析、信息提取、视觉文本理解、OCR推理。
这六个维度听起来有点抽象,但举个例子就清楚了。同一张身份证图片,如果任务是"读出姓名",这是文字识别;如果任务是"框出姓名所在的位置",这是文字定位;如果任务是"把整张证件转成结构化字段",这是信息提取;如果任务是"这张证件是哪种类型的文件",这是视觉文本理解;如果任务是"证件上写的出生年份距今多少年",那就跑到OCR推理的范畴了。
同一张图,六种玩法。这种拆分方式的好处是,训练数据不再是零散堆积的,而是能对照着六个维度去检查哪里薄弱,然后针对性地补。
团队发现,现成的公开数据集在某些维度上严重不足,比如中英互译且带空间定位的翻译数据、模板化的证件信息提取、中文文档和表格解析、场景文字的精确定位,这些要么标注成本太高,要么公开资源太少。于是他们专门搭了一套数据构造引擎,去生成这些稀缺能力对应的训练样本。
数据构造引擎*:一套自动化的流水线系统,能把原始的图片、文档、网页等素材,转换成带标注的训练数据,同时内置质量检验机制过滤掉不合格的样本。
这套引擎分三条流水线。
第一条专门处理场景文字和翻译。对于已经有文字的自然图片,团队用两套不同的识别工具(PP-OCRv6和LocateAnything)分别标注,只有两者结果互相印证的才留下,有分歧的交给人工复核。对于没有文字的空白背景图,就用合成技术把文字渲染上去,控制字体、角度、颜色、模糊程度等各种变量,生成带精确坐标的合成样本。
这里有个细节值得琢磨。为什么要用两个模型交叉验证,而不是直接相信一个模型的输出?
想象一下你开了家翻译公司,接到一份重要合同,你会只找一个译员翻完就交稿,还是找两个译员分别翻,然后对照结果,只有一致的部分才算数,有分歧的地方找资深译员人工核实?如果只信一个译员,他犯的系统性错误你永远发现不了,错误会原样复制进最终文档里。两个独立译员同时犯一样的错的概率低得多,一旦他们结果一致,可信度就高了很多。PolyOCR用两个模型交叉验证,本质上就是这个逻辑,用"独立性"换"可靠性"。
第二条流水线处理结构化信息提取、文档解析和表格理解。这里有个挺巧妙的设计,叫模板保留式合成。先用视觉语言模型把一份文档重建成可编辑的HTML/CSS,然后用语言模型替换掉里面的具体内容(比如把张三换成李四,把金额换掉),保持字段语义和排版结构不变,再重新渲染成新图片。这样就能批量生成大量语义多样但格式真实的训练样本,而且因为是从真实模板改造来的,标注天然对齐。
第三条流水线做推理类数据的合成。对于能用规则精确计算答案的任务,比如数字符出现次数统计,直接用模板生成,保证答案绝对准确。对于复杂的多步推理任务,就靠强模型(DeepSeek-V4-Pro)根据已验证的OCR标注生成候选问题和推理过程,再经过一致性校验筛掉错误样本。
经过这整套流程,最终筛选沉淀出大约6000万条高质量训练样本。
训练怎么排:三阶段课程表加动态蒸馏
数据有了,接下来是怎么喂给模型学。
PolyOCR用了两阶段训练框架。第一阶段是监督微调,目标是把六大能力的基础打扎实。第二阶段叫竞争力引导的策略优化(CGPO),目标是在已有基础上精细打磨,让模型在各个任务上的表现更均衡。
先说第一阶段。团队把训练数据分成四组:文本感知(认字、定位相关)、文档结构理解(解析、提取相关)、OCR理解与推理(分类、翻译、计算相关)、通用多模态对齐(保持模型广泛的图像理解能力)。
训练分三个阶段推进,早期阶段文本感知和文档结构的权重更高,占到40%和35%,推理类任务只占10%;到了后期阶段,推理类任务的权重提升到35%,而通用对齐始终稳定在15%。
这个安排背后的逻辑其实挺符合直觉的。认字和定位是基础功,先把基本功练扎实,后面学复杂推理才有地基。如果一上来就逼模型去学需要多步逻辑的推理任务,它连基础的字都认不准,高阶能力根本立不住。
这就像学一门乐器,老师不会一上来就让你弹复杂的协奏曲,得先练音阶、练指法,等手指对琴键有了基本的肌肉记忆,再逐步加入技巧性更高的曲子。如果颠倒了顺序,强行先上难度,基本功没打牢,后面的技巧动作全是悬在空中的。
CGPO:教师模型该什么时候出手
第二阶段的CGPO是整篇报告里技术含量最密集的部分,值得多花点篇幅聊。
先铺垫一下背景。做强化学习微调的时候,业界常用一种叫GRPO的方法。
GRPO*:全称Group Relative Policy Optimization,一种强化学习策略优化算法,核心思路是让模型针对同一个问题生成多个候选答案,然后根据这些答案的相对好坏打分,优劣答案之间的差异作为训练信号。
GRPO的问题在哪?报告里举了个特别具体的例子。假设一份财经文档有1000个字符,其中有一个关键金额18650。模型生成了8个候选答案,结果都把这个数字抄错了,有的写成18850,有的写成18350。因为错的只是一个字符,整体文本相似度算下来几乎一模一样,都是0.999分左右。这就导致8个候选答案的相对优劣几乎没有差别,GRPO压根提取不出有效的训练信号去纠正这一个关键错字。
这就好比一场辩论赛,8个辩手同场比拼,裁判打分时发现大家分数都差不多,那就根本分不出谁更强,也就没法知道该往哪个方向改进。即便其中有一个辩手其实说漏了关键论点,只要整体表现跟别人差不多,这个漏洞就被平均分淹没了。
那怎么办?业界另一个常用技术叫在策略蒸馏(OPD)。
在策略蒸馏*:让一个更强的教师模型,针对学生模型自己生成的内容逐字逐词地给出反馈,告诉学生模型在每一个位置应该生成什么词的概率分布更合理,这种反馈比笼统的整体打分要精细得多。
OPD能解决GRPO的"颗粒度太粗"问题,因为它是逐词给反馈的,能精确定位到那个写错的数字上。但OPD也有自己的麻烦,它完全依赖教师模型的判断。如果教师模型自己也判断错了,比如教师模型也倾向于认为那个金额应该是18850,那蒸馏反而会把错误的答案教给学生,越学越偏。更麻烦的是,随着学生模型越来越强,它可能已经比教师模型在某些样本上判断得更准了,这时候如果还一个劲地按固定权重蒸馏,反而会把学生已经纠正过来的正确答案又带歪回去。
这里就是CGPO真正要解决的核心矛盾:蒸馏的强度不能是一刀切的固定值,得随着教师和学生的真实水平变化动态调整。
具体怎么做?团队设计了一套竞争力评估机制。先让教师模型针对每个训练样本生成多份候选答案,用专门的打分器(不同任务用不同的评分方式,比如文字识别用编辑距离相似度,表格解析用树编辑距离,信息提取用字段级F1分数)算出教师在这道题上的平均得分,这个得分提前算好并缓存起来。训练过程中,再让当前的学生模型针对同一个样本生成候选答案,算出学生的实时得分。两者相减,就是教师相对学生的优势差距。
但光看优势差距还不够,报告里特别强调了一点:教师的平均优势是正的,不代表教师在这道题上的指导就可信。因为一个本身水平一般的教师模型,面对一个更弱的学生,也可能表现出"赢",但这种赢未必靠得住,因为可能只是两边都做得不够好而已。为了避免这种虚假优势误导训练,团队还单独校准了教师的"绝对质量"和"相对胜率"两个指标,只有当教师确实质量过硬,又确实能稳定地在这道题上胜过学生,才会给予高权重的蒸馏指导。否则蒸馏权重直接压到接近零。
**这套机制的本质是让蒸馏权重跟着师生之间真实的能力差距走,而不是跟着一个预先写好的时间表走。**
团队还专门做了对比实验来验证这一点。他们设置了一个对照组,用一个随训练步数单纯按余弦曲线递减的权重策略(不考虑任何实际能力差距),结果显示这种"拍脑袋递减"的策略效果明显不如CGPO的动态路由。在OCRBench v2.1上,CGPO比固定递减策略在英文和中文测试上分别高出2.19分和2.06分。
这个对比挺有意思的。它说明光是"随训练推进逐渐减少依赖教师"这个大方向是对的,但如果不结合每个具体样本上教师到底靠不靠谱、学生到底学得怎么样,光靠一个统一的时间表去调整,效果会打折扣。换句话说,方向对不代表执行方式对,还得看每一步走的是不是真的踩在该踩的点上。
论文里有张图(Figure 5)画出了实际训练中观察到的权重变化曲线,整体趋势确实是从训练初期的高权重逐渐降到后期接近于零,但曲线并不是平滑的直线,而是带着明显的波动,说明不同批次的样本上,教师的可信度确实在不断变化,而不是一个固定节奏。
修订一个有瑕疵的考卷:OCRBench v2.1
讲完模型本身,还得提一下团队做的另一件事,他们重新审视并修订了一个业界常用的评测基准,叫OCRBench v2。
OCRBench v2*:一个覆盖多种OCR任务的大规模中英双语评测集,包含1万条经人工验证的问答样本,常被用来横向比较不同OCR模型的综合能力。
团队发现,这套评测集里有不少标注本身存在问题,还有部分任务的打分方式跟任务目标没对齐。比如公式识别原来用的是"子字符串匹配"这种简单粗暴的方式,只要预测结果里包含了参考答案的字符串就算对,这种方式容易误判,因为视觉上完全等价但LaTeX写法不同的公式会被误判为错误,而语义不完整但碰巧包含了参考字符串的答案反而能通过。
团队把公式识别的评测方式改成了先渲染再逐词匹配的CDM方法,文档解析从只看结构骨架改成了同时看文本内容、公式、表格的综合评估,文本翻译从简单的n-gram重叠率改成了用大模型做语义判断。
这个修订工作听起来枯燥,但其实挺重要的。你想,如果考卷本身的判分标准有问题,那无论参赛选手考得多好,这个分数都没法真实反映水平。团队把这1万条样本里24.5%(2449条)做了修订,但没有增减样本总数,也没有改变任务分布,目的就是让这把"尺子"量得更准。
就像体检报告,如果化验设备本身有系统性误差,那不管病人身体状况如何,报告出来的数字都是失真的。先把设备校准准了,再谈诊断结果才有意义。
真刀真枪的测试结果
说了这么多方法,到底效果怎么样?
团队把PolyOCR放到五个评测基准上去跑分:OCRBench v2.1(刚才说的修订版)、CC-OCR、OmniDocBench v1.6、MDPBench,还有一个自建的企业内部KIE基准。对比对象覆盖了Qwen3.5系列、GPT-5.6-Sol、GLM-4.6V-Flash、InternVL3.5、OvisOCRv2、HunyuanOCR等一众主流模型。
先看OCRBench v2.1这个综合能力测试。PolyOCR-9B拿到英文80.42分、中文78.37分,在13个细分任务分组里排第一的有5项,排第二的有2项。相比之下,参数规模比PolyOCR-9B大得多的Qwen3.8-Max拿到77.75/79.32分,规模相当但更强调通用能力的Qwen3.5-122B-A10B是70.34/78.77分。这意味着一个9B参数的专项OCR模型,靠训练策略和数据构造的精细化,能在综合OCR能力上追平甚至反超参数规模大得多的通用模型。
再看CC-OCR,这是一个更贴近真实应用场景的测试,包含文档解析、信息提取、多场景文字识别三个子项。PolyOCR-9B在文档解析和信息提取两项上都拿到第一,分别是71.71分和94.02分,综合分82.43。这个数字背后的意义是,模型不只是"认字准",还真能把认出来的字组织成有意义的结构化输出,这对实际的文档处理场景(比如企业要批量处理发票、合同)才是真正有用的能力。
企业内部KIE基准这块更贴近实际落地场景,测试模型从身份证、准考证、护照、学信网认证书等真实证件图片里提取字段信息的能力。PolyOCR-9B拿到93.60%的综合F1分数,比参数规模更大的GPT-5.6-Sol(90.98%)和Qwen3.6-35B-A3B(89.17%)都要高。在准考证这一项上,PolyOCR-9B的F1达到88.35%,是所有对比模型里最高的。
多语言文档解析方面,团队额外训练了一个更轻量的PolyOCR-2.7B(1.2B参数的视觉编码器加1.5B参数的文本解码器),专门针对多语言文档场景优化,覆盖21种语言脚本体系。在MDPBench这个多语言测试上,这个小模型综合得分87.0%,超过了参数规模远大于它的GPT-5.6-Sol(86.6%)和Gemini-3-Pro(86.4%)。在17个语言脚本分组里,PolyOCR-2.7B拿到6项第一,12项排进前二。
这几个数字放在一起看,有一个共同的信号:参数规模不是决定OCR能力的唯一变量,数据构造的精细度和训练策略的合理性,有时候能弥补甚至超越单纯堆参数带来的优势。
CGPO到底值不值
团队还做了一组消融实验,把CGPO拆开来看每个组件到底贡献了多少。
从SFT基线出发(未经过第二阶段精调),单独加GRPO,CC-OCR从79.46提升到81.72;单独加OPD,提升到80.91;两者固定权重结合,提升到82.18;而完整的CGPO(带动态竞争力路由),能到82.43。
这个数字差距看起来不算夸张,但每一步的提升都是建立在前一步基础上的边际改进,而CGPO相比固定权重的GRPO+OPD组合,又额外多出0.25分。考虑到后期OCR模型的竞争已经进入"分毫必争"的阶段,这种边际提升往往就是能不能排进第一梯队的关键。
更能说明问题的其实是OCRBench v2.1上的对比。SFT基线是72.08/74.71,加完整CGPO之后变成80.42/78.37,这是一个超过8个百分点的跃升。而加了固定权重GRPO+OPD但没有动态路由的版本,只能到75.42/77.08。这中间差了接近5个百分点,这个差距基本就能归因于"知道什么时候该信教师、什么时候不该信"这件事本身带来的价值。
写在后面
读完这篇报告,最让我意外的其实不是模型分数有多高,而是CGPO那个举的具体例子,财经文档里一个数字写错了,8个候选答案全错,但传统的打分方式居然完全看不出区别。
这个例子揪出了一个容易被忽略的盲点:我们习惯用一个综合分数去衡量AI模型好不好,但综合分数这东西天生有"抹平细节"的毛病。一份1000字的文档,错一个关键数字,整体相似度照样接近满分,可这个错误可能就是让这份文档在实际使用中变得完全不可信的那一个字。
这让我想到审计行业里一个老生常谈的说法,一份财务报表,99.9%的数字都对,但如果错的那个0.1%恰好是总负债金额,这份报表照样是废纸。精度和重要性从来不是线性对应的关系,有些错误哪怕占比极小,后果却极大。CGPO想解决的,某种程度上就是让模型的训练信号对这种"小错误大后果"的情况更敏感一点。
另外一个值得玩味的细节是团队重新校订OCRBench v2的那部分。表面上看这是个不起眼的"打杂"工作,改标注、调指标,听起来不像什么创新。但实际上,整个AI研究圈子里有大量论文的分数比较,建立在一套本身就有瑕疵的评测标准上,大家比来比去,比的是谁更擅长在一个有偏差的尺子上拿高分,而不是谁真的解决了问题。PolyOCR团队愿意花精力去把这把尺子本身修一修,这事比发一个新模型架构可能更不讨喜,但长远看价值未必小。
还有一个没细说但值得多想一步的问题:这篇报告里的六大能力维度划分(识别、定位、解析、提取、理解、推理),本质上是一种"工程上好用"的分类法,未必是认知科学意义上人类阅读理解文字时真实发生的能力结构。人读一张发票的时候,识别文字和理解字段含义几乎是同时发生的,根本不是先认字再理解。那AI模型是不是也应该朝着这种"浑然一体"的方向走,而不是继续用六个独立维度去分别优化?这个问题,这篇报告没回答,但值得继续追问下去。
Q&A
Q1:PolyOCR是什么?
A:PolyOCR是蚂蚁集团GuangJian团队推出的一套统一OCR基础模型家族,包含2B、9B、2.7B等不同参数规模的版本,能同时完成文字识别、定位、文档解析、信息提取、视觉文本理解和OCR推理六大类任务。
Q2:CGPO解决了什么问题?
A:CGPO解决的是传统强化学习训练OCR模型时蒸馏权重固定不变的问题,它会根据教师模型的真实可靠程度和与学生模型的实时能力差距,动态调整要不要依赖教师指导,避免学生学到教师的错误判断或错失自己已经学对的内容。
Q3:PolyOCR和其他OCR模型比表现怎样?
A:在OCRBench v2.1、CC-OCR、企业内部KIE基准等多个测试中,PolyOCR-9B综合表现超过了参数规模更大的GPT-5.6-Sol、Qwen3.8-Max等模型,专为多语言设计的轻量版PolyOCR-2.7B在MDPBench多语言文档解析测试中也拿到最高综合分。
【版权声明】本文内容来源于科技行者,版权归原作者及原媒体所有。本站仅作信息分享,不构成任何商业用途;如涉版权问题,请联系本站删除。
发布时间:2026-11-11 13:04:14
(第1/1页/共9103字/4阅)