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 小时前
(论文速读)开放词汇3D场景理解的掩蔽点-实体对比
人工智能·计算机视觉·图像生成·1024程序员节·开放词汇·3d重建
凉虾皮3 小时前
2024包河初中组
学习·算法·1024程序员节
m0_748233644 小时前
C++ 模板初阶:从函数重载到泛型编程的优雅过渡
java·c++·算法·1024程序员节
大象耶4 小时前
计算机视觉六大前沿创新方向
论文阅读·人工智能·深度学习·计算机网络·机器学习
以己之4 小时前
11.盛最多水的容器
java·算法·双指针·1024程序员节
初级炼丹师(爱说实话版)5 小时前
算法面经常考题整理(3)大模型
算法
TMT星球5 小时前
加速进化发布Booster K1,打造AI时代的苹果公司
人工智能
tangchen。5 小时前
YOLOv4 :兼顾速度与精度!
人工智能·计算机视觉·目标跟踪
郑清5 小时前
Spring AI Alibaba 10分钟快速入门
java·人工智能·后端·ai·1024程序员节·springaialibaba