多模态 RAG(图文检索与 ColPali)
真实文档不只有纯文本——PDF 里有表格、图表、扫描件、流程图。传统 RAG 先用 OCR 把文档转成文本再检索,会丢掉版式和视觉信息。多模态 RAG 直接在「图 + 文」上做检索,是 2024–2025 的活跃方向。基础流程见 RAG 基础,多模态模型原理见 多模态大模型。
一、传统 RAG 处理富文档的痛点
PDF/扫描件 ──OCR/解析──► 纯文本 ──► 切分 ──► 向量检索
│
丢失:表格结构、图表、版式、图片内容、公式- OCR 对复杂版式(多栏、表格、手写)容易出错;
- 图表、示意图、照片里的信息被完全丢弃;
- 版式语义(标题层级、表格行列关系)被拍平。
对财报、论文、说明书、合同这类视觉信息丰富的文档,纯文本 RAG 的天花板很低。
二、两条技术路线
路线一:多模态 Embedding(图文统一向量空间)
用 CLIP 类模型把图片和文本映射到同一个向量空间,于是「文字 query」可以直接检索「图片」,反之亦然。
- 适合:图文混合库、以图搜图、图文互搜。
- 局限:CLIP 类模型对「文档页里的密集文字」理解有限,更适合自然图像而非文档截图。
路线二:视觉文档检索(ColPali,新范式)
ColPali 的思路很激进:不做 OCR,直接把文档页当图片,用视觉语言模型(VLM)编码整页截图来检索。
传统:PDF → OCR → 文本 → 切分 → 文本 embedding → 检索(丢版式/图表)
ColPali:PDF 每页 → 截图 → VLM 编码成多向量 → ColBERT 式 late interaction 检索- 基于 VLM(如 PaliGemma)+ ColBERT 的 late interaction(保留 patch 级多向量,做细粒度匹配,见 切分与检索)。
- 优势:完全跳过 OCR 和解析,版式、表格、图表、文字一起编码,对视觉密集文档检索效果显著提升,工程上还简化了「文档解析」这个最易出错的环节。
- 代价:存储多向量、计算量比单向量大;生成阶段仍需 VLM 读图回答。
三、多模态 RAG 的生成端
检索到图/页之后,生成端要用多模态 LLM(VLM) 来「看着图回答」:
query + 检索到的(图片/文档截图/图表)→ 多模态 LLM → 答案- 纯文本 LLM 做不了这一步——它看不见图。所以多模态 RAG 是「多模态检索 + 多模态生成」的端到端组合。
- 实践中也有「混合」:文本走文本 RAG,命中图表时把图片一并喂给 VLM。
四、典型架构选择
| 方案 | 检索 | 生成 | 适合 |
|---|---|---|---|
| OCR + 文本 RAG | 文本向量 | 文本 LLM | 以文字为主、版式简单 |
| 图说明 + 文本 RAG | 先用 VLM 给图生成描述,再按文本检索 | 文本/多模态 LLM | 图较少、想复用文本管道 |
| 多模态 Embedding | CLIP 类图文统一向量 | 多模态 LLM | 图文混合库、图片检索 |
| ColPali 视觉检索 | VLM 多向量 + late interaction | 多模态 LLM | 视觉密集文档(财报/论文/扫描件) |
「先用 VLM 给每张图/表生成文字描述再走文本 RAG」是性价比很高的过渡方案:不改文本检索管道,就把图的信息以文字形式纳入。
五、工程挑战
- 成本:VLM 编码和生成都比纯文本贵;ColPali 的多向量存储也更大。
- 解析 vs 免解析的权衡:ColPali 免 OCR 简化了管道,但生成端读图成本高;传统解析便宜但易丢信息。按文档类型选。
- 评估:要评估「图表里的信息有没有被正确检索和理解」,比纯文本评估更难(见 RAG 评估)。
- 混合检索:现实文档库往往图文混杂,需要文本路径和视觉路径并存 + 融合。
高频追问
Q:多模态 RAG 和传统 RAG 的核心区别? 传统 RAG 把一切转成文本再检索生成,丢失视觉信息;多模态 RAG 在图 + 文上直接做检索(多模态 embedding 或视觉文档检索)和生成(VLM 看图回答),保留表格、图表、版式等信息。
Q:ColPali 为什么不做 OCR?有什么好处? 它直接把文档页当图片用 VLM 编码检索。好处:跳过最易出错的 OCR/解析环节,版式/表格/图表/文字一起编码不丢信息,对视觉密集文档检索效果更好,工程管道也更简单。代价是多向量存储和 VLM 计算成本更高。
Q:处理大量带图表的 PDF,怎么做 RAG? 三条路按成本/效果选:① 简单版式 → OCR+文本 RAG;② 图不多 → 用 VLM 给图表生成文字描述后并入文本管道(高性价比过渡方案);③ 视觉密集、要求高 → ColPali 式视觉检索 + VLM 生成。常做混合 + 路由。
Q:多模态 RAG 的生成端能用纯文本模型吗? 不能直接用——纯文本模型看不见检索到的图片。必须用多模态 LLM(VLM)来「看图回答」。除非采用「图转文字描述」方案,把视觉信息提前转成文本,才能复用文本 LLM。
Q:CLIP 式图文向量和 ColPali 有什么不同? CLIP 把整张图压成一个向量、擅长自然图像的图文互搜,但对「文档页里的密集文字」理解弱;ColPali 用 VLM + 多向量 late interaction,专为文档检索设计,能细粒度匹配页面里的文字和版式,更适合富文本文档。