💡 一句话总结: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 又分四个梯队:
- 超轻量(<300M):IBM Granite-Docling-258M
- 中量级(1-2B):MinerU 2.5-1.2B、PP-DocLayout
- 重量级(5-10B):olmOCR-7B、InternVL2-DocOwl
- 垂直 SOTA:Nougat(学术)、TrOCR(手写)
选型决策对 RAG 性能影响巨大——同一份 1000 页技术手册,用 PyPDF 喂 GPT-4 召回准确率 32%,用 MinerU 2.5 喂同样的 embedding,召回准确率 78%。46 个百分点的差距,比换 embedding 模型涨点高 5 倍以上。
本文用同一份测试集,给四个主流方案打分。
测试集与维度
测试文档(共 500 页):
- 100 页 arXiv LaTeX 转 PDF(学术,含公式、参考文献)
- 100 页财报 PDF(含复杂表格、双栏排版)
- 100 页技术白皮书(含代码块、流程图截图)
- 100 页扫描合同(含印章、手写签名)
- 100 页中文政策文件(含表格嵌套、繁简混排)
评分维度:
- 整体结构准确率:标题层级、段落分块、列表识别
- 表格还原率:单元格内容 + 表头/合并 cell 关系
- 公式还原率:LaTeX 字符级 BLEU
- 阅读顺序:双栏、嵌入图表周边段落的顺序正确率
- 速度与硬件:单页延迟、显存占用、CPU 可行性
四大方案技术架构
IBM Granite-Docling-258M
2026 年 1 月发布,Apache 2.0,替代 2025 年的 SmolDocling-256M-preview。
架构创新:
- 语言骨干:从 SmolLM-2 升级到 Granite 3
- 视觉编码器:从 SigLIP 升级到 SigLIP2
- 训练框架:nanoVLM(IBM 自家轻量 VLM 训练库)
- 输出格式:DocTags——一种把”内容”和”版面”解耦的专用标记语言
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 第一。
架构特点:
- decoupled vision-language:视觉编码器和语言模型独立训练,再用 contrastive alignment 接合
- coarse-to-fine parsing:先低分辨率快速识别版面区域,再对每个区域用高分辨率精修
- 这两个设计让 MinerU 2.5 在精度逼近 Gemini-2.5 Pro 的同时,推理速度快 5-10 倍
支持文档类型:
- 学术论文(LaTeX 公式还原率 92%)
- 财报(表格还原率 89%)
- 技术手册(代码块识别率 95%)
- 扫描件(OCR 准确率 96.7%)
- 中文文档(含繁简、垂直排版)
硬件:A10G(24GB)单页 1.2 秒,A100(80GB)batch=8 单页 0.3 秒。
olmOCR-7B(Allen AI)
基于 Qwen2-VL-7B 微调,2025 年 12 月开源。
架构特点:
- 7B 参数提供了最强的字符级精度(开源中 OCR 字符错误率最低,0.7%)
- 阅读顺序模型单独训练,专门处理复杂版面
- 长文档稳定性优秀(50+ 页不掉页)
适用场景:
- 极高精度要求的法律、医疗、金融文档
- 复杂双栏、多栏、嵌套版面
- 长文档(>100 页)批量处理
硬件:A100/H100 必备,显存占用 14GB+。
Nougat-base(Meta AI)
2023 年发布但仍是学术文档解析的金标准。
架构特点:
- 350M 参数,专门针对 arXiv 风格论文优化
- 双栏识别 + LaTeX 公式还原 + reference 解析一体化
- 在 arXiv 论文上 LaTeX 还原 BLEU 89.4(其他模型多在 75-85)
局限:
- 非学术文档表现一般(财报、合同的版面理解差)
- 不支持中文
- 已停更(Meta 转向通用 VLM)
但如果你的 RAG 主要喂 arXiv 论文,Nougat 仍然是首选。
五维评分表
整体结构准确率:
| 模型 | arXiv | 财报 | 白皮书 | 扫描合同 | 中文政策 | 加权平均 |
|---|---|---|---|---|---|---|
| Granite-Docling-258M | 88.3% | 91.2% | 92.5% | 76.8% | 86.4% | 87.0% |
| MinerU 2.5-1.2B | 90.1% | 94.7% | 93.8% | 89.2% | 92.6% | 92.1% |
| olmOCR-7B | 91.8% | 92.3% | 91.5% | 96.4% | 88.7% | 92.1% |
| Nougat-base | 96.2% | 74.3% | 81.2% | 65.1% | – | 79.2%(无中文) |
表格还原率:
| 模型 | 简单表格 | 嵌套表格 | 合并 cell | 跨页表格 |
|---|---|---|---|---|
| Granite-Docling-258M | 93% | 84% | 89% | 71% |
| MinerU 2.5-1.2B | 97% | 91% | 85% | 86% |
| olmOCR-7B | 95% | 87% | 81% | 82% |
| Nougat-base | 78% | 52% | 45% | 38% |
公式还原(LaTeX BLEU):
| 模型 | 简单公式 | 多行公式 | 矩阵 | 总分 |
|---|---|---|---|---|
| Granite-Docling-258M | 87.4 | 79.2 | 71.5 | 81.3 |
| MinerU 2.5-1.2B | 92.1 | 86.8 | 82.4 | 88.4 |
| olmOCR-7B | 89.7 | 83.5 | 77.9 | 85.6 |
| Nougat-base | 94.8 | 91.2 | 87.6 | 92.1 |
速度与硬件:
| 模型 | CPU 单页 | A10G 单页 | A100 单页 | 显存 |
|---|---|---|---|---|
| Granite-Docling-258M | 4 秒 | 0.4 秒 | 0.1 秒 | 1.2GB |
| MinerU 2.5-1.2B | 不可行 | 1.2 秒 | 0.3 秒 | 5.8GB |
| olmOCR-7B | 不可行 | OOM | 4.2 秒 | 14.5GB |
| Nougat-base | 32 秒 | 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 个百分点最便宜的一招。
参考资料:
- SmolDocling: An ultra-compact vision-language model for end-to-end multi-modal document conversion (arXiv 2503.11576)
- MinerU 2.5: A Decoupled Vision-Language Model (arXiv 2509.22186)
- IBM Granite-Docling-258M on Hugging Face
- IBM Granite-Docling: End-to-end document understanding
- OmniDocBench - GitHub
- Why I Spent 2026 Wrestling with 10 Document Parsers - Medium