当前位置: 首页 > article >正文

零基础入门:MinerU 和 PyTorch、CUDA的关系

💡一句话总结:MinerU 是一个用 PyTorch 跑模型的程序,PyTorch 支持多种加速方式(如 CUDA、MPS),让它跑得快就需要依赖这些加速工具。

PyTorch官网安装教程(可根据系统情况选择不同版本:https://pytorch.org/get-started/locally/)

一张图看清楚它们的关系:

图片

01  先解释一些名词在 MinerU 中的作用:

🔧 PyTorch:是跑深度学习模型的库,有 CPU 和 GPU 版本,简称 torch。MinerU 用它跑公式、OCR、表格等模型,✅ 必须安装。

⚙ torchvision:是 PyTorch 的辅助库,用于图像处理、模型加载等。MinerU 在图像类模型或视觉任务中会用到,✅ 建议安装。

💻 NVIDIA 显卡驱动(Driver):是控制和管理 NVIDIA 显卡硬件的软件层,它是 CUDA 与 GPU 正常通信的基础。如果使用 NVIDIA GPU,✅ 必须安装。

💾 CUDA-Toolkit:是 NVIDIA 提供的一整套 GPU 编程工具,包含 CUDA、cuDNN、编译器等,能提供开发和运行 GPU 应用的完整支持,避免手动配置底层。若用 pip 安装 PyTorch,❌ 可不单独安装。

💿 CUDA:是 NVIDIA 显卡的加速平台,依赖显卡驱动,必须配合 NVIDIA 显卡使用。它能让 PyTorch 用 NVIDIA GPU 跑得更快,使用 NVIDIA GPU 时必须安装,❌ CPU 用户则不需要。

📦 Anaconda:是 Python 科学计算平台,集成大量依赖库,便于管理环境。用它安装 PyTorch 等依赖更方便,也可避免系统冲突,❌ 推荐新手或团队开发使用。

🔖 MPS:是 Apple macOS M 系列芯片的 Metal 加速接口,Mac 上用来调用 Apple 芯片 GPU,❌ 只在 macOS 上使用。

🚀小科普:CUDA 主要适用于安装了 NVIDIA 显卡的 Linux 和 Windows 系统;MacOS 用 MPS 加速。

02  只想 MinerU 运行(不求快):

MinerU 运行依赖 PyTorchtorchvision,你可以只装 PyTorch torchvision 的CPU 版本

pip install torch torchvision  # 用 CPU 跑,速度慢,但简单

然后再安装 MinerU,详见:https://github.com/opendatalab/MinerU/blob/master

接下来就可以使用 MinerU 解析 pdf 文件了。

03  想要 MinerU 加速运行:

要根据你所使用的平台和硬件选择合适的方式:

1. Windows(装有 NVIDIA 显卡)的加速方式:

注意!需要您的显卡是2017年后生产的带有 Tensor Core 的显存 6 GB以上,可进行以下流程,并测试CUDA 推理加速效果:

● 安装 NVIDIA 显卡驱动:它们通常包括了支持 CUDA 的相关软件包

● 安装 CUDA Toolkit:(需要安装符合 Pytorch 要求的 CUDA 版本,MinerU 目前支持Pytorch的版本为 11.8/12.4/12.6/12.8)

- CUDA 11.8 下载地址:https://developer.nvidia.com/cuda-11-8-0-download-archive

- CUDA 12.4 下载地址:https://developer.nvidia.com/cuda-12-4-0-download-archive

- CUDA 12.6 下载地址:https://developer.nvidia.com/cuda-12-6-0-download-archive

- CUDA 12.8 下载地址:https://developer.nvidia.com/cuda-12-8-0-download-archive

● 安装 Python 与 Anaconda (如果已安装,可以跳过本步骤)

● 安装 MinerU,详见:https://github.com/opendatalab/MinerU/blob/master

● 覆盖安装支持 CUDA 的 PyTorch 和 torchvision (请根据CUDA版本选择合适的index-url,具体可参考torch官网)

pip install --force-reinstall torch torchvision --index-url https://download.pytorch.org/whl/cu124

● 修改配置文件:将【用户目录】中配置文件 magic-pdf.json 中 device-mode 的值改为 "cuda"

{    // other config    "device-mode": "cuda"}

2. Ubuntu 22.04 LTS加速方式:

● 检测是否已安装 NVIDIA 显卡驱动

nvidia-smi

如果看到类似如下的信息,说明已经安装了nvidia驱动,可以跳过下一条安装步骤(⚠️CUDA Version 显示的版本号应 >= 12.4,如显示的版本号小于12.4,请升级驱动)

+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 570.133.07             Driver Version: 572.83         CUDA Version: 12.8   |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                     TCC/WDDM  | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3060 Ti   WDDM  | 00000000:01:00.0  On |                  N/A |
|  0%   51C    P8              12W / 200W |   1489MiB /  8192MiB |      5%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

● 安装 NVIDIA 显卡驱动

如没有驱动,则通过如下命令安装专有驱动​​​​​​​

sudo apt-get updatesudo apt-get install nvidia-driver-570-server

安装完成后,重启电脑

reboot

● 安装  Anaconda(如果已安装Anaconda  ,可以跳过本步骤)

wget -U NoSuchBrowser/1.0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
bash Anaconda3-2024.06-1-Linux-x86_64.sh

    最后一步输入   yes  ,关闭终端重新打开。

    ● 安装 MinerU

    ● 修改配置文件:修改【用户目录】中配置文件 magic-pdf.json 中 device-mode 的值​​​​​​​

    {    // other config    "device-mode": "cuda"}

    3. MacOS(M 系列芯片)的加速方式:

    ● 安装 Anaconda

    ● 安装 MinerU,详见:https://github.com/opendatalab/MinerU/blob/master

    ● 修改配置文件:MacOS 支持 MPS 加速(苹果自家的加速后端),只需要安装 MinerU 后,在 magic-pdf.json 配置文件中将 device-mode 参数设置为 "mps" 来启用 MPS 加速​​​​​​​

    {    // other config    "device-mode": "mps"}

    04  🧩总结

    ● PyTorch 是 MinerU 运行必须安装的核心库

    ● CUDA、MPS 是 MinerU 的加速方式,因平台和硬件不同而异

    ● MinerU​​​​​​​ 间接利用这些加速方式来提速模型运行

    相关文章:

    零基础入门:MinerU 和 PyTorch、CUDA的关系

    💡一句话总结:MinerU 是一个用 PyTorch 跑模型的程序,PyTorch 支持多种加速方式(如 CUDA、MPS),让它跑得快就需要依赖这些加速工具。 PyTorch官网安装教程(可根据系统情况选择不同版本&#xf…...

    借助IEDA ,Git版本管理工具快速入门

    01 引言 一直使用SVN作为版本管理工具,直到公司新来的一批同事,看到我们使用的SVN都纷纷吐槽,什么年代了,还使用SVN。聊下来,才知道人家公司早早就将SVN切成了Git工具,并吐槽SVN的各种弊端。 既然新的技术…...

    三维空间,毫秒即达:RTMP|RTSP播放器在Unity中的落地实现

    有人问我:在 Unity 里做超低延迟的直播播放,是什么感觉? 我说,是把一帧帧流动的时间,嵌进一个三维的空间里。 它不属于现在,也不属于过去。 它属于“实时”——属于那一秒内刚刚发生,却已被你看…...

    【计算机网络】HTTP/1.0,HTTP/1.1,HTTP/2,HTTP/3汇总讲解,清晰表格整理面试重点对比

    表格汇总 对比维度HTTP/1.0HTTP/1.1HTTP/2HTTP/3传输协议TCPTCPTCP/TLS(默认加密)UDP(基于 QUIC 协议)连接方式短连接(每次请求/响应后断开)引入持久连接(Persistent Connection)&a…...

    ubuntu 搭建FTP服务,接收部标机历史音视频上报服务器

    1.安装vsftpd 1.1.安装命令 sudo apt update sudo apt install vsftpd 1.2.备份原始配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak 1.3.配置 vsftpd 编辑配置文件 /etc/vsftpd.conf: sudo vim /etc/vsftpd.conf 将以下参数修改为对应值&#xff…...

    一、内存调优

    一、内存调优 什么是内存泄漏 监控Java内存的常用工具 内存泄露的常见场景 内存泄露的解决方案 内存泄露与内存溢出的区别 内存泄露:在Java中如果不再使用一个对象,但是该对象依然在GC ROOT的引用链上,这个对象就不会被垃圾回收器回收&…...

    IDEA启动报错:Cannot invoke “org.flowable.common.engine.impl.persistence.ent

    1.问题 项目启动报错信息 java.lang.NullPointerException: Cannot invoke "org.flowable.common.engine.impl.persistence.ent 2.问题解析 出现这个问题是在项目中集成了Flowable或Activiti工作流,开启自动创建工作流创建的表,因为不同环境的数据…...

    从加密到信任|密码重塑车路云一体化安全生态

    目录 一、密码技术的核心支撑 二、典型应用案例 三、未来发展方向 总结 车路云系统涉及海量实时数据交互,包括车辆位置、传感器信息、用户身份等敏感数据。其安全风险呈现三大特征: 开放环境威胁:V2X(车与万物互联&#xff0…...

    Java的Filter与Spring的Interceptor的比较

    一、技术规范与框架依赖 维度FilterInterceptor所属规范Servlet 规范(Java EE 标准组件)Spring MVC 框架组件(非 Java EE 标准)框架依赖不依赖 Spring,仅需 Servlet 容器(如 Tomcat)依赖 Sprin…...

    多线程编程的典型使用场景

    前言 在Java开发中,合理使用并发/多线程技术可以显著提升系统性能和资源利用率。本文将通过典型场景代码示例的形式,帮助开发者理解多线程的实际应用价值。 核心使用场景 2.1 高并发请求处理 场景描述: 电商秒杀、票务系统等需要同时处理大…...

    grafana dashboard 单位 IEC SI a i

    grafana dashboard 画图的时候在 Standard options —> Unit —> Data —> 会有各种选项其中列举以 xxxaxxx 、xxxixxx开头和(IEC) (SI) 注释的,本文进行解释 其中带 a 的基于十进制的单位,使用1000作为基数。1 MB 1000 KB 1000 *…...

    WPF···

    设置启动页 默认最后一个窗口关闭,程序退出,可以设置 修改窗体的icon图标 修改项目exe图标 双击项目名会看到代码 其他 在A窗体点击按钮打开B窗体,在B窗体设置WindowStartupLocation=“CenterOwner” 在A窗体的代码设置 B.Owner = this; B.Show(); B窗体生成在A窗体中间…...

    Git的工作流程

    1) 初始化仓库&#xff1a;使用 git init 命令在目录中创建新Git仓库 2) 添加文件到暂存区&#xff1a; - git add <文件名> 添加指定文件 - git add . 添加所有修改文件 3) 提交改动&#xff1a;git commit -m "提交信息"&#xff08;注意commit正确拼写…...

    微服务架构中的多进程通信--内存池、共享内存、socket

    目录 1 引言 2 整体架构简介 3 疑问 3.1 我们的共享内存消息机制是用的posix还是system V 3.2 rmmt中&#xff0c;不同线程之间的比如访问同一个内存&#xff0c;用的什么锁控制的 3.3 疑问&#xff1a;假如一个进程发送给了另外两个进程&#xff0c;然后另外两个进程都同…...

    电脑中所有word文件图标变白怎么恢复

    电脑中的word文件图标变白&#xff0c;如下图所示&#xff1a; 解决方法&#xff1a; 1.winR-->在弹出的运行窗口中输入“regedit”(如下图所示)&#xff0c;点击确定&#xff1a; 2.按照路径“计算机\HKEY_CLASSES_ROOT\Word.Document.12\DefaultIcon”去找到“&#xff0…...

    RK3568 OH5.1 源码编译及问题

    安装编译器和二进制工具 在源码根目录下执行prebuilts脚本&#xff0c;安装编译器及二进制工具。 bash build/prebuilts_download.sh在源码根目录执行如下指令安装hb编译工具&#xff1a; python3 -m pip install --user build/hb使用build.sh脚本编译源码 进入源码根目录&…...

    Qt5、C++11 获取wifi列表与wifi连接

    一、获取wifi列表 .h 文件内容 #include <QWidget> #include <QVBoxLayout> #include <QPushButton> #include <QCheckBox> #include <QListWidget>class Setting : public QWidget {Q_OBJECT public:explicit Setting(QWidget *parent nul…...

    【KWDB 2025 创作者计划】_从部署开始了解KWDB

    一、概述 KaiwuDB 是一款面向 AIoT 场景的分布式、多模融合、支持原生 AI 的数据库产品&#xff0c;支持同一实例同时建立时序库和关系库并融合处理多模数据&#xff0c;具备时序数据高效处理能力&#xff0c;具有稳定安全、高可用、易运维等特点。面向工业物联网、数字能源、…...

    高等数学-微分

    一、一元函数&#xff1a; 在实际应用中&#xff0c;经常需要近似计算函数yf(x)的增量Δyf(x)-f(x0)f(x0Δx)-f(x0),其中一种近似称为函数的微分。 定义&#xff1a;若函数yf(x)在点x0处的增量Δy可表达为自变量增量Δx的线性函数AΔx和Δx的高阶无穷小量之和&#xff0c;即Δ…...

    有没有开源的企业网盘,是否适合企业使用?

    开源选项丰富、灵活定制能力强、需要额外运维投入、适合特定场景但不一定适合所有企业&#xff0c;是开源企业网盘的主要特征。从表面看&#xff0c;开源网盘往往具有免费或低成本优势&#xff0c;但企业要投入一定的人力与技术资源来完成安装、维护与升级&#xff0c;从而保障…...

    基于系统整合的WordPress个性化配置方法深度解析:从需求分析到实现过程

    文章目录 引言一、理解WordPress页面与文章的区别二、主题与模板层级&#xff1a;自定义的基础三、自定义页面模板&#xff1a;打造专属页面风格四、自定义文章模板&#xff1a;打造个性化文章呈现五、使用自定义字段和元数据&#xff1a;增强内容灵活性六、利用WordPress钩子&…...

    离线服务器Python环境配置指南

    离线服务器Python环境配置指南&#xff1a;避坑与实战 0. 场景分析&#xff1a;当服务器与世隔绝时 典型困境&#xff1a; 无法访问国际网络&#xff08;如PyPI、Conda官方源&#xff09;服务器处于内网隔离环境安全策略限制在线安装 解决方案矩阵&#xff1a; 方法适用场…...

    (第94天)OGG 微服务搭建 Oracle 19C CDB 架构同步

    前言 Oracle GoldenGate Microservice Architecture (OGGMA) 是在 OGG 12.3 版本推出的全新架构。相比传统架构,OGGMA 基于 Rest API,通过 WEB 界面即可完成 OGG 的配置和监控,大大简化了部署和管理流程。 本文将详细介绍如何在 Oracle 19C CDB 环境中部署 OGG 19.1.0.4 微…...

    参与开发的注意事项

    1.开发期间&#xff0c;不要擅自修改架构的内容 使用技术官发的项目文件夹来开发&#xff0c;而不是自己建立项目&#xff0c; 否则会导致环境不统一 架构内容&#xff1a;&#xff08;不能更改&#xff09; 1.类型定义&#xff0c;全局变量声明 2.函数申明&#xff08;函数名称…...

    使用pm2 部署react+nextjs项目到服务器

    记录一下 next.config.js中&#xff1a; output: standalone,package.json配置&#xff1a; "scripts": {"dev": "cross-env NODE_OPTIONS--inspect next dev","build": "next build","start": "cp -r .nex…...

    从0到1打造AI Copilot:用SpringBoot + ChatGPT API实现智能开发助手

    本文将从0到1系统性地讲解如何基于SpringBoot与OpenAI ChatGPT API打造一款智能开发助手&#xff08;AI Copilot&#xff09;。文章首先介绍AI Copilot的背景与价值&#xff0c;接着深入架构设计与环境准备&#xff0c;然后通过详尽的代码示例演示SpringBoot项目的搭建、依赖配…...

    LeetCode Hot100 (双指针)

    283. 移动零 标记指针&#xff0c;当前位置为0向后面移动即可 class Solution {public void moveZeroes(int[] nums) {int l 0;for(int i0;i<nums.length;i){if(nums[i]0){if(l<i){li1;}while(l<nums.length&&nums[l]0) l;if(l<nums.length){nums[i]nums…...

    JVM常量池(class文件常量池,运行时常量池,字符串常量池)

    文章目录 问题JVM运行时数据区JVM中的常量池Class文件常量池运行时常量池字符串常量池创建了几个对象String的定义intern()问题 超过1W字深度剖析JVM常量池&#xff08;全网最详细最有深度&#xff09; - 跟着Mic学架构 - 博客园 问题 jdk1.8之后 元空间是独立存在的&#xf…...

    开源免费无广告专注PDF编辑、修复和管理工具 办公学术 救星工具

    各位PDF处理小能手们&#xff01;我跟你们说啊&#xff0c;今天要给大家介绍一款超牛的国产开源PDF处理工具&#xff0c;叫PDFPatcher&#xff0c;也叫PDF补丁丁。它就像一个PDF文档的超级修理工&#xff0c;专门解决PDF编辑、修复和管理的各种难题。 这软件的核心功能和特点&a…...

    鸿蒙Flutter实战:24-混合开发详解-4-初始化Flutter

    概述 将 Flutter 模块添加至宿主鸿蒙项目中后&#xff0c;接下需要实现页面跳转、消息通信等功能&#xff0c;本文重点介绍如何初始化 Flutter。 项目配置 添加依赖 编辑 ohos_app/oh-package.json 文件 如果通过 Har 包方式引入 Flutter 模块&#xff0c;则需要添加如下内…...