Docker+wsl部署MinerU 2.5.3(Windows)|获得接近demo的vlm模式PDF识别效果
MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。主要功能如下:删除页眉、页脚、脚注、页码等元素,确保语义连贯输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版保留原文档的结构,包括标题、段落、列表等提取图像、图片描述、表格、表格标题及脚注自动识别并转换文档中的公式为LaTeX格式自动识别并转换文档中的表格为HTML格式自动检测扫描
目录
引言
叠甲:本人也是初学者,有问题请在评论区友善讨论
最近在做一个LLM知识库相关的研究,需要将国家/地方标准文件转换为markdown格式输入LLM中进行知识抽取等处理,尝试了docling、marker、layout parser+detectron2、docparse等项目,最终通过尝试还是MinerU(可以理解为PDF-Extract-Kit的升级版)的效果相对来说较好,而且在9.20发布了最新的2.5版本,demo使用的效果非常好,但是直接更新本地部署版本后效果可以说是基本不变甚至有所退后
所以研究了一下如何获取近似效果的方式,在github issue上查找相关的问题,ai回复说可以采用pipeline模式通过强行开启ocr进行优化,但是结果还是不让人满意
最终通过wsl+docker的方式部署,获取了与demo基本近似的结果(Demo将文件中的图片正确识别出来了,而wsl+docker的方式将图片识别成了代码块,也算圆满完成任务了),写下该文档记录一下部署的过程。
MinerU简介(官方文档)
MinerU是一款将PDF转化为机器可读格式的工具(如markdown、json),可以很方便地抽取为任意格式。
主要功能如下:
- 删除页眉、页脚、脚注、页码等元素,确保语义连贯
- 输出符合人类阅读顺序的文本,适用于单栏、多栏及复杂排版
- 保留原文档的结构,包括标题、段落、列表等
- 提取图像、图片描述、表格、表格标题及脚注
- 自动识别并转换文档中的公式为LaTeX格式
- 自动识别并转换文档中的表格为HTML格式
- 自动检测扫描版PDF和乱码PDF,并启用OCR功能
- OCR支持84种语言的检测与识别
- 支持多种输出格式,如多模态与NLP的Markdown、按阅读顺序排序的JSON、含有丰富信息的中间格式等
- 支持多种可视化结果,包括layout可视化、span可视化等,便于高效确认输出效果与质检
- 支持纯CPU环境运行,并支持 GPU(CUDA)/NPU(CANN)/MPS 加速
- 兼容Windows、Linux和Mac平台
前置条件
-GPU对CUDA的支持必须>=12.8,因为这次的更新vlm的加速框架从加速推理框架从sglang切换至vllm,该框架的依赖要求cuda>=12.8
-默认安装了pip、conda、git等基本组件(可能是这样称呼?),如未安装自行上网搜索教程安装
安装步骤
一、Pytorch
检查cuda最大支持版本
Win+R输入cmd进入命令行

输入
nvidia-smi
查看GPU支持的CUDA最高版本,这里可以看到我的电脑支持的是12.8正好足够

Pytorch下载
打开https://pytorch.org/进入pytorch官网 下滑可以看到默认推荐的pytorch版本组合,由于vllm原因以及确认了我的显卡支持12.8我们直接点击12.8版本复制Run this command旁的代码进行安装

安装完成后控制台输入以下指令查看是否成功安装
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
exit() # 退出Python
正常应该如下输出

二、Docker安装
打开网址Windows | Docker Docs进入Docker官网下载页面选择x86_64版本进行下载
安装一路下一步就行,打开docker时不用登陆直接进,可能会提示让你更新或下载wsl的情况,按照提示在命令行输入以下命令(注:可能会遇到“wsl update failed”错误,可以参照Windows 安装 Docker Desktop 提示 “WSL update failed” 的解决方法 - BoneMan - 博客园尝试解决)
wsl --update
到了这一步基本完成了docker的部署。
三、MinerU
部署
直接通过git命令进行部署,或者直接下载源码解压至你想要的路径,git命令如下
git clone https://github.com/opendatalab/MinerU.git
命令行进入Dockerfile文件所在路径,并执行构建镜像命令
cd /d <你的具体路径> #一般为...\MinerU\docker\china
docker build -t mineru-vllm:latest -f Dockerfile . # 构建镜像
如果一切正常的话,跑完一般是一个多行的全蓝代码(忘记截图了)。构建速度一般看自己网速,一般是半个小时左右下载构建完毕,但我的两台设备都会提示错误,截取一个关键信息如下,这个信息大概率是网络原因所引起的,无法从dockerfile中获取镜像
=>ERROR[internal] load meta data for docker.io/vllm/vllm-openai:v0.10.1.1 21.5s
所以通过预先下载这个包到本地来规避这个错误,这里我们使用华为云的一个镜像
# 本地部署这个包
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/vllm/vllm-openai:v0.10.1.1
# 为这个包上一个tag方便docker找到他(非必须)
docker tag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/vllm/vllm-openai:v0.10.1.1 docker.io/vllm/vllm-openai:v0.10.1.1
下载完成后再次运行镜像构建命令,一般可成功部署
基本调用方法
详情参照官方文档的命令Docker部署 - MinerU,我懒得复制了
其中,通常情况下 <server_ip> = 127.0.0.1

更多推荐

所有评论(0)