用于将PDF和其他基于图像的文档格式转换为干净、可读、纯文本格式。它的核心目标,是让机器拥有类似人类的理解能力,能够解读各类不规范、不完美的 PDF 文档,并从中高质量地提取文本信息 。
olmocr 是一个由艾伦人工智能研究所(AI2)开发的工具包,主要用于将 PDF 和其他基于图像的文档格式转换为干净、易读的纯文本格式。它基于 70 亿参数的视觉语言模型(VLM),需要 GPU 支持,能高效处理各类文档转换工作,转换百万页文档成本不到 200 美元。
功能特色
- 格式转换:能将 PDF、PNG 和 JPEG 格式的文档转换为清晰的 Markdown 格式。
- 多元素支持:支持处理公式、表格、手写内容和复杂格式。
- 自动处理:可自动移除页眉和页脚。
- 智能排序:即便文档包含图表、多列布局和插图,也能将文本按自然阅读顺序转换。
- 性能优异:在其推出的 olmOCR-Bench 基准测试套件(涵盖 1400 份文档的 7000 多个测试案例)中,olmOCR v0.1.75(Anchored)版本整体得分 75.5 ± 1.0,优于 Marker、MinerU、Mistral OCR api 等同类工具。
- 版本更新:不断迭代优化,如 2025 年 6 月 17 日的 v0.1.75 版本将推理管道从 sglang 切换到 vllm,并将 docker 镜像更新为 CUDA 12.8;5 月 23 日的 v0.1.70 版本提供了官方 docker 支持和镜像等。
安装要求
- 硬件:需配备近期的 NVIDIA GPU(如 RTX 4090、L40S、A100、H100),且 GPU 内存至少 20GB,同时需要 30GB 的可用磁盘空间。
- 软件:需要安装 poppler-utils 和额外的字体来渲染 PDF 图像。对于 Ubuntu/Debian 系统,可通过相关命令安装依赖。建议创建干净的 conda 环境进行安装,可根据需求选择安装 CPU 版本(用于运行基准测试)或 GPU 版本(用于实际文件转换),还可安装 flash infer 以加快 GPU 上的推理速度。
使用方法
- 本地使用:可转换单个 PDF、图像文件或多个 PDF,添加 --markdown 标志后,结果将存储在指定工作区的 markdown 文件夹中。
- 多节点 / 集群使用:支持从 AWS S3 读取 PDF,并使用 AWS S3 输出桶协调工作,可在多个节点上并行转换数百万个 PDF;在 Ai2 环境下,添加 --beaker 标志可利用 beaker 高效线性化数百万个 PDF。
- Docker 使用:可拉取 Docker 镜像,通过交互式运行容器,并进行卷挂载以访问本地文件,容器内已安装所有依赖,可直接运行 olmOCR 命令。
应用场景
- 学术研究:科研人员可将大量学术论文(如 arXiv 上的文档)转换为 Markdown 格式,方便进行文本分析、内容提取和整理,便于后续研究引用和参考。
- 文档管理:企业或个人可将各类 PDF 文档(包括包含表格、公式的复杂文档)转换为易读的文本格式,便于存储、检索和编辑,提高文档管理效率。
- 数据处理:在需要处理大量基于图像的文档数据时,可利用其高效转换能力,将文档转换为结构化文本,为数据分析、自然语言处理等任务提供高质量的数据输入。
- 基准测试:开发 OCR 系统的人员可利用其提供的 olmOCR-Bench 基准测试套件,评估自己系统的性能,进行优化和改进。
代码中包含一些可复用的部分,对其他项目可能有帮助,例如:
- 利用 ChatGPT 4o 实现良好自然文本解析的提示策略(buildsilver.py)。
- 用于比较不同管道版本的并排评估工具包(runeval.py)。
- 基于语言的基本过滤和 seo 垃圾信息移除功能(filter.py)。
- Qwen2-VL 和 Molmo-O 的微调代码(train.py)。
- 使用 Sglang 通过微调模型处理数百万个 PDF 的代码(pipeline.py)。
- 查看从 PDF 创建的 Dolma 文档的工具(dolmaviewer.py)。
团队与许可
olmOCR 由 AllenNLP 团队开发和维护,背后有艾伦人工智能研究所(AI2)支持。AI2 是一家非营利机构,致力于通过高影响力的人工智能研究和工程为人类做出贡献。该项目采用 Apache 2.0 许可,完整许可内容可在 GitHub 上查看。
仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
链接: https://fly63.com/nav/4324