OlmOCR
OlmOCR

OlmOCR

olmOCR 是 AI2 开源的 GPU 文档重建工具,可将 PDF、PNG 与 JPEG 页面转换为自然阅读顺序的 Markdown 或纯文本,并处理表格和公式。

145

Views

0

Likes

Jan 2026

Added

github.com

项目链接

Tags

olmOCRPDF 转 Markdown文档 OCR视觉语言模型表格识别AI2

Product Preview

A quick visual look at OlmOCR before you visit the official site.

Published 1/21/2026
OlmOCR screenshot

Editorial Review

About OlmOCR

olmOCR 是 AI2 面向文档线性化发布的开源工具包。它把 PDF 的每一页渲染为图像,再交给针对文档训练的视觉语言模型 olmOCR-2 重建可读文本、表格和 LaTeX 公式;随后解析模型返回的 YAML 元数据,处理旋转或失败重试,并将页面拼接成 Markdown 与 Dolma JSONL。它也能接收 PNG 和 JPEG,因此适合论文语料、历史扫描件、知识库导入与 RAG 预处理。

它并不是传统意义上的“逐字识别器”。传统 OCR 重点是字符和坐标,olmOCR 还会判断多栏阅读顺序、去除页眉页脚、把视觉表格改写为文本结构。这种能力能得到更适合语言模型消费的结果,也带来生成式风险:语句看起来通顺,不代表数字、否定词、变量或表格对应关系一定忠于原页。源文件、页面图像和审阅记录必须保留。

olmOCR 从页面渲染、视觉语言模型重建到质量复核的生产流程
这张原创流程图依据官方 pipeline 与 olmOCR-Bench 的检查维度绘制,不代表任何未经验证的准确率。核心原则是先重建页面,再核对事实。

一页文档实际上经历什么

阶段当前行为必须防范的问题
输入PDF、PNG、JPEG;可在本地或 workspace 中组织加密、损坏、超大文件以及无权处理的资料需要另行拦截
渲染PDF 页面按受控尺寸转换成 PNG,模型可提示旋转修正小字、模糊、压缩、污损和极端纵横比会减少视觉证据
重建olmOCR-2 根据整页图像输出自然阅读顺序文本和结构模型可能漏写、替换、归一化或凭上下文补出不存在的内容
验证与重试检查上下文长度、结束原因、YAML 可解析性与旋转信号格式通过只证明可解析;多次重试仍可能得到另一种合理但错误的答案
导出拼接页面文本与页跨度,写入 Dolma;可同步写 Markdown跨页表格、脚注、标题层级以及缺页仍需文档级复核

当前主线实现把每页作为相对独立的推理任务。这样的设计便于并发、失败重试和断点续跑,却不会自动解决跨页语义。例如表头在上一页、续表在下一页时,单页结果可能各自合理但组合后错误;页面边界、原文件哈希和失败清单因此不能丢。

官方仓库在本次复核时仍在维护,GitHub 可见的最新稳定版为 v0.4.27,发布日期为 2026 年 3 月 12 日。近期版本曾修复长队列、旋转和空白文档幻觉等问题。这说明项目活跃,也说明生产环境应锁定经过回归测试的版本,而不是每次直接使用 main。

Anchor 锚点:旧方法与当前模型的关键版本边界

仓库保留了 anchor.py:它可以通过 pdftotext、PDFium 或 pypdf 抽取一段原生 PDF 文本,早期模型会把这段不完美文本与页面图像一起提供给 VLM,帮助恢复难认字符。CLI 目前仍显示 --target_anchor_text_len,但帮助文本明确标注“新模型不使用”。当前主线的页面请求调用的是 no-anchoring 提示,只有模型失败时的 fallback 会直接采用 pdftotext。

因此,把“olmOCR 一定依赖 PDF 锚点”写成固定卖点是不准确的。锚点是项目历史和代码中保留的技术路径,不是 olmOCR-2 每次推理的证据来源。即便如此,对 born-digital PDF 仍建议独立执行原生文本提取并与 VLM 结果比较:一致不等于绝对正确,但不一致能快速暴露编码、阅读顺序、遗漏或幻觉。纯扫描页通常根本没有可用文本层。

模型、数据、评测与许可证

证据项官方资料核实到的范围正确解读
第一代训练混合论文描述 26 万页、来自超过 10 万份抓取 PDF,包含图形、手写和劣质扫描数据多样不等于每种语言、档案或表单都同样可靠
olmOCR-2由 Qwen2.5-VL-7B-Instruct 微调的 7B 级模型,并采用可验证单元测试奖励的强化学习论文称提升主要集中在英文基准的数学、表格和多栏页面
olmOCR-Bench约 1,400 个单页 PDF,用 7,000 余项可机器核查事实覆盖公式、表格、旧扫描、页眉页脚、多栏和小字它刻意测试困难事实,不等于用户自己的文档分布
精度与硬件模型卡建议实际推理优先 FP8;BF16 适合继续微调量化标签不能替代在目标 GPU、并发与图像尺寸上的实测
许可证工具代码和发布的 olmOCR-2 权重为 Apache-2.0,模型卡另指向 AI2 Responsible Use Guidelines还需分别核对源文档版权、依赖、基础模型通知和业务合规

不要把仓库排行榜改写成“通用准确率”。olmOCR-Bench 是英文、单页、事实单元测试式评测,并有意集中在难例;它比只看字符编辑距离更能发现公式变量或阅读顺序错误,但仍不能证明中文合同、日文竖排、票据或病历质量。本文不搬运一个貌似精确的通用分数,也不编造 WER。

原论文给出过特定 2025 环境下的大规模页面成本实验。那是论文所用模型、硬件、批处理与当时价格的历史结果,不是今天的固定报价。生产预算应统计“每个验收通过页面”的成本,包括失败重试、GPU 空闲、传输、存储与人工复核,并注明版本和复核日期。

安装、本地批处理与远程推理

python -m venv .venv
source .venv/bin/activate
pip install "olmocr[gpu]"
olmocr ./workspace --markdown --pdfs ./samples/report.pdf

olmocr ./workspace --markdown --workers 2 \
  --max_page_retries 3 --pdfs ./incoming/*.pdf

pip install olmocr
olmocr ./workspace --server https://inference.example/v1 \
  --api_key "$OLMOCR_API_KEY" \
  --model allenai/olmOCR-2-7B-1025-FP8 \
  --max_concurrent_requests 8 --markdown --pdfs ./incoming/*.pdf

当前项目元数据要求 Python 3.11 及以上;GPU extra 固定了 Torch、Transformers 与 vLLM 版本。官方 README 把它描述为需要 GPU 的 7B 级 VLM。不要仅因为通用 Transformers 理论上能把权重放进内存,就对外承诺受支持的 CPU-only 生产路径。应先用目标 CUDA 驱动、显卡、镜像和锁文件做兼容性测试。

本地 GPU 能让页面在已批准环境中完成推理;远程 OpenAI-compatible server 则把渲染页传给另一台机器或供应商。后者不是“只上传向量”,而是发送足以还原文档内容的页面图像。必须审查 TLS、认证、区域、日志、保留策略、数据处理协议、模型别名和并发限制,API key 只放秘密管理器。

部署方式适用场景必须控制主要风险
本地单 GPU隐私试点和中等队列锁版本、限制 worker/显存、加密 workspaceCUDA/显存兼容和单机故障
内部多 GPU大规模受控批次可恢复队列、并行策略、逐页清单和质量抽样吞吐提高会同时放大静默错误
自托管远程服务同一受控网络内共享推理TLS、服务身份、限额、禁记录请求正文敏感文档集中暴露
第三方 API无需先购 GPU 的快速评估DPA、区域、保留、价格和模型版本复核数据边界、费用与模型别名会变化
AI2 在线 demo非敏感定性体验只用公开或合成样本demo 不等于已通过隐私与 SLA 审批的生产服务

可执行的评测与批处理验收流程

  1. 按失败模式抽样。同时包含数字 PDF、照片、旋转/倾斜、旧扫描、小字、多栏、公式、表格、手写、混合语言、空白页和最长文件。
  2. 建立逐页事实。标注人名、日期、金额、否定词、表格单元关系、公式、必须出现文本、不得出现的页眉页脚以及前后阅读顺序。
  3. 至少跑两条独立路径。把 olmOCR 与 PDF 原生提取、Tesseract 或另一解析器比较;差异自动进入人工队列。
  4. 分别统计漏写与幻觉。一个错误负号或虚构句子可能只影响少量字符,却彻底改变事实。
  5. 记录运行指标。包括每页延迟、重试、失败页、峰值显存、输入输出 token 与每个验收页成本。
  6. 冻结复现清单。保存输入哈希、olmOCR 版本、checkpoint、FP8/BF16、运行时、渲染尺寸、重试参数和审阅结论。
  7. 小批通过后再扩容。设置最大缺页率和停止条件;质量下降、异常短输出或大量重试时暂停,而不是继续堆积结果。
  8. 对高风险字段做人工复核。财务数字、法律义务、医疗信息、公式和表格不得仅凭模型输出自动发布。
git clone https://github.com/allenai/olmocr.git
cd olmocr
pip install -e ".[bench]"
playwright install chromium
huggingface-cli download --repo-type dataset allenai/olmOCR-bench \
  --local-dir ./olmOCR-bench
python -m olmocr.bench.convert olmocr_pipeline --dir ./olmOCR-bench/bench_data
python -m olmocr.bench.benchmark --dir ./olmOCR-bench/bench_data

官方 olmOCR-Bench 很适合升级回归:它用 presence/absence、阅读顺序、表格关系和可渲染数学等二元事实测试,避免把所有问题压缩成编辑距离。运行需要额外 bench 依赖与 Playwright Chromium。先按 README 选择受支持 runner 生成输出,再评分;不要把命令复制到未经审查的生产数据环境。

还要建立私有 holdout,且不能用同一批页面反复调参后再把它当独立测试。将错误按文本事实、结构、阅读顺序、语言、扫描质量和运行失败分类。对于 RAG,还要检查分块后引用是否仍能指回页码;对结构抽取,要验证 JSON/表格字段,而非只看 Markdown 外观。

表格、公式、扫描、语言、隐私与幻觉

表格和公式是 olmOCR-2 明确优化的难点,但“能输出 Markdown/LaTeX”不等于语义正确。核对合计、行列对应、合并单元格、上下标、小数点、千分位、负号和公式变量。一个更整洁的表格可能静默规范化了原值。需要决策或引用时,应让结果始终链接到源页图像。

低分辨率与严重污损存在证据上限。放大不能恢复已经消失的墨迹,VLM 会利用语言上下文猜出合理词语;这恰好是生成式系统的危险之处。把无法核实的部分标为不确定,不要让下游 LLM 在没有源证据的情况下自动“修复”。空白页、近空白页、重复页与恶意提示样式文本也应列入测试。

官方 benchmark 是英文。模型能处理多语言页面,但已发布证据没有证明所有文字系统质量一致。中文繁简混排、日文竖排、韩文旧字、阿拉伯从右到左、罕见字符和跨语言页面都要独立抽样,并用母语审阅者核对。不要从英语 leaderboard 推导一个多语准确率。

本地推理只有在模型缓存、S3 workspace、日志、崩溃转储、备份和监控也受控时才能称为本地隐私方案。最小化保留、加密原件与输出、按角色授权、日志脱敏并设置删除日期。远程服务接收的是完整页面证据,应按完整文档敏感度管理。

YAML 可解析、finish_reason 正常或重试成功,都只是技术健康信号,不是事实验证。可以用异常长度、禁用短语、页数覆盖、跨引擎差异和关键字段规则筛出问题;但法律、医疗、财务、身份和科研结论仍需人工检查。

与 Marker、Docling、Tesseract 和云文档 AI 的真实差异

方案更适合什么时候输出优势核心代价
olmOCR目标是供 LLM/RAG 使用的自然顺序文本,页面含公式、表格和复杂布局干净 Markdown/文本与 Dolma 语料记录GPU/VLM 运维、生成式错误、位置结构较弱
Marker需要多格式、图片导出、结构化 JSON,或 CPU/MPS/混合解析模式Markdown、JSON、HTML、chunks 和块结构不同模式行为不同;模型权重许可证与 Apache 代码许可证需分开核对
Docling需要广泛输入格式、统一 DoclingDocument 与本地/隔离部署lossless JSON、Markdown/HTML 与丰富集成可配置栈更大,质量取决于所选 OCR/VLM/pipeline
Tesseract需要可重复的字符识别、坐标、TSV/hOCR 和大量语言训练包文本与逐词位置格式复杂布局、表格、公式和自然阅读顺序需额外组件
云 Document AI需要托管 SLA、表单/KV、分类、拆分和专业处理器供应商结构化 Document 对象与运维能力按量计费、数据边界、供应商 schema 与锁定

独立判断:olmOCR 的最佳定位是“面向语言模型的页面重建器”,不是像素级档案转录系统。若业务硬要求字词坐标、确定性审计、表单字段或分类,应优先结构化 OCR/解析器或云处理器,也可以把 olmOCR 作为第二视角。

更稳健的生产架构通常是路由而不是单模型:干净数字页走原生提取,视觉复杂页走 VLM,关键字段或两条路径冲突时进入人工复核。这样既不会为所有页面支付 VLM 成本,也不会把顺滑 Markdown 当成无条件真相。

常见问题

olmOCR 只是给 Tesseract 加了一个语言模型吗?

不是。Tesseract 偏向行级字符识别并可返回坐标;olmOCR 把整页作为视觉输入,直接生成自然顺序文本、表格与公式。后者更懂布局,但也可能生成合理的错误。

当前 olmOCR-2 会使用 PDF anchor text 吗?

主线新模型请求采用 no-anchoring 提示,CLI 也说明 anchor 长度参数不用于新模型。代码仍保留 anchor 抽取与 pdftotext fallback,原生文本仍适合作为独立验证来源。

可以完全离线运行吗?

模型和依赖预先下载后,可以在兼容的本地 NVIDIA GPU/vLLM 环境运行。仍需确认缓存、日志、workspace、备份和更新检查没有外发。远程 server 模式会发送页面内容。

会保留 bounding boxes 吗?

主要输出是带页跨度的线性化自然文本,不是逐词坐标图。位置溯源是硬需求时,应选 Tesseract、Marker JSON、Docling 或云文档 AI。

表格与公式可以直接用于财务或科研吗?

不能跳过验证。必须核对合计、行列关系、负号、变量、单位和合并单元格,并保留源页。已优化某类任务不等于每个实例都正确。

支持哪些语言?

模型可以处理多语言,但官方 benchmark 是英文,没有一个可信的“所有语言统一准确率”。每种目标语言、书写方向和页面类型都要建立测试集。

需要多少显存?

官方说明是 7B 级 GPU 模型并推荐实际推理使用 FP8,但没有一个适用于所有运行时、上下文、图片尺寸和并发的固定显存承诺。应在目标 GPU 实测。

AI2 demo 能上传机密文件吗?

不要默认可以。未完成当前隐私、保留和服务条款审核前,只用公开或合成页面。敏感文件应进入批准的本地环境或合同覆盖的服务。

核对过的资料

独立技术复核:2026-08-20。复核时可见的最新稳定版为 v0.4.27。模型别名、依赖、API 价格与 demo 政策会变化,生产前请再次核对固定版本和私有测试集。

前往 OlmOCR 官方来源核查

打开官方仓库、文档或模型资源。

查看官方来源

Quick Info

项目链接
github.com
Added
1/21/2026
Published
1/21/2026
Updated
9/6/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool
AnyGen

AnyGen

AnyGen 是 AI 工作空间,用于创建和润色报告、文档、演示、分析、计划和面向客户的专业交付物。

AnyGenAI workspaceAI assistant
2560
Gamma App

Gamma App

Gamma 是一个人工智能辅助工作区,用于创建可编辑的演示文稿、文档、网页、社交帖子和图形。该独立指南涵盖了创建模式、当前计划边界、进出口、品牌和可访问性质量检查、事实检查、网站发布、隐私和替代方案。

Gamma AppAI 演示文稿AI 幻灯片
1990
Read AI Digital Twin

Read AI Digital Twin

Read AI Digital Twin 将 Read AI 从会议摘要扩展为工作 Agent,可用于邮件回复、会议安排和推动办公对话。

Read AIDigital TwinAI meeting assistant
970
Multica

Multica

Multica 是一款 productivity 方向的 AI 产品,适合希望把真实工作流落到生产环境的用户。

productivityAI 工具
2540