> 技术文档 > 只有3B参数开源OCR大模型!MonkeyOCR媲美MinerU+Gemini 2.5 Pro +Qwen2.5-VL+olmOCR!真实测评+保姆级部署教程!三分钟打造自己的PDF扫描件OCR

只有3B参数开源OCR大模型!MonkeyOCR媲美MinerU+Gemini 2.5 Pro +Qwen2.5-VL+olmOCR!真实测评+保姆级部署教程!三分钟打造自己的PDF扫描件OCR

MonkeyOCR是一个基于Structure-Recognition-Relation (SRR)三元组范式的轻量级文档解析模型,由华中科技大学和金山办公联合开发。该模型专门用于文档解析任务,能够处理中英文文档。

🚀🚀🚀本篇笔记所对应的视频:🚀只有3B参数开源OCR大模型!MonkeyOCR媲美MinerU+Gemini 2.5 Pro +Qwen2.5-VL+olmOCR!真实测评+保姆级教程_哔哩哔哩_bilibili

🔥🔥🔥微信:stoeng

核心优势和特点

1. 创新的SRR三元组范式

MonkeyOCR将文档解析抽象为三个基本问题:\"Where is it?\"(结构)、\"What is it?\"(识别)和\"How is it organized?\"(关系),分别对应布局分析、内容识别和逻辑排序。这种设计:

  • 简化了传统多工具流水线的复杂性
  • 避免了大型多模态模型处理全页文档的低效率问题
  • 在精度和速度之间实现了最佳平衡

2. 卓越的性能表现

与基于流水线的方法MinerU相比,MonkeyOCR在九种中英文文档类型上平均提升5.1%,其中公式识别提升15.0%,表格识别提升8.6%。

与端到端模型相比,3B参数的模型在英文文档上达到最佳平均性能,超越了Gemini 2.5 Pro和Qwen2.5 VL-72B等模型。

3. 处理速度优势

在多页文档解析方面,MonkeyOCR达到0.84页/秒的处理速度,超越MinerU(0.65页/秒)和Qwen2.5 VL-7B(0.12页/秒)。

模型详细参数

基础参数

  • 模型大小: 3B参数
  • 架构: 基于视觉-语言模型的Transformer架构
  • 支持语言: 中文和英文
  • 部署要求: 可在单张NVIDIA 3090 GPU上高效运行

技术架构

MonkeyOCR采用三个专门组件并行工作:结构模块分析文档布局,识别模块处理文本提取,关系模块映射不同元素之间的连接。

训练数据

模型使用MonkeyDoc数据集训练,该数据集包含390万个实例,涵盖十多种中英文文档类型。

支持的文档类型

模型支持解析以下九种文档类型:

  • 书籍(Book)
  • 幻灯片(Slides)
  • 财务报告(Financial Report)
  • 教科书(Textbook)
  • 考试卷(Exam Paper)
  • 杂志(Magazine)
  • 学术论文(Academic Papers)
  • 笔记(Notes)
  • 报纸(Newspaper)

技术优势

1. 硬件兼容性

  • 支持LMDeploy和Transformers推理后端
  • 在RTX 3090/4090上可能需要调整为Transformers后端以避免兼容性问题
  • 推荐Flash Attention 2以提升性能

2. 部署灵活性

  • 支持Gradio演示界面
  • 正在开发对Ollama和其他部署方案的支持
  • 提供简单的命令行接口

性能评估结果

在OmniDocBench基准测试中,MonkeyOCR在多项指标上表现出色:

  • 整体编辑距离: 英文0.124,中文0.257
  • 公式CDM得分: 英文86.2,中文65.4
  • 表格TEDS得分: 英文86.2,中文81.8

使用限制

目前MonkeyOCR不支持拍摄的文档,但团队将在未来更新中持续改进。模型主要针对PDF文档和数字化图像进行优化。

🚀Colab脚本:https://github.com/win4r/mytest/blob/main/monkeyOCR_AI超元域频道制作.ipynb

安装和使用

环境要求

conda create -n MonkeyOCR python=3.10conda activate MonkeyOCRpip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1

基本使用

python parse.py path/to/your.pdf

MonkeyOCR代表了文档理解技术的重大进步,其统一的结构-识别-关系方法提供了更准确和高效的文档处理能力,在计算资源要求较低的同时实现了卓越的性能。

环境准备

1. 创建Python环境

conda create -n MonkeyOCR python=3.10conda activate MonkeyOCR

2. 克隆项目代码

git clone cd MonkeyOCR

3. 安装PyTorch

根据您的CUDA版本安装对应的PyTorch:

# 针对CUDA 12.4版本pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url 

4. 安装MonkeyOCR

pip install .

模型权重下载

方式一:从Hugging Face下载

pip install huggingface_hubpython download_model.py

方式二:从ModelScope下载

pip install modelscopepython download_model.py -t modelscope

基础使用方式

命令行推理

# 基础使用python parse.py path/to/your.pdf# 指定输出路径和配置文件python parse.py path/to/your.pdf -o ./output -c config.yaml# 指定模型路径和配置文件python parse.py path/to/your.pdf -m model_weight/Recognition -c config.yaml

GPU兼容性配置

针对RTX 3090/4090的配置优化

当在RTX 3090/4090 GPU上使用LMDeploy作为推理后端时,可能会遇到兼容性问题。解决方案:

1. 安装Flash Attention 2

pip install flash-attn==2.7.4.post1 --no-build-isolation

2. 修改配置文件

编辑model_configs.yaml文件:

chat_config: backend: transformers # 改为transformers后端 batch_size: 10 # 根据GPU内存调整批次大小

Gradio UI部署

1. 安装UI依赖

pip install gradio==5.23.3pip install pdf2image==1.17.0

2. 启动Gradio演示界面

python demo/demo_gradio.py

3. UI功能特性

MonkeyOCR的演示界面提供以下功能:

  • 上传PDF或图像文件
  • 点击\"Parse (解析)\"按钮让模型执行结构检测、内容识别和关系预测
  • 最终输出为Markdown格式的文档
  • 选择提示词并点击\"Test by prompt\"基于所选提示词进行内容识别

在线演示体验

官方提供了在线演示地址:Gradio

注意事项

  • 目前模型部署在单GPU上,如果同时有太多用户上传文件,可能会出现\"This application is currently busy\"的问题
  • 演示页面显示的处理时间不仅包括计算时间,还包括结果上传和其他开销

性能基准测试环境

MonkeyOCR、MinerU和Qwen2.5 VL-7B的推理速度都是在H800 GPU上测量的:

  • MonkeyOCR: 0.84页/秒(多页文档)
  • MinerU: 0.65页/秒
  • Qwen2.5 VL-7B: 0.12页/秒

部署架构建议

单GPU部署

  • 推荐硬件: NVIDIA 3090或更高配置
  • 内存要求: 根据批次大小调整,建议至少24GB显存
  • 推理后端: 对于3090/4090建议使用Transformers

生产环境部署

# 启动服务python demo/demo_gradio.py --server_name 0.0.0.0 --server_port 7860

Docker部署(如需要)

虽然官方文档未提供Docker配置,但您可以基于以上步骤创建Dockerfile:

FROM nvidia/cuda:12.4-devel-ubuntu22.04# 安装Python和condaRUN apt-get update && apt-get install -y wgetRUN wget RUN bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda# 设置环境ENV PATH=\"/opt/conda/bin:$PATH\"RUN conda create -n MonkeyOCR python=3.10# 复制代码并安装依赖COPY . /appWORKDIR /appRUN pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url RUN pip install .RUN pip install gradio==5.23.3 pdf2image==1.17.0# 启动服务CMD [\"python\", \"demo/demo_gradio.py\"]

未来发展计划

团队正在积极开发对Ollama和其他部署解决方案的支持,以确保为更多用户提供更流畅的体验。

这个部署方案可以让您快速上手MonkeyOCR,无论是用于研究还是生产环境都能提供良好的文档解析能力。

安装conda

# 安装Miniconda(如果尚未安装)wget  -O ~/miniconda.shbash ~/miniconda.sh -b -p $HOME/minicondaeval \"$($HOME/miniconda/bin/conda shell.bash hook)\"echo \'export PATH=\"$HOME/miniconda/bin:$PATH\"\' >> ~/.bashrcsource ~/.bashrcconda create -n ai python=3.11 -y && conda activate ai

步骤1:下载CUDA 12.4安装包

# 下载CUDA 12.4.1 runfilewget 

步骤2:运行安装程序

# 运行安装程序sudo sh cuda_12.4.1_550.54.15_linux.run