乐于分享
好东西不私藏

【开源】PDF是大模型读不懂的"图片",这款7万 star国产开源工具把它变回Markdown——为LLM而生的智能文档解析引擎

【开源】PDF是大模型读不懂的"图片",这款7万 star国产开源工具把它变回Markdown——为LLM而生的智能文档解析引擎
做大模型应用的人迟早会遇到一个坎:RAG检索不准、幻觉多,追根溯源往往是PDF解析质量太差
PDF 设计初衷是"让人看",不是让机器读——文字、表格、公式被锁死在坐标里。传统工具提取得来的只是碎片文本,公式变乱码、表格丢结构、双栏顺序错乱。
MinerU(出自上海人工智能实验室 OpenDataLab,GitHub 72K+ ⭐)正是为解决这一问题而生:它把 PDF、Word、PPT、Excel、图片甚至网页 URL,智能解析为高保真 Markdown / JSON / LaTeX,让 AI 真正"读懂"文档。

项目由来:从 InternLM 预训练的数据痛点中长出

MinerU 最初是OpenDataLab 团队在训练 InternLM(书生·浦语)大模型时内部使用的预处理工具
团队发现:科学文献中的公式、多栏排版、跨页表格,现有开源工具(PyMuPDF、pdfplumber、纯 OCR)均无法高质量还原,导致预训练语料被污染。于是他们自研了一套"版面理解 + 公式识别 + 表格还原 + OCR"的流水线,后来以magic-pdf(PDF解析)+ magic-doc(网页解析)为核心开源出来,定名为MinerU

简单说:MinerU 是为 LLM 训练/RAG/Agent 量身定制的非结构化文档→结构化数据转换器。


核心原理:版面分析 × 多模型流水线 × VLM

MinerU 的核心不是简单"提取文字",而是先理解文档结构,再按语义重组内容
🔹 处理管线(Pipeline 后端)
PDF 分类:自动判断是文字型 PDF(直接提取坐标)还是扫描型 PDF(渲染图片→OCR)
版面检测:用 PP-DocLayout-YOLO / DocLayout-YOLO 识别标题、段落、图片、表格、公式、页眉页脚等区域
内容识别
阅读顺序重建:按人类阅读习惯(含双栏/混合布局)重排,过滤页眉页脚页码
结构化输出:生成 Markdown(含图片引用)、JSON、中间格式及可视化版面图
🔹 三种解析后端

后端

特点

适用场景

Pipeline

快、CPU可跑、无幻觉

批量处理、资源受限环境

VLM Engine

视觉语言模型,精度最高

复杂排版学术论文、财报

Hybrid

Pipeline+VLM 协同

兼顾速度与质量

🔹 Office 原生解析
对 DOCX/PPTX/XLSX不走"转PDF再解析",而是直接读 XML 结构,完整保留标题层级、列表、合并单元格、公式对象,速度快且保真度高。

AI 时代的应用场景

场景

价值

RAG 知识库构建

输出带标题层级的 Markdown + HTML表格 + LaTeX公式,切片更合理,召回率↑,幻觉↓

LLM 预训练/微调语料清洗

批量将论文、研报、标准转为干净结构化文本

AI Agent / MCP 工作流

原生支持 MCP 协议、LangChain/LlamaIndex/Dify/FastGPT 集成,Agent 可"阅读"文档

学术文献数字化

双栏论文→Markdown+LaTeX公式,便于摘要/问答/知识图谱构建

企业文档智能化

合同、财报、制度文件解析入库,支撑智能客服与合规审查


主要优点

多格式原生支持:PDF(文字/扫描)、DOCX、PPTX、XLSX、图片、网页 URL
多模态元素还原:公式→LaTeX、表格→HTML、图片独立提取、阅读顺序正确
自动 OCR:扫描件/乱码 PDF 自动触发,支持 109 种语言
开源 & 商用友好:Apache 2.0 协议,可本地私有化部署,数据不出域
生态完善:Python SDK、CLI、Docker、REST API、MCP Server、WebUI、桌面端
国产芯片适配:支持昇腾、寒武纪、燧原等 NPU

⚠️ 注意:首次需下载模型(数百 MB~几 GB);高精度 VLM 模式建议 ≥8GB 显存;极复杂艺术排版仍有提升空间。


与同类工具横向对比

数据参考 OmniDocBench (CVPR 2025) 评测
一句话选型建议:
简单原生 PDF 纯文字提取 → PyMuPDF 够快
学术论文 / 含公式表格 / 多栏排版 / RAG 语料 →MinerU 是目前开源首选
不愿自建、可接受付费上云 → LlamaParse / Doc2X
格式最杂(邮件/HTML等)且精度要求不高 → Unstructured

快速上手

# 安装pip install mineru[full]# 命令行解析mineru -p your_file.pdf -o ./output# Python APIfrom mineru import MagicPdfMagicPdf.parse("your_file.pdf", output_dir="./output")

结语:在大模型时代,"喂给模型的数据质量决定天花板"。MinerU 把最难啃的 PDF 等非结构化文档,变成 AI 真正能消化的结构化食粮——这正是它获得七万余 Star 的根本原因。

开源地址

关注公众号 回复 20260708 获得
8元解锁820+优质项目!别再瞎找资料了!AI、低代码、Agent实战教程一网打尽,永久更新!