olmOCR模型论文解读

embedded/2025/3/26 4:28:38/

论文标题:OCR.html" title=olmOCR>olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models

论文地址:https://arxiv.org/abs/2502.18443

[注] 先上结论:OCR.html" title=olmOCR>olmOCR是基于Qwen2-VL-7B-Instruct微调的模型,在微调时加入了PDF的一些元信息,训练数据是由gpt-4o-2024-08-06生成的。所以此技术能够达成的天花板效果就是:引入PDF元信息,把7B的VLM在文档OCR上的能力微调到gpt-4o的水平。

Abstract

论文推出了OCR.html" title=olmOCR>olmOCR,一个开源的 Python 工具包,用于将 PDF 处理成干净、线性化的纯文本,按照自然阅读顺序排列,同时保留结构化内容,如章节、表格、列表、方程式等。

工具包加载一个经过微调的 7B 视觉语言模型(VLM),该模型在来自超过 10 万个爬取的 PDF 的 26 万个页面的样本上进行训练,这些 PDF 具有不同的属性,包括图形、手写文本和质量较差的扫描。

Introduction

获取干净、连贯的文本数据是现代语言模型(LMs)生命周期中的关键组成部分。

虽然互联网仍然是语言模型文本内容的宝贵来源,但大量内容无法通过网页轻易获取。电子文档(例如 PDF、PS、DjVu 格式)和文字处理文件(例如 DOC、ODT、RTF)是存储文本内容的广泛使用的格式。然而,这些格式与现代网络标准不同,它们对内容进行编码是为了便于在固定大小的物理页面上呈现,却牺牲了保留逻辑文本结构。

文字提取和表示长期以来一直备受关注,早在 20 世纪 50 年代就有了早期的研究努力,并且第一批商业光学字符识别(OCR)工具在 20 世纪 70 年代末首次亮相。2006 年 Tesseract 的发布代表了一个重要的里程碑,因为它是第一个高质量的开源 OCR 工具包。Nougat和 GOT Theory 2.0将 PDF 页面的图像作为输入,并返回纯文本。

最近,专有的语言模型的快速进步导致了端到端文本提取能力的显著提高。

[注] 这里指的是Qwen开源的VLM

作者推出 OCR.html" title=olmOCR>olmOCR,一个通用的上下文提取和线性化工具包,可将文档的 PDF 或图像转换为干净的纯文本,贡献如下:

  • OCR.html" title=olmOCR>olmOCR 能够处理多种文档类型,涵盖不同领域以及视觉布局。使用 Markdown来表示结构化内容,例如章节、列表、公式和表格。
  • 与其他端到端模型不同,OCR.html" title=olmOCR>olmOCR 使用文本和视觉信息来获得文档的准确文本表示。作者开发了文档锚定技术,一种从原生数字 PDF 文档中提取文本和布局信息的技术,以显著提高提取效果。
  • 为了构建 OCR.html" title=olmOCR>olmOCR,整理了 OCR.html" title=olmOCR>olmOCR-mix-0225,一个包含近 26 万个 PDF 页面的数据集,这些页面来自从网络和公共领域书籍中抓取的各种 PDF。
  • OCR.html" title=olmOCR>olmOCR 与 SGLang和 vLLM都完全兼容。

Methodology

许多端到端光学字符识别(OCR)模型,如 GOT Theory 2.0和 Nougat,仅依赖光栅化页面将文档转换为纯文本;也就是说,它们将文档页面的图像作为输入,以自回归方式解码文本标记。这种方法虽然与仅图像数字化管道具有极大的兼容性,但忽略了一个事实,即大多数 PDF 是数字原生文档,因此已经包含数字化文本或其他有助于正确线性化内容的元数据。

相比之下,OCR.html" title=olmOCR>olmOCR 利用文档文本和元数据。作者将这种方法称为文档锚定

文档锚定

如图,文档锚定提取每页中显著元素(例如,文本块和图像)的坐标,并将它们与从 PDF 二进制文件中提取的原始文本一起注入。至关重要的是,锚定文本与页面的光栅图像一起作为输入提供给任何视觉语言模型。

OCR.html" title=olmOCR>olmOCR_41">Fine-tuning Models for OCR.html" title=olmOCR>olmOCR

虽然这样的范式可用于提示任何语言模型,但作者发现,在这个任务上对较小的视觉语言模型(VLM)进行微调,可以得到与较大的通用模型一样准确的模型,并且在推理时间上效率更高。

Dataset

教师模型的选择。在构建时(2024 年 10 月),作者评估了几个模型来构建训练数据。作者提到GPT-4o、GPT-4o mini、Gemini 1.5 和 Claude Sonnet 3.5 对PDF解析输出的结果尚可接受。最终选择了 gpt-4o-2024-08-06,因为它在批量模式下具有高性能和相对较低的成本。

PDF工具选择OCR.html" title=olmOCR>olmOCR 选择 PDF 工具时利用了两种用于 PDF 光栅化和元数据操作的工具:Poppler将 PDF 中的页面转换为图像;PyPDF提取文本块、图像及其作为文档锚定一部分的位置。

提示策略。用 PDF 页面的图像提示 GPT-4o,使用 Poppler 的 pdftoppm 工具渲染每个页面,分辨率设置为最长边为 2048 像素,这是当时 GPT-4o 模型支持的最大分辨率。

Below is the image of one page of a PDF document , as well as some raw textual content that was previously extracted for it that includes position information for each image and block of text (The origin [0x0] of the coordinates is in the lower left corner of the image).
Just return the plain text representation of this document as if you were reading it naturally.
Turn equations into a LaTeX representation , and tables into markdown format. Remove the headers and footers , but keep references and footnotes.
Read any natural handwriting.
This is likely one page out of several in the document , so be sure to preserve any sentences that come from the previous page , or continue onto the next page , exactly as they are.
If there is no text at all that you think you should read , you can output null.
Do not hallucinate .
RAW_TEXT_START
{base_text}
RAW_TEXT_END

最后,指示 GPT-4o 以结构化输出回应请求,迫使模型在以自然阅读顺序输出页面文本之前,先提取页面元数据,如语言、页面方向和表格的存在。

数据采集和页面采样。为了生成主要的训练数据集,从 2.4 亿份 PDF 的数据集中抽取了 10 万份 PDF,该数据集是从公共互联网网站上抓取的。识别并过滤掉非英语的文档。此外,移除任何无法被 pypdf 解析、包含垃圾关键词、是可填写表单或文本太短的文档。然后,我们从每份 PDF 中随机均匀地抽取最多 3 页。这产生了大约 249332 个 PDF 页面。还从互联网档案馆的公共领域扫描书籍数据集中抽取了 5601 份 PDF,并进行了类似的处理。与网络抓取的数据集不同,这个集合中的 PDF 是书籍页面的图像扫描,而不是原生数字文档。

数据集概览

Model Training

OCR.html" title=olmOCR>olmOCR-7B-0225-preview 从 Qwen2-VL-7B-Instruct进行微调。训练使用transformers 库。超参数设置:使用有效批大小为 4(批大小为 1,有 4 个梯度累积步骤),学习率为 1e - 6,AdamW 优化器,以及 10000 步(大约 1.2 个epoch)。用 8 个 NVIDIA H100 GPU 的单节点。对全微调以及 LoRA都进行了实验。

OCR.html" title=olmOCR>olmOCR_81">Evaluating OCR.html" title=olmOCR>olmOCR

OCR.html" title=olmOCR>olmOCR 进行如下评估。

  • 研究 OCR.html" title=olmOCR>olmOCR 与其教师模型的忠实程度。
  • 通过对其输出进行成对比较,将 OCR.html" title=olmOCR>olmOCR 与其他 PDF 文本提取系统进行比较。

Alignment with Teacher Model

对齐分数

总体而言,OCR.html" title=olmOCR>olmOCR-7B-0225-preview 与其教师模型具有良好的对齐性,平均为 0.875。为了校准这一结果,还报告了 GPT-4o 的自对齐分数为 0.954,这仅仅是再次调用该模型得到的结果;这里的不完全对齐是由于重采样差异造成的。

Intrinsic Human Evaluation

为了将 OCR.html" title=olmOCR>olmOCR 与其他常见的 OCR 方法进行比较,收集了由三种顶级基于机器学习的 PDF 线性化工具(Marker、MinerU 和 GOT-OCR 2.0)生成的纯文本的成对人类判断,并计算了 ELO 评级。

抽取了 2000 个比较对(相同的 PDF,不同的工具),请了 Ai2 的 11 位数据研究人员和工程师来评估哪个输出是原始 PDF 的更高质量表示,重点关注阅读顺序、内容的全面性和结构化信息的表示。

ELO分数

OCR.html" title=olmOCR>olmOCR 实现了超过 1800 的 ELO 分数,远远超过所有其他 PDF 线性化工具。


http://www.ppmy.cn/embedded/176209.html

相关文章

举例说明自然语言处理(NLP)技术

当我们使用智能助手或社交媒体平台时,就会接触到自然语言处理(NLP)技术的应用。以下是一些常见的例子: 语音识别:当我们与智能助手如Siri、Alexa或Google Assistant交互时,我们说出语音命令,系统…

Java-模块二-2

整数类型 byte:在 Java 中占用8位(1字节),因此它的取值范围是从 -128 到 127。这是最小的整数类型,适合用于节省空间的情况。 short:这种类型的大小是16位(2字节),允许的…

keda基于postgresql伸缩dify-api服务

1 概述 dify-api使用postgresql来存储数据,在dify控制台每新建一个聊天机器的聊天框,就会在conversations表里新插入一条记录,并且不断地更新字段updated_at,示例如下: dify# select * from conversations limit 1; …

【机器人动力学】——转动惯量

【机器人动力学】——转动惯量 一、质量分布 转动惯量的定义: A I [ I x x − I x y − I x z − I x y I y y − I y z − I x z − I y z I z z ] ^AI \begin{bmatrix} I_{xx} & & -I_{xy} & & -I_{xz} \\ -I_{xy} & & I_{yy} & …

python实战,提取数据汇聚到表格中

起因: 一个临时性的检查工作,上级单位发来数十张表格,每张表格名以一个特定的数字开头,表示其中的一个规则,每张表格有几千到几十万条数据,在每张规则表中,每条数据的序号是唯一的。然后这些表…

品融电商:深耕兴趣电商,多维赋能品牌长效增长

品融电商:深耕兴趣电商,多维赋能品牌长效增长 在流量去中心化与消费需求多元化的新商业时代,品牌如何精准触达年轻用户、快速建立心智认知并实现销量突破?品融电商(PINKROON)凭借其“效品合一&#xff0c…

让 Deepseek 写一个计算器(网页)

完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简单计算器</title><style&…

conda install 和 pip install 的区别

conda install 和 pip install 是两个常用的包安装命令&#xff0c;但它们在很多方面存在差异。 1. 所属管理系统不同 1.1 conda install conda install 是Anaconda和Miniconda发行版自带的包管理工具 conda 的安装命令。conda 是一个跨平台的开源包管理系统和环境管理系统&…