【开源代码】MinerU-PDF解析工具部署-CPU/GPU加速推理-可转Markdown格式

准备环境

# python 3.10
/data/PDF_Chat/bin/python3 -m venv myenv
source myenv/bin/activate
python3 -m pip install huggingface_hub
python3 -m pip install modelscope
python3 -m pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com

下载需要的模型

import json
import os

import requests
from huggingface_hub import snapshot_download
# from modelscope import snapshot_download  # 下载'opendatalab/PDF-Extract-Kit-1.0' 快


def download_json(url):
    # 下载JSON文件
    response = requests.get(url)
    response.raise_for_status()  # 检查请求是否成功
    return response.json()


def download_and_modify_json(url, local_filename, modifications):
    if os.path.exists(local_filename):
        data = json.load(open(local_filename))
        config_version = data.get('config_version', '0.0.0')
        if config_version < '1.0.0':
            data = download_json(url)
    else:
        data = download_json(url)

    # 修改内容
    for key, value in modifications.items():
        data[key] = value

    # 保存修改后的内容
    with open(local_filename, 'w', encoding='utf-8') as f:
        json.dump(data, f, ensure_ascii=False, indent=4)


if __name__ == '__main__':

    mineru_patterns = [
        "models/Layout/LayoutLMv3/*",
        "models/Layout/YOLO/*",
        "models/MFD/YOLO/*",
        "models/MFR/unimernet_small/*",
        "models/TabRec/TableMaster/*",
        "models/TabRec/StructEqTable/*",
    ]
    model_dir = snapshot_download('opendatalab/PDF-Extract-Kit-1.0', allow_patterns=mineru_patterns)

    layoutreader_pattern = [
        "*.json",
        "*.safetensors",
    ]
    layoutreader_model_dir = snapshot_download('hantian/layoutreader', allow_patterns=layoutreader_pattern)

    model_dir = model_dir + '/models'
    print(f'model_dir is: {model_dir}')
    print(f'layoutreader_model_dir is: {layoutreader_model_dir}')

    json_url = 'https://github.com/opendatalab/MinerU/raw/master/magic-pdf.template.json'
    config_file_name = 'magic-pdf.json'
    home_dir = os.path.expanduser('~')
    config_file = os.path.join(home_dir, config_file_name)

    json_mods = {
        'models-dir': model_dir,
        'layoutreader-model-dir': layoutreader_model_dir,
    }

    download_and_modify_json(json_url, config_file, json_mods)
    print(f'The configuration file has been configured successfully, the path is: {config_file}')

测试

wget https://github.com/opendatalab/MinerU/raw/master/demo/small_ocr.pdf -O small_ocr.pdf
magic-pdf -p small_ocr.pdf -o ./output

在这里插入图片描述

GPU加速

vim yourpath/magic-pdf.json
"device-mode": "cpu" -> "device-mode": "cuda",

环境报错

libGL.so.1

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

centos 系统下解决办法

yum install mesa-libGL mesa-libGLU

scaled_dot_product_attention

ValueError: CustomMBartDecoder does not support an attention implementation through torch.nn.functional.scaled_dot_product_attention yet. Please request the support for this architecture: https://github.com/huggingface/transformers/issues/28005.  If you believe this error is a bug, please open an issue in Transformers GitHub repository and load your model with the argument `attn_implementation="eager"` meanwhile. Example: `model = AutoModel.from_pretrained("openai/whisper-tiny", attn_implementation="eager")`

修改transformers的版本为4.45

python3 -m pip install transformers==4.45
### 部署MinerU的系统要求 为了成功部署MinerU,确保本地环境满足特定的要求至关重要。由于FastGpt的部署重度依赖于Docker环境,因此,在本地系统或所管理的服务器上安装Docker环境是确保FastGpt以及类似应用如MinerU顺畅运行的必要条件[^1]。 对于MinerU而言,除了Docker之外,还需要确认操作系统兼容性、硬件资源(如内存大小、处理器性能)、网络连接稳定性等因素均达到官方推荐标准。通常这类应用程序会提供详细的最低配置需求文档供使用者查阅。 ### 安装与配置过程 #### 准备工作 - **安装Docker**: 如果尚未安装Docker,请访问官方网站获取对应操作系统的最新版本并完成安装。 - **下载MinerU源码库**: 使用Git或其他方式克隆MinerU项目的GitHub仓库到本地计算机。 #### 切换目录至项目路径 进入命令行界面并将当前工作目录更改为已下载的MinerU根目录: ```bash cd path/to/your/mineru-project-directory ``` #### 安装依赖项 根据目标设备类型选择合适的命令来安装所需的Python包和其他依赖项。如果计划利用GPU加速,则执行如下指令;反之则采用针对CPU优化过的安装脚本: 对于GPU设备: ```bash pip install -r requirements-gpu.txt ``` 对于CPU设备: ```bash pip install -r requirements-cpu.txt ``` 此部分借鉴了其他源项目中的实践方法[^2],虽然具体文件名可能有所不同,但概念相同——即依据计算平台特性定制化构建环境。 #### 获取预训练模型 许多AI驱动的应用程序都需要预先训练好的权重文件才能正常运作。对于MinerU来说也不例外,需按照官方指引下载必要的模型参数,并将其放置在指定位置以便加载使用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穆友航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值