继续跟进【文档智能】解析进展。文档解析这条赛道依然这么卷,这次开源的OvisOCR2 是一个参数量仅 0.8B 的端到端文档解析模型。快速看一下数据飞轮和训练方法吧。
1. 数据引擎(Data Engine)

上图比较清晰,数据引擎由两条互补的流水线组成:
真实数据流水线:流程:OCR 解析器 → 结构化 JSON → 统一 Markdown 规则转换 → 规则过滤 → 人工抽查。关键点在于——解析器输出只作为「结构化候选」,而非最终标签;在进入训练集前先做确定性转换与保守过滤。目标:把大规模真实文档图像转成可靠的「文档→Markdown」训练数据,让模型见识真实的视觉分布(模板、扫描质量、字体、语言、版面、表格、公式、图等)。
合成数据流水线:遵循 source-of-truth(同源真值)原则:文档图像与其 Markdown 目标都从同一个 HTML 源生成,而不是「先渲染图像、再解析图像得到目标」。这样训练目标是确定性的,避免合成标签中的解析器噪声。完整链路:困难样本挖掘 → 多模态模型生成初始 HTML 模板 → 基于智能体的多样化扩展 → 从结构化源派生 Markdown 真值 → Playwright 渲染图像 → 质检。
2. 训练方案
端到端文档解析既要广格式学习,又要可靠结构化生成。很多表格/公式/长页错误是「结构性」的,用逐 token 模仿损失难以表达,因此训练被组织为分工明确的多阶段。

整体是双分支设计:
4B 分支:SFT → RL(GRPO)→ 产出 RL 对齐的教师模型; 0.8B 分支:SFT → OPD(On-policy Distillation,从 4B 教师蒸馏)→ 模型融合 → 最终模型。
2.1 监督微调(SFT)
SFT 用数据章节描述的完整数据混合(真实文档 + 受控合成样本),建立从文档图像生成 Markdown 的基础策略,为下游 RL/OPD 提供广覆盖与格式一致性。
对 Qwen3.5-0.8B 与 Qwen3.5-4B 做全参数 SFT,同一文档解析目标; 0.8B 训练 2 个 epoch,4B 仅训练 20% 个 epoch(降低大分支成本); 0.8B 的 SFT 检查点初始化可部署学生分支;4B 的 SFT 检查点作为 4B RL 的基础策略,其 RL 结果再作为 OPD 教师; 采用 16K 最大序列长度 + 动态图像分辨率预算,保留细粒度视觉信息而不强制所有页同一分辨率。
2.2 强化学习(RL)
很多关键解析错误是结构性的:表格文字大多正确但单元格拓扑错误;公式字符串相似却渲染失败/表达不同;长页存在遗漏、重复、截断。这些用逐 token 损失弱表达,但可用程序化检查、渲染对比、结构感知解析度量。
主算法用 GRPO(Group Relative Policy Optimization):对每个 prompt 采样多条响应,用可验证奖励计算组相对优势,无需额外价值模型。适合文档解析——响应长、结构化、可由文本/公式/表格分析器评估,让模型在同页多条输出中偏好更完整、稳定、结构合法的候选。
2.2.1 On-policy 困难样本构建
RL 数据不同于广覆盖的 SFT 混合:主要用合成数据流水线的样本(真值结构足够精确以支撑文本/公式/表格奖励),保留少量高质量真实文档维持自然页面分布。
进一步做 on-policy 过滤:用当前策略跑候选页并用奖励函数打分。太简单/太难的样本学习信号少;跨响应变化小的「奖励平坦」样本对组相对学习用处低。训练聚焦于「模型偶尔能产出明显优于自身平均行为」的页面。
2.2.2 多组件奖励设计(Multi-component reward)
奖励面向完整页输出,不把质量压缩成单一文本相似度。标量奖励由各组件(文本、表格、展示公式)按真值中实际存在情况组成;全局有效性检查(最大长度截断、不可解析结构)作为「护栏」把受影响组件置零,而非独立奖励项。
设 。对预测 与参考 ,组件 的页级分数 ;文本分数在页级匹配后计算,公式/表格分数在元素匹配与归一化后对所有可评估真值单元取平均。可用性指示 仅当参考含至少一个该类型可评估单元时为 1。页奖励仅对参考中可用的组件取平均:
2.2.3 可扩展的多模态 RL 训练
为处理长文本响应、页级图像输入、基于渲染的奖励计算,做了三项优化:
奖励计算的分层并行 + 捷径路径:rollout 后多奖励 worker 并行打分;公式奖励先匹配/归一化——归一化精确匹配直接给满分、缺失/无效给 0,仅剩余样本进 CDM 渲染对比;CDM 走带超时的可复用进程池,避免个别问题公式阻塞 worker。表格奖励同理(精确匹配绕过 TEDS,无效/不可解析给 0)。长页/异常输出用超时回退防止匹配成为尾延迟瓶颈。奖励 profiling 保留在训练循环内以便定位瓶颈。 多模态输入传输优化(object-store 引用传递):高分辨率页产生大张量,跨 worker 反复传输会加大主机内存与通信量。训练把大视觉张量存一次、用轻量句柄 + 紧凑元数据引用;策略更新与参考约束计算需要时再取回组装,降低传输开销,避免瓶颈落到序列化/数据搬运。 长响应下的 actor 更新优化:用 common-prefix mask,使同一 prompt 多条 rollout 的长共享前缀不主导 loss,梯度聚焦在生成分叉之后的 token;严格 on-policy、单 epoch 更新下,省去额外的 old-policy 概率计算。
2.3 On-policy 蒸馏(OPD)
核心挑战:把 4B RL 模型学到的「奖励对齐解析行为」迁移到可部署的 0.8B 紧凑模型。4B 容量更大、吸收奖励更稳;紧凑分支对长结构化输出的高方差更新更敏感。论文的预实验显示,直接对 0.8B 做 RL 会出现更大的 KL 漂移、表格质量更不稳(尤其密集页与复杂版面)。如图:

图 (a) 为 actor KL loss(细线为原始逐步值、粗线为 15 步中心滑动均值),(b) 为验证集表格 TEDS。直接 0.8B RL 在训练后期策略发散更高、表格质量下降,故采用 RL 增强的 4B 作为 0.8B 的教师。
学生按当前策略生成完整页输出,教师用 token 级分布监督评估这些 on-policy 轨迹。紧凑模型通过分布匹配获得教师在表格、长公式、密集版面上的偏好,避免再让学生经历一次高方差 RL。
形式化:给定文档图像与指令 ,学生策略 先采样完整响应 ;教师策略 在相同拼接上下文下评估候选 token 条件概率。因师生共享前缀 $c_t=(x,y_{
主目标为学生 top-k 反向 KL:每个响应位置的支持由当前学生分布决定 ,教师只需返回 中 token 的对数概率;师生分布在该支持内归一化:
在有效响应 token 位置集合 上,OPD 损失为:
反向 KL 方向 使目标具有模式寻求(mode-seeking)行为:在比较的支持集内,抑制学生在教师低概率 token 上的质量,而非把学生概率铺满整个教师分布。
高效 OPD 训练:全词表蒸馏对长页昂贵(每位置 张量)。限制到学生 top- 支持 后,主导张量从 降到 。教师打分在 student 轨迹上进行:rollout 后保留每位置 top- token id,用相同前缀向教师查询其对数概率;学生更新复用相同 token id,前向时只 gather OPD 损失所需 logits,并对长响应用分块投影降低峰值显存。
2.4 模型融合(Model Fusion)
训练了多个 OvisOCR2 候选变体(变化数据混合与训练配置),最后用加权参数平均(weighted parameter averaging)做模型融合,得到最终模型。
3. 实验结果



参考文献
OvisOCR2 Technical Report,https://arxiv.org/pdf/2607.13639v1 https://huggingface.co/ATH-MaaS/OvisOCR2
往期相关
多模态文档解析的开源项目模型技术方案都在《文档智能专栏》,如:
...
夜雨聆风