<!-- title: RAG效果差？先怪你的PDF解析器 -->
<!-- domain: new-tools -->

# RAG效果差？先怪你的PDF解析器

很多做RAG的朋友有一个共同困惑：模型换了七八个，提示词改了上百版，检索质量就是上不去。于是开始怀疑向量库、怀疑embedding、怀疑人生。但海外AI工程圈最近两年已经形成了一个共识——**RAG效果的瓶颈，大概率不在模型，而在你把PDF喂进向量库之前的那一步：文档解析**。这一步国内教程几乎没人系统讲过，大家还在用`pdfplumber`拼正则，或者干脆无脑切片，表格全丢、公式乱码、双栏串行。今天介绍的这几个海外开源新锐项目，专门解决这个“地基”问题，每一个都是真实开源、可以今天下午就跑起来的东西。

## 为什么解析是RAG最大的暗坑

先说个反直觉的事实：**LLM再聪明，喂给它一份被解析器切碎的文档，它也只能瞎编**。一份典型的学术论文PDF里，藏着至少五类结构信息：双栏排版、跨页表格、数学公式、图片说明、页眉页脚噪音。你用传统库解析出来的文本流，表格变成一堆孤立数字，公式变成乱码符号，阅读顺序还可能是错的。检索的时候，用户问“2024年Q3营收是多少”，你的向量库里根本没有一条完整的“表格行”语义单元，召回自然一塌糊涂。

海外工程圈对此的解法是“视觉解析”：让视觉模型像人一样“看”这一页，理解布局后再输出结构化的Markdown或JSON。这波工具从2024年中开始爆发，2025年到2026年持续迭代，已经形成了明确的几条技术路线。国内中文圈对它们的讨论还停留在零星转发，这篇帮你一次补齐。

## 三件套之一：Docling，IBM出品的全能型选手

**仓库**：https://github.com/docling-io/docling

Docling是IBM Research在2024年年中开源的文档解析库，MIT协议，商用完全无限制。它可能是目前生态集成做得最好的一个：原生支持PDF、DOCX、PPTX、XLSX、图片甚至网页的解析，输出统一的结构化文档类型（DoclingDocument），可以一键导出Markdown、JSON或HTML。

它内建了几个IBM自家训练的模型：版面分析用的DocLayNet系列、表格结构识别用的TableFormer。公式、代码块、插图都能识别并归类。OCR后端可以选EasyOCR、Tesseract、RapidOCR等，按需切换。CPU就能跑，有GPU会自动加速，这在“只想快速把一批Word文档转成Markdown”的场景里非常实用。

安装和使用简单到令人发指：

```bash
pip install docling
```

```python
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("report.pdf")
print(result.document.export_to_markdown())
```

命令行也直接可用，`docling your-file.pdf`就能转出Markdown。更关键的是官方维护了LlamaIndex和LangChain的加载器集成，解析结果可以直接进RAG管道，不用自己写胶水代码。另外还有docling-serve子项目，把解析能力包装成API服务，适合团队内部共享一个解析端点。

**适合谁**：需要批量处理多种格式文档、想要MIT协议随便商用的团队。**短板**：对极端复杂的扫描版学术PDF，公式和表格精度比下面两位略逊一筹。

## 三件套之二：Marker，单文件转换质量天花板

**仓库**：https://github.com/datalab-to/marker

Marker的作者是Vik Paruchuri，他同时运营着一家叫Datalab的公司（官网 https://www.datalab.to ）。Marker在2024年放出后迅速成为“PDF转Markdown”各类公开基准测试里的常胜选手，尤其是数学教材和论文这种硬骨头——公式能转成可用的LaTeX，表格能保留结构，页眉页脚能自动剔除。

底层用的是Datalab自家的Surya工具包（`pip install surya-ocr`，同样是开源的）：一个覆盖90多种语言的OCR与版面检测套件，负责行检测、文本识别、表格检测这些脏活。Marker则在它之上做排版重建，输出带坐标元数据的JSON、HTML或Markdown。

安装：

```bash
pip install marker-pdf
```

安装后提供命令行工具和Python API，支持批量转换和多GPU并行，具体的CLI参数随版本迭代较快，建议直接看仓库README的Quickstart。要提醒的是**许可证模式**：Marker采用GPL协议加商业条款——个人、研究和小团队免费，但达到一定营收规模的公司商用需要购买Datalab的许可或直接用其托管API。做内部工具一般没问题，做成产品卖钱之前务必读一下仓库里的LICENSE说明。

**适合谁**：追求单文件最高转换质量、文档以论文/教材/技术手册为主的个人和团队。**短板**：比Docling吃显存一些，商用条款要看清。

## 三件套之三：olmOCR，Ai2的“猛兽级”批量方案

**仓库**：https://github.com/allenai/olmocr

olmOCR是著名的艾伦人工智能研究所（Allen Institute for AI，Ai2，就是出OLMo开源大模型的那家）在2025年初开源的项目，思路和前两位完全不同：**用视觉语言模型（VLM）直接读页面**。它的核心创新叫“锚定”（anchoring）——利用PDF自带的文本层作为锚点，与页面图像对齐后交给微调过的Qwen2-VL系列模型，模型只需要修正识别错误、保持自然阅读顺序，而不是从零重新“抄写”整页。这让它在处理堆积如山的扫描版PDF时，兼顾了速度和还原度。

配套还有一个olmOCR-Bench基准，专门测公式、表格、阅读顺序这些“解析器照妖镜”项目，你甚至可以用它给自己的解析方案打分。代码是Apache 2.0，模型权重另有Ai2自己的许可证条款，商用前同样建议过一眼。

代价也很实在：它**需要NVIDIA GPU**，显存门槛不低，本地没有像样的显卡就跑不动官方pipeline。所以它的定位是“手里有卡、文档量按万页计”的重度玩家，或者参考它的思路选托管方案。

**适合谁**：要规模化 digitize 整个PDF库的研究机构和企业。**短板**：硬件门槛是三个里面最高的。

## 彩蛋第四件：Chonkie，解析完别忘了分块

解析出干净的Markdown之后，下一步是分块（chunking）。这一步海外也有个新锐开源项目值得认识：**Chonkie**（https://github.com/chonkie-inc/chonkie ），一个纯Python的分块库，主打“开箱即用、零配置也能用”。从最朴素的token分块，到基于句子的、基于语义相似度的分块策略都有实现，API设计得很轻。安装就是一句`pip install chonkie`。国内教程里分块往往还是“固定500字重叠50字”的老三样，但2026年语义分块早就该是默认选项了——这也是个实打实的认知差。

## 选型决策图

一张图帮你选：

```mermaid
flowchart TD
    A["一堆待解析文档"] --> B{"文档是什么格式？"}
    B -->|多为DOCX或PPTX| C["Docling"]
    B -->|全是PDF| D{"有没有NVIDIA显卡？"}
    D -->|没有 显存不足| E["Marker"]
    D -->|有 且页数上万| F["olmOCR"]
    C --> G["结构化Markdown或JSON"]
    E --> G
    F --> G
    G --> H["Chonkie语义分块"]
    H --> I["Embedding入向量库"]
    I --> J["RAG召回质量肉眼可见提升"]
```

三个工具横评：

| 维度 | Docling | Marker | olmOCR |
|------|---------|--------|--------|
| 出身 | IBM Research | Datalab（Vik Paruchuri） | Ai2 |
| 协议 | MIT，随便商用 | GPL+商业条款，小团队免费 | 代码Apache 2.0，模型另有条款 |
| 格式支持 | PDF/Office/图片等全家桶 | 主攻PDF | 主攻PDF |
| 硬件要求 | CPU可跑 | 中等，有GPU更快 | 必须NVIDIA GPU |
| 公式表格 | 良好 | 优秀 | 优秀（VLM路线） |
| 生态集成 | LangChain/LlamaIndex官方集成 | Surya全家桶+Datalab API | 自带基准评测 |
| 一句话定位 | 团队默认选项 | 质量天花板 | 批量重炮 |

## 和国内方案的对比

国内做RAG的团队并非没有对应物——OpenDataLab的MinerU就是很能打的开源解析器，很多人也确实在用。真正的信息差不在“有没有工具”，而在**工程意识**：海外的AI工程师已经把“解析质量决定RAG上限”当成常识，解析器选型和解析基准评测（比如olmOCR-Bench这类）是立项第一件事；而国内大量教程和项目还停留在“PyMuPDF切一刀直接embedding”的阶段。另外，海外这套工具链的**集成完成度**值得学习——解析器不是孤立脚本，而是带官方RAG框架加载器、带API服务化方案、带基准测试的一整套基础设施。你的向量库可以随便换，但这层“地基”一旦糊弄，上面盖什么楼都是危房。

## 信息差总结

| 你可能知道的 | 海外圈子在做但国内很少人讲的 |
|------|------|
| RAG效果差先换embedding模型 | 先升级PDF解析器，成本更低收益更大 |
| 用pdfplumber/PyMuPDF硬切文本 | 用视觉模型做版面理解，保表格保公式保阅读顺序 |
| 解析完固定长度切片 | 语义分块（Chonkie这类）是2026年默认项 |
| 解析质量靠感觉 | 用olmOCR-Bench这类公开基准给方案打分 |
| 工具能不能商用看心情 | MIT（Docling）、GPL+条款（Marker）、Apache 2.0（olmOCR代码）三种模式对应三种生意 |

## 行动指南

1. **今天下午就能做**：`pip install docling`，拿一份你手头最恶心的PDF跑`docling`命令，对比你现在RAG管道里切出来的文本，差距会让你沉默。
2. **本周**：把你RAG项目里的文档预处理环节替换成Docling或Marker，用同一组测试问题跑检索召回对比，别凭感觉，记下命中率变化。
3. **如果量大**：申请或租一张NVIDIA卡试olmOCR的pipeline，并用olmOCR-Bench给你的新旧方案各打一次分。
4. **分块升级**：`pip install chonkie`，把固定切片换成语义分块，重跑同一组评测问题。

## 参考来源

1. Docling官方仓库：https://github.com/docling-io/docling
2. Marker官方仓库：https://github.com/datalab-to/marker
3. Datalab官网（Marker/Surya团队）：https://www.datalab.to
4. olmOCR官方仓库：https://github.com/allenai/olmocr
5. Chonkie官方仓库：https://github.com/chonkie-inc/chonkie

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
