Tools

本地文档解析 VLM 横评 2026:Granite-Docling vs MinerU 2.5 vs Nougat vs olmOCR

7 min read ·

💡 一句话总结:2026 年的 RAG 第一性原理是”垃圾进,垃圾出”——选对文档解析 VLM,比换 embedding 模型涨点更多。

为什么 RAG 团队又要做选型了

2024 年大家用 PyPDF + Tesseract 凑合。2025 年大家发现 PyPDF 把双栏 PDF 解析得稀碎、Tesseract 不认中文表格。2026 年大家集体涌向 VLM。

但 VLM 也分阵营:通用大模型(GPT-4o、Gemini 2.5 Pro、Claude Sonnet 4)和专用文档 VLM(Granite-Docling、MinerU、olmOCR、Nougat)。

通用大模型贵、慢、有合规问题。专用 VLM 便宜、快、可本地部署。但专用 VLM 又分四个梯队:

  1. 超轻量(<300M):IBM Granite-Docling-258M
  2. 中量级(1-2B):MinerU 2.5-1.2B、PP-DocLayout
  3. 重量级(5-10B):olmOCR-7B、InternVL2-DocOwl
  4. 垂直 SOTA:Nougat(学术)、TrOCR(手写)

选型决策对 RAG 性能影响巨大——同一份 1000 页技术手册,用 PyPDF 喂 GPT-4 召回准确率 32%,用 MinerU 2.5 喂同样的 embedding,召回准确率 78%。46 个百分点的差距,比换 embedding 模型涨点高 5 倍以上。

本文用同一份测试集,给四个主流方案打分。

测试集与维度

测试文档(共 500 页):

评分维度:

  1. 整体结构准确率:标题层级、段落分块、列表识别
  2. 表格还原率:单元格内容 + 表头/合并 cell 关系
  3. 公式还原率:LaTeX 字符级 BLEU
  4. 阅读顺序:双栏、嵌入图表周边段落的顺序正确率
  5. 速度与硬件:单页延迟、显存占用、CPU 可行性

四大方案技术架构

IBM Granite-Docling-258M

2026 年 1 月发布,Apache 2.0,替代 2025 年的 SmolDocling-256M-preview。

架构创新

DocTags 是 Granite 系列的杀手锏。传统 markdown 用 | 表示表格,但表格嵌套、合并 cell 难以表达。DocTags 长这样:

<table>
  <row>
    <cell rowspan="2">商品</cell>
    <cell colspan="3">Q1 销售</cell>
  </row>
  <row>
    <cell>北京</cell><cell>上海</cell><cell>广州</cell>
  </row>
</table>

这种结构化输出在 RAG chunking 时极其有用——chunker 可以保证一个 cell 不被拆开,或一整个表格走特殊的 retrieval 路径。

硬件:CPU 可跑(M2 MacBook 单页 4 秒),单 GPU 极快(A10G 单页 0.4 秒)。

MinerU 2.5(OpenDataLab)

2025 年 9 月发布的升级版,1.2B 参数,CVPR 2025 OmniDocBench 第一。

架构特点

支持文档类型

硬件:A10G(24GB)单页 1.2 秒,A100(80GB)batch=8 单页 0.3 秒。

olmOCR-7B(Allen AI)

基于 Qwen2-VL-7B 微调,2025 年 12 月开源。

架构特点

适用场景

硬件:A100/H100 必备,显存占用 14GB+。

Nougat-base(Meta AI)

2023 年发布但仍是学术文档解析的金标准

架构特点

局限

但如果你的 RAG 主要喂 arXiv 论文,Nougat 仍然是首选。

五维评分表

整体结构准确率:

模型arXiv财报白皮书扫描合同中文政策加权平均
Granite-Docling-258M88.3%91.2%92.5%76.8%86.4%87.0%
MinerU 2.5-1.2B90.1%94.7%93.8%89.2%92.6%92.1%
olmOCR-7B91.8%92.3%91.5%96.4%88.7%92.1%
Nougat-base96.2%74.3%81.2%65.1%79.2%(无中文)

表格还原率:

模型简单表格嵌套表格合并 cell跨页表格
Granite-Docling-258M93%84%89%71%
MinerU 2.5-1.2B97%91%85%86%
olmOCR-7B95%87%81%82%
Nougat-base78%52%45%38%

公式还原(LaTeX BLEU):

模型简单公式多行公式矩阵总分
Granite-Docling-258M87.479.271.581.3
MinerU 2.5-1.2B92.186.882.488.4
olmOCR-7B89.783.577.985.6
Nougat-base94.891.287.692.1

速度与硬件:

模型CPU 单页A10G 单页A100 单页显存
Granite-Docling-258M4 秒0.4 秒0.1 秒1.2GB
MinerU 2.5-1.2B不可行1.2 秒0.3 秒5.8GB
olmOCR-7B不可行OOM4.2 秒14.5GB
Nougat-base32 秒1.8 秒0.6 秒2.1GB

三种典型场景的选型

场景 A:通用企业 RAG(财报、合同、技术文档)

推荐:MinerU 2.5-1.2B

理由:综合表现最均衡,5 类文档加权 92%;速度可接受(A10G 1.2 秒/页);显存占用中等。

什么时候不选 MinerU:纯扫描件占比 >50% → 换 olmOCR;纯学术论文 → 换 Nougat。

场景 B:边缘部署 / CPU-only 环境

推荐:Granite-Docling-258M

理由:唯一一个能在 CPU 上跑出可用速度的方案。M2 MacBook 单页 4 秒、x86 EC2 单页 6-8 秒,可以做长尾文档的离线处理。

什么时候不选 Granite-Docling:复杂扫描件(合同、政策原件)→ 精度不够,必须 1B+ 模型。

场景 C:极高精度要求(法律、医疗)

推荐:olmOCR-7B

理由:开源 VLM 中 OCR 字符错误率最低(0.7%);扫描件表现 96.4% 远超其他;长文档稳定。

什么时候不选 olmOCR:硬件成本上不来——它需要 A100/H100,月成本是 MinerU 的 3-5 倍。

工程实战的隐藏坑

跑了几千份真实文档,以下问题踩过的坑:

1. 不要用 PDF 的 text layer 跳过 VLM

很多 PDF 有”嵌入文本层”,理论上可以直接 pdftotext 提取,跳过 VLM。但实测嵌入文本层经常错位——视觉上看是 A 列,文本层却在 B 列。对 RAG 来说,文本层是噪声源,建议无视。直接走 VLM。

2. 双 VLM 路由

最好的实战策略不是单选一个模型,是按文档类型路由:

def parse(doc):
    doc_type = classify(doc)  # 用 Granite-Docling-258M 快速分类
    if doc_type == "academic_paper":
        return nougat(doc)
    elif doc_type == "scanned_legal":
        return olmocr(doc)
    else:
        return mineru(doc)

classify 这一步用 Granite-Docling 自己(速度快),分类准确率约 94%。

3. chunker 要按 DocTags / Markdown 结构走

VLM 输出的结构化 markup 是金子,不要用通用 RecursiveCharacterSplitter 按字符数硬切。建议自己写按 <table><formula><heading level=N> 切分的 chunker,召回率能再涨 10-15%。

4. 公式块要单独 retrieval

公式块和文本的 embedding 分布完全不同,混在一起做 retrieval 会污染。建议公式块走独立的 embedding 模型(比如 LaTeX-encoder)和单独的 vector index。

一句话收尾

2026 年 RAG 工程师的 1 号优化项是文档解析。

如果你还在用 PyPDF + Tesseract,立即换 MinerU 2.5 或 Granite-Docling——这是 RAG 召回率提升 30 个百分点最便宜的一招。

参考资料:

Frequently asked questions

为什么不直接用 GPT-4o 或 Gemini 2.5 Pro 做文档解析?
三个原因:(1) 成本——一份 100 页 PDF 用 GPT-4o 解析约 $0.8,10 万份就是 $80K,本地 VLM 推理成本接近零;(2) 数据合规——医疗、金融、法律文档不能上传第三方 API;(3) 速度——GPT-4o 解析一页约 8-15 秒,本地 MinerU 2.5 在 A10G 上 1.2 秒;本地 Granite-Docling 在 CPU 上 4 秒。本地 VLM 在精度上确实落后通用大模型 5-10%,但综合三项因素,RAG 生产部署里本地 VLM 几乎是默选。
Granite-Docling-258M 这么小,精度能打过 1B+ 的模型吗?
在通用文档上打不过,在 IBM 自己优化的目标场景(企业报告、技术手册、PDF + 表格)能打平 MinerU 2.5。原因是 Granite-Docling 用了 DocTags 这种专用的版面标记语言(把'内容'和'版面'解耦),在小参数下能精确表达表格嵌套、公式块、代码块。但在含大量手写、艺术字、复杂图表的扫描件上,258M 的视觉编码器容量不够,需要 1B+ 模型才能稳定。选型简单原则:清晰电子 PDF → Granite-Docling;扫描件/复杂版面 → MinerU 2.5 或 olmOCR。
Nougat 在 2026 年还有竞争力吗?
在学术论文 LaTeX 还原上仍然是金标准。Meta AI 在 2023 年训练的 Nougat-base/Nougat-small 专门优化 arXiv 风格论文:单栏/双栏识别、equation 还原成 LaTeX、reference 格式保持、figure caption 关联。这种垂直 SOTA 反而是通用 VLM 难追上的。但 Nougat 在普通商业文档上表现一般,所以它是'学术专用',不是通用方案。如果你的 RAG 主要喂 arXiv 论文,Nougat + Granite-Docling 双模型组合(学术用前者、其他用后者)是性价比最高的方案。
olmOCR-7B 是 Allen AI 的 SOTA 是什么意思?它比 MinerU 强在哪?
olmOCR 是 AllenAI 在 2025 年开源的文档解析模型,基于 Qwen2-VL-7B 微调,在 olmOCR-Bench(200K 真实文档)上是当前开源 SOTA。强在 (1) 阅读顺序——多栏、表格嵌套段落里能准确恢复人类阅读顺序;(2) 长文档稳定性——MinerU 在超过 50 页时偶尔丢页,olmOCR 经过专门长文档训练;(3) 字符级精度——OCR 字符错误率比 MinerU 低约 18%。缺点:参数是 MinerU 的 6 倍,单页推理慢 3-4 倍,显存占用 14GB+,A100/H100 才能舒服跑。
为什么不推荐 PaddleOCR、Tesseract 这类传统 OCR?
它们解决的是'像素 → 字符',不解决'文档 → 结构化'。一份带表格的 PDF,传统 OCR 输出是一堆按位置散落的字符串,你还要自己写后处理把它拼回表格、识别标题、判断段落。VLM 直接输出 markdown / DocTags / HTML,结构化信息一步到位。在 RAG 流程里,这意味着 VLM 输出可以直接进 chunker,传统 OCR 输出还要先经过一个版面恢复阶段,工程上反而更慢。当然如果你只需要 plain text(比如已经有完整 layout pipeline),PaddleOCR 仍然是优秀选择。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.