很多做RAG的朋友有一个共同困惑:模型换了七八个,提示词改了上百版,检索质量就是上不去。于是开始怀疑向量库、怀疑embedding、怀疑人生。但海外AI工程圈最近两年已经形成了一个共识——RAG效果的瓶颈,大概率不在模型,而在你把PDF喂进向量库之前的那一步:文档解析。这一步国内教程几乎没人系统讲过,大家还在用pdfplumber拼正则,或者干脆无脑切片,表格全丢、公式乱码、双栏串行。今天介绍的这几个海外开源新锐项目,专门解决这个“地基”问题,每一个都是真实开源、可以今天下午就跑起来的东西。
先说个反直觉的事实:LLM再聪明,喂给它一份被解析器切碎的文档,它也只能瞎编。一份典型的学术论文PDF里,藏着至少五类结构信息:双栏排版、跨页表格、数学公式、图片说明、页眉页脚噪音。你用传统库解析出来的文本流,表格变成一堆孤立数字,公式变成乱码符号,阅读顺序还可能是错的。检索的时候,用户问“2024年Q3营收是多少”,你的向量库里根本没有一条完整的“表格行”语义单元,召回自然一塌糊涂。
海外工程圈对此的解法是“视觉解析”:让视觉模型像人一样“看”这一页,理解布局后再输出结构化的Markdown或JSON。这波工具从2024年中开始爆发,2025年到2026年持续迭代,已经形成了明确的几条技术路线。国内中文圈对它们的讨论还停留在零星转发,这篇帮你一次补齐。
仓库: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”的场景里非常实用。
安装和使用简单到令人发指:
pip install docling
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,公式和表格精度比下面两位略逊一筹。
仓库: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。
安装:
pip install marker-pdf
安装后提供命令行工具和Python API,支持批量转换和多GPU并行,具体的CLI参数随版本迭代较快,建议直接看仓库README的Quickstart。要提醒的是许可证模式:Marker采用GPL协议加商业条款——个人、研究和小团队免费,但达到一定营收规模的公司商用需要购买Datalab的许可或直接用其托管API。做内部工具一般没问题,做成产品卖钱之前务必读一下仓库里的LICENSE说明。
适合谁:追求单文件最高转换质量、文档以论文/教材/技术手册为主的个人和团队。短板:比Docling吃显存一些,商用条款要看清。
仓库: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库的研究机构和企业。短板:硬件门槛是三个里面最高的。
解析出干净的Markdown之后,下一步是分块(chunking)。这一步海外也有个新锐开源项目值得认识:Chonkie(https://github.com/chonkie-inc/chonkie ),一个纯Python的分块库,主打“开箱即用、零配置也能用”。从最朴素的token分块,到基于句子的、基于语义相似度的分块策略都有实现,API设计得很轻。安装就是一句pip install chonkie。国内教程里分块往往还是“固定500字重叠50字”的老三样,但2026年语义分块早就该是默认选项了——这也是个实打实的认知差。
一张图帮你选:
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代码)三种模式对应三种生意 |
pip install docling,拿一份你手头最恶心的PDF跑docling命令,对比你现在RAG管道里切出来的文本,差距会让你沉默。pip install 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 等场景全覆盖。
