RLVR训练多模态文档解析模型-olmOCR 2技术方案(模型、数据和代码均开源)

OLMOCR1.0:
allenai开源多模态的文档智能解析大模型(OLMOCR)方法、效果浅析

往期相关:

olmOCR 2相关对比:

olmOCR 2 是一套面向文档 OCR 的端到端解决方案,其核心方法围绕RLVR,通过 "合成数据规模化 - 单元测试定奖励 - RL 训练提性能" 的闭环,解决传统 OCR 系统在复杂场景(数学公式、表格、多列布局)中的痛点。

现有问题

传统OCR系统的性能评估依赖编辑距离 ,计算模型输出与Ground Truth的字符级差异(插入、删除、替换次数)。

为解决上述问题,设计了下面6类可验证的二进制单元测试(结果仅"通过(PASS)"或"失败(FAIL)"),覆盖文档OCR的需求:

测试类型 核心功能
文本存在性 验证特定短语(如关键句子、公式)是否精确出现在输出中
文本不存在性 验证无关内容(如页眉、页脚、页码)是否未出现在输出中
自然阅读顺序 验证句子/段落的顺序是否符合人类阅读习惯(如图1中"绿色→黄色"不被红色打断)
表格准确性 验证表格单元格的相对位置与数值是否正确(如"Model"在"GPT-4-turbo"上方)
数学公式准确性 用KaTeX渲染模型输出与参考公式,验证视觉结构是否一致(如图2)
基线鲁棒性 验证无长重复n-gram、无非目标语言字符(避免模型幻觉)

这些测试的优势在于:

  1. 公平处理浮动元素:对图注、表格等位置灵活的元素,只要核心逻辑正确(如表格单元格关系、阅读顺序),均判定为通过,避免编辑距离的"过度惩罚";
  2. 精准反映实际正确性:聚焦"用户是否能用"(如公式能否正确渲染、表格能否正确读取),而非"字符是否完全匹配"。

数据

手动为每个文档设计单元测试耗时极长(原文提到"需数小时/文档"),无法支撑RL训练的大规模数据需求。因此,文章开发了全自动合成数据生成 pipeline,实现"文档→HTML→单元测试"的端到端规模化,核心流程分三步:

1. 步骤1:挑选"难处理场景"PDF数据源

为确保合成数据的挑战性(覆盖真实OCR痛点,避免"模板化数据",确保数据多样性,与真实世界OCR需求对齐。),文章选择高难度文档样本

数据来源arXiv数学论文(含复杂公式)、旧扫描件(低分辨率)、多列布局文档、含复杂表格的文档。

2. 步骤2:PDF→HTML的三阶段转换(生成"带Ground Truth的结构化文档")

HTML是生成单元测试的关键:其语义标签(如<header><footer><table>、KaTeX公式)可直接用于自动提取测试用例。转换过程依赖通用VLM(Claude-sonnet-4-20250514) ,分三阶段迭代优化:

阶段 核心任务 输入 输出
1. 布局分析 让VLM识别文档结构:列数、图像/表格位置、页眉/页脚区域、公式位置等 原始PDF页面图像 布局结构描述(如"2列,右上角有表格")
2. 内容渲染 让VLM基于布局分析,生成与原始PDF尺寸一致的语义HTML 原始图像+布局描述 初始HTML(含文本、KaTeX公式、HTML表格)
3. 输出优化 渲染初始HTML为图像,与原始PDF对比,让VLM修正差异(如字体、间距、公式格式) 原始图像+初始HTML+渲染图像 优化后的最终HTML

3. 步骤3:基于HTML自动生成单元测试

利用HTML的结构化信息,程序化提取单元测试用例,无需人工干预:

  • 文本不存在性测试:从<header>/<footer>标签提取页眉/页脚,生成"这些内容不应出现"的测试;
  • 数学公式测试:从KaTeX标签提取公式,生成"渲染后与参考一致"的测试;
  • 表格测试:从<table>标签随机采样单元格,生成"单元格相对位置正确"的测试;
  • 阅读顺序测试:基于HTML中段落的先后顺序,生成"段落顺序符合HTML结构"的测试。

最终生成的合成数据集 olmOCR2-synthmix-1025 包含:2186个PDF页面 → 30381个单元测试用例,为RL训练提供充足数据。

训练流程:SFT→RLVR→模型融合,端到端优化

olmOCR 2的训练分为监督微调(SFT)强化学习(RLVR) 两阶段,结合模型融合(Souping)进一步提升性能:

1. 阶段1:sft

让模型掌握基础的文档解析能力(文本提取、公式识别、表格结构感知),为后续RL优化打基础。选择Qwen2.5-VL-7B-Instruct,使用改进后的监督数据集 olmOCR-mix-1025(267962页,来自10万+PDF),相比旧版(olmOCR-mix-0225)的改进:

  • 用GPT-4.1替代GPT-4o处理数据,减少幻觉;
  • 统一公式格式(块级公式用\[,行内公式用\();
  • 表格用HTML格式存储(而非纯文本);
  • 为图像添加基础alt文本;

2. 阶段2:强化学习(RLVR)

核心是用合成数据的单元测试作为奖励信号,通过GRPO算法优化模型,解决SFT阶段未覆盖的复杂场景(如多列、公式、表格)。

  • 训练数据:olmOCR2-synthmix-1025的合成文档(带单元测试);
  • 采样策略:每个文档生成28个不同的模型输出(completions),确保覆盖足够多的候选结果;

奖励函数设计

奖励总分为三部分,取值均为0~1,确保模型同时优化"内容正确性"和"输出格式合规性":

奖励类型 计算方式 作用
主奖励:单元测试通过率 (通过的单元测试数量)/(总单元测试数量) 核心:优化内容正确性(公式、表格等)
辅助奖励1:EOS token 若输出以EOS(结束符)结尾则为1,否则为0 避免模型无限重复(解决"重复循环")
辅助奖励2:元数据位置 若文档元数据(语言、旋转校正系数)在输出顶部则为1,否则按位置递减 确保输出结构规范,便于下游处理

3. 阶段3:模型融合(Souping)

为避免单一模型的随机性,文章采用模型权重平均(Souping) 策略:训练6个不同随机种子的RL模型(3个用token级重要性采样,3个用序列级重要性采样);对6个模型的权重进行平均,得到最终的olmOCR-2-7B-1025模型;

实验性能

参考文献:

olmOCR 2 Unit Test Rewards for Document OCR,https://arxiv.org/pdf/2510.19817v1

repo:https://github.com/allenai/olmocr

相关推荐
机器觉醒时代3 分钟前
“干活”机器人“教练”登场:宇树机器人推出首款轮式机器人G1-D
人工智能·机器学习·机器人·人形机器人
Sunhen_Qiletian4 分钟前
YOLOv2算法详解(上篇):从经典到进化的目标检测之路
算法·yolo·目标检测
QTreeY1236 分钟前
detr目标检测+deepsort/strongsort/bytetrack/botsort算法的多目标跟踪实现
人工智能·算法·yolo·目标检测·计算机视觉·目标跟踪
only-code9 分钟前
Provable Robust Watermarking for AI-Generated Text:给大模型文字“打上隐形指纹”
人工智能·ai大模型·论文解读·ai检测·文本检测
编程小白_正在努力中13 分钟前
第四章深度解析:智能体经典范式实战指南——从ReAct到Reflection的全流程拆解
人工智能·agent·智能体
创思通信14 分钟前
基于K210的人脸识别开锁
人工智能·yolo·人脸识别·k210
AiXed16 分钟前
PC微信协议之nid算法
python·网络协议·算法·微信
xuehaikj17 分钟前
基于RetinaNet的建筑设计师风格识别与分类研究_1
人工智能·数据挖掘
workpieces21 分钟前
从设计资产到生产代码:构建组件一致性的自动化闭环
人工智能
谢大旭36 分钟前
Clip模型与Vit模型的区别?
人工智能