只有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