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

相关推荐
文心快码BaiduComate11 分钟前
百度云与光本位签署战略合作:用AI Agent 重构芯片研发流程
前端·人工智能·架构
风象南1 小时前
Claude Code这个隐藏技能,让我告别PPT焦虑
人工智能·后端
Mintopia2 小时前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮2 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬2 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia3 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区3 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两6 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪6 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain