MinerU:把任意复杂文档转成 LLM 友好的结构化数据
最近半年 AI Agent 火起来之后,「喂文档给模型」这件事变得比以往任何时候都重要。问题是现实世界的文档很少是干净的 Markdown——它们是扫描的 PDF、双栏排版的论文、带表格的财报、混排图文的技术白皮书,甚至是从未规范化的 Office 文档。
传统 OCR 工具只能把图片变成文字,对版面结构、表格、公式、阅读顺序几乎无能为力。而 MinerU(opendatalab/MinerU)做的事,恰好是把这种「脏文档」一键变成高质量的 Markdown / JSON,让下游的 RAG、Agent、模型微调直接能消费。
今天 trending 榜上 MinerU 一天涨了 700+ star,到今天为止累计 7.1 万 star——这已经是文档解析领域的明星项目了。本文快速过一遍它能干什么、为什么值得装、以及怎么用 Docker 一键跑起来。
背景:文档解析为什么这么难
做过 RAG 的人都吃过这个亏:
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
这些问题的根因不是 OCR 不准,而是「文档结构恢复」这件事本身极难。人类阅读一份 PDF 时,眼睛会自动识别标题层级、表格边界、图注对应关系、阅读顺序;但机器没有这种「版面理解」能力。
MinerU 走的是深度学习路线:版面分析 + 表格识别 + 公式识别 + 阅读顺序推理,一套端到端 pipeline 输出结构化的 Markdown / JSON。它是书生·浦语(InternLM)系列衍生出的开源工具,背后有上海 AI Lab 的研究背景,对中英文混排、复杂表格、数学公式的支持尤其好。

它能做什么
官方 README 列了 MinerU 的核心能力:
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
输出结果示例大致是这样的:
# 论文标题
摘要
本文提出了一种新方法……
1. 引言
近年来……
2. 方法
2.1 模型架构
组件 参数量 FLOPs Encoder 100M 10G Decoder 200M 20G
而不只是 本文提出了一种新方法近年来... 这种糊成一坨的纯文本。
为什么值得装

跟同类工具横向比一下:
| 工具 | 版面分析 | 表格识别 | 公式识别 | 阅读顺序 | 中文友好 | 开源 |
|---|---|---|---|---|---|---|
| PyPDFLoader | ❌ | ❌ | ❌ | ❌ | 一般 | ✅ |
| Tesseract | ❌ | ❌ | ❌ | ❌ | 一般 | ✅ |
| Marker | ✅ | ✅ | 弱 | 一般 | 一般 | ✅ |
| Unstructured | ✅ | 一般 | 弱 | 一般 | 一般 | ✅ |
| MinerU | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
几个具体场景里 MinerU 表现尤其突出:
1. 学术论文 RAG:直接解析 arXiv PDF,公式自动转 LaTeX,向量化检索时不会把 E=mc² 变成 E=mc。
2. 财务报告 / 合同:复杂多列表格还原准确率很高,比人工复制粘贴靠谱得多。
3. 扫描版电子书:老旧的扫描版 PDF 经过 OCR + 版面分析后,能直接喂给 LLM 做问答。
4. 多语言文档:中英混排、日文财报、俄文合同都能处理。
对自托管玩家最关键的点是:单文件 Docker 镜像,CPU 也能跑(慢一点),有 GPU 跑得飞快。不需要装一堆 Python 依赖,也不需要下载 GB 级的模型权重——镜像里都打包好了。
快速上手(Docker 命令)
CPU 模式
docker run -it --rm -p 8000:8000 \
-v $(pwd)/output:/app/output \
opendatalab/mineru:latest \
mineru-api --host 0.0.0.0 --port 8000启动后访问 http://localhost:8000,可以看到 Swagger UI。上传 PDF,返回 Markdown。
GPU 模式(推荐)
docker run -it --rm --gpus all -p 8000:8000 \
-v $(pwd)/output:/app/output \
opendatalab/mineru:latest \
mineru-api --host 0.0.0.0 --port 8000需要 NVIDIA Container Toolkit。显存建议 ≥ 8GB,跑 vlm 后端建议 ≥ 16GB。
命令行单文件处理
不想跑服务也行,直接命令行处理单个文件:
docker run --rm -v $(pwd)/data:/app/data -v $(pwd)/output:/app/output \
opendatalab/mineru:latest \
mineru -p /app/data/paper.pdf -o /app/output -l en-l 是语言代码(en / zh / auto 等),-b 是后端(pipeline / vlm),-m 是公式识别开关。
Python SDK
from mineru import MinerUclient = MinerU()
result = client.parse("paper.pdf", backend="pipeline", lang="auto")
print(result.to_markdown())
输出直接是字符串,可以无缝接 LangChain / LlamaIndex 的 Document loader。
性能参考
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
适合谁
强烈推荐:
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
可以观望:
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
不太适合:
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
一些使用建议
1. 语言参数要选对。中英混排用 auto,纯中文用 ch,纯英文用 en,混排错了中文部分识别率会下降。
2. 大文件先压缩。几百页的 PDF 不如拆成几份再处理,pipeline 模式对显存友好但对长文档不太友好。
3. 公式密集型文档用 vlm 后端。pipeline 的公式识别是传统 OCR,公式复杂的数学论文建议直接 vlm,效果提升明显。
4. 输出 JSON 而不是 Markdown 时保留 layout 信息,能在后续做版面级的检索。
5. GPU 显存不够时可以加 --device cpu 强制走 CPU,或者用 vllm 后端量化模型。
链接
用 PyPDFLoader 抽论文,引用、图表、公式全混成一团文字。
用 Tesseract OCR 扫描件,表格变成一堆坐标错位的字符串。
双栏论文按行读取,第二栏的段落被错误拼接到第一栏末尾。
带复杂表头的财务报表,pandas.read_html 读进来全是 NaN。
多格式输入:PDF、PNG、JPG、JPEG、WEBP、GIF 都能直接解析。
结构化输出:Markdown(保留标题层级、列表、代码块)、JSON(带位置和层级元信息)、含 layout 的中间结果。
版面分析(Layout):自动识别标题、段落、表格、图片、公式、页眉页脚、参考文献。
表格识别(Table):把 PDF 里的表格还原成 Markdown 表格 / HTML,跨页表格也能合并。
公式识别(Formula):数学公式转 LaTeX,化学式也能处理。
阅读顺序(Reading Order):双栏、多栏、混排图文按人类阅读顺序输出,不会乱序。
多语言:中、英、日、韩、法、德、俄等几十种语言 OCR。
多种解析后端:pipeline(默认,CPU/GPU 都能跑)、vlm(基于 InternVL 的视觉语言模型版本,效果更好但需要更强 GPU)。
一篇 20 页的英文论文(pipeline 模式,CPU):约 60-90 秒。
同一篇(pipeline 模式,A100):约 5-10 秒。
vlm 模式(InternVL):A100 上约 15-20 秒,效果显著更好。
正在做 RAG / Agent 的开发者,需要把 PDF 知识库结构化喂给 LLM。
研究人员,要批量处理 arXiv 论文、技术报告。
自托管玩家,想搭一套本地文档问答系统替代 NotebookLM。
数据团队,要把扫描件、财报、合同转成可分析的结构化数据。
已经有付费 Document AI(如 Azure Form Recognizer、Google Document AI)且预算充足——商业服务在小语种、定制版面模板上可能更稳。
只需要纯文本抽取、不在乎表格和公式——PyPDFLoader 这种轻量方案够了。
海量文档批量离线处理(MinerU 是实时解析,没有原生批处理优化,自己包一层 scheduler 吧)。
严格的安全/合规场景(要走内部审计的话建议 fork 一份自部署,不直接用公共镜像)。
在线 Demo:mineru.net
论文:arXiv 上的「MinerU: An Open-Source High-Quality Data Extraction Tool」可搜到
Discord / 微信群:README 里有二维码
小结
如果只能保留一个文档解析工具在自托管清单里,MinerU 是目前综合能力最强的一个:开源、中文友好、结构化输出干净、Docker 一键跑、CPU/GPU 都能用。对于做 RAG 和 Agent 的人来说,几乎是必装项。
今天 trending 涨了 700+ star 不是偶然——文档结构化这条赛道随着 LLM 应用爆发正在变得刚需,而开源方案里能打的,确实不多。
默认评论
Halo系统提供的评论