多模态 RAG:让检索增强读懂图片与表格
在传统检索增强生成(RAG)里,文档通常被当成纯文本来切块、向量化与检索。可真实世界的资料往往是图文混排的:产品手册里的一张结构图、财报里的汇总表格、论文里的实验曲线、合同里的印章与版式,都承载着关键语义。多模态 RAG 的目标,就是让检索增强「看得见」这些非文本信息,而不仅依赖 OCR 抽取出来的文字。
一、文本 RAG 的局限
标准文本 RAG 的 ingestion(入库)链路大致是:解析 PDF 或文档,做 OCR 抽取文字,再用版面检测切出段落、表格、图注,接着分块、嵌入、建索引。这条链路在「只有文字」的场景表现不错,但一旦文档里出现图与表,就会出现三类信息丢失:
- 视觉信息丢失:图表中的颜色、线条走势、logo、印章、字体强调,OCR 几乎无法表达,嵌入模型也就无从检索。
- 表格结构丢失:把表格拍平成一段文字后,行列关系、表头与单元格的对应容易被打乱,召回时难以精准命中「某列某行」的事实。
- 版式语义丢失:多栏排版、跨页表格、图文混排的相对位置,这些版式线索在纯文本切块中被抹平,模型难以还原原意。
结果是:用户用「第二张图里那个折线在第三季度为何下滑」这类问题提问时,文本 RAG 往往只能匹配到图注里的零散文字,召回质量很差。
二、多模态 RAG 的思路
核心想法是:把图片、表格、版式一并纳入可检索的表示空间,而不是先丢弃它们。
2.1 图文联合嵌入(CLIP 类)
图文联合嵌入指用一个模型把图像和文本映射到同一向量空间,使语义相近的图片与文字距离更近。最具代表性的工作是 CLIP(Contrastive Language-Image Pre-training,arXiv:2103.00020,已核验),它由 OpenAI 团队提出,在约 4 亿个(图像,文本)配对上做对比学习预训练,从而得到可直接做零样本迁移的视觉表征。论文给出的关键结论是:CLIP 在 ImageNet 零样本设定下即可匹配原始 ResNet-50 的准确率,而无需使用 ResNet-50 的那 128 万张训练样本(该指标来自论文摘要,已核验)。
CLIP 类模型为「用自然语言去检索图片」提供了基础能力,也是后续多模态检索与多模态大模型的重要底座。
2.2 图表征抽取
对于文档里的图表,常见两条路线:
- 结构化抽取:先用版面分析模型把表格、图片框出来,再用表格识别转成 Markdown/HTML,或把图送进视觉模型生成文字描述(caption),最后对文字描述做嵌入。
- 视觉直接表征:直接把整页或图片切块,用视觉语言模型(VLM)产出图像侧向量,不再依赖 OCR 先做文字化。
2.3 把图片与表格转成可检索向量
无论走哪条路,最终都要落到「向量」上,才能接入现成的向量数据库做相似度检索。区别在于:文本 RAG 为每个文本块产出一个向量;多模态 RAG 可能为每个图片、每个表格、甚至每个页面图像产出一组向量,并与文本向量共享或对齐到同一检索空间。
三、典型架构
一个可落地的多模态 RAG 流水线通常包含以下阶段:
文档输入
└─ 文档解析(版面分析:分出文字块 / 表格 / 图片 / 标题)
├─ 文本块 ──> 文本嵌入模型 ──> 文本向量
├─ 表格 ──> 表格识别或 VLM 描述 ──> 嵌入 ──> 表格向量
└─ 图片 ──> 多模态/视觉嵌入 ──> 图片向量
│
多路召回(各路向量分别检索,再合并候选)
│
重排(reranker,可多模态)
│
多模态大模型生成(图文一并送入作答)
各阶段要点:
下面用一段伪代码示意「多路召回 + 合并」的查询侧逻辑:
def multimodal_retrieve(query, indexes, top_k=5):
# 查询统一编码后,分别在多路索引中检索
q_vec = embed_query(query) # 文本/多模态查询向量
candidates = []
for name, idx in indexes.items(): # text / table / image
hits = idx.search(q_vec, top_k=top_k)
for doc_id, score in hits:
candidates.append((name, doc_id, score))
# 合并候选,交给多模态重排模型精排
ranked = rerank(query, candidates)
return ranked[:top_k]
- 文档解析(版面分析):用版面检测模型(如基于检测或分割的版面分析工具)识别页面中的文字、表格、图片、标题等区域,并保留位置关系。
- 图表分别向量化:文本走文本嵌入,表格可转 Markdown 后嵌入或单独建模,图片走多模态嵌入;每类数据可拥有独立的向量字段与元数据。
- 多路召回:查询先向量化,然后分别在文本、表格、图片几路索引里检索,合并候选集。也可采用 ColPali 这类「按页图像直接嵌入」的方案,省去显式分块。
- 重排:用多模态重排模型对候选做精排,兼顾查询与图片/表格的细粒度匹配。
- 多模态大模型生成:把召回到的文本、图片、表格一并作为上下文,送入支持图文输入的多模态大模型(MLLM)生成最终答案,并附上出处。
四、工具与方案
4.1 ColPali:视觉文档检索的新范式
ColPali(Efficient Document Retrieval with Vision Language Models,arXiv:2407.01449,已核验)由 Manuel Faysse、Hugues Sibille、Tony Wu 等人提出,核心主张是「直接嵌入文档页面的图像」,而非先抽取文字。
它的几个关键点(来自论文摘要与官方博客,已核验):
- 以视觉语言模型 PaliGemma 为骨干,使用 late interaction(迟交互,源自 ColBERT 的思路)为每个页面产出多个向量(multi-vector),查询时再做细粒度匹配。
- 配套发布了视觉文档检索基准 ViDoRe,覆盖多领域、多语言、含图表的页面级检索任务。
- 论文结论称:在 ViDoRe 上,ColPali 大幅优于传统文本检索流水线,并且在信息更密集的图表类任务(如 InfographicVQA、ArxivQA、TabFQuAD)上优势尤其明显,索引速度也比传统流程快一个数量级。
需要留意的是,论文给出的「具体领先幅度/具体准确率数值」会随版本与基准变化,本文不在此复述具体数字,相关指标请以原论文与 ViDoRe 榜单为准(待核实)。
ColPali 的价值在于:它把「OCR + 版面检测 + 分块 + 嵌入」的脆弱长链路,压缩为「页面图像直接嵌入」,既保留了视觉与版式信息,又简化了工程。
4.2 多模态 Embedding 与重排
除 ColPali 外,实践中还有两类常用能力:
- 多模态嵌入模型:把图像与文本映射到统一空间,支持「以文搜图」「以图搜文」,适合入库图片资产。
- 多模态重排模型:在召回之后,对「查询 + 候选图片/表格」做联合打分,提升精排质量。
4.3 与本站 rag-in-practice 的呼应
本站另设「rag-in-practice」专题,系统讲解文本 RAG 的分块策略、向量库选型、重排与评测等工程实践。本文不重复那些内容,而是把视角上移到「非文本信息如何进入检索」:如果你已经搭好文本 RAG,可把本文的「多路召回」与「图表向量化」作为增量模块接入,而不是推倒重来。
五、局限
多模态 RAG 能力更强,但代价也清晰:
- 解析成本高:版面分析、表格识别、VLM 描述都增加入库时延与算力开销,大语料下的索引成本显著高于纯文本。
- 图表征质量依赖模型:检索效果上限受制于底层多模态/视觉模型的理解能力,对复杂图表、罕见版式仍可能误召。
- 部署复杂:需要同时维护文本、表格、图片多路索引与对应的嵌入/重排模型,管线更长,调试与评测也更难。
- 可解释与合规:图片直接嵌入后,召回依据不如文本块直观,在需要可追溯的场景要做额外可视化与审计(ColPali 本身支持 patch 级高亮,可部分缓解)。
小结
多模态 RAG 的本质,是把「图、表、版式」从被丢弃的副产品,变成一等公民的检索对象。思路上有两条主线:一是用 CLIP 类图文联合嵌入做「以文搜图 / 以图搜文」;二是用 ColPali 这类方案「直接嵌入页面图像」并配合迟交互检索。典型架构是「解析分路向量化、多路召回、重排、多模态大模型生成」。它的收益是更完整的文档理解,代价是更高的解析成本与更复杂的部署。对已有文本 RAG 的团队,建议以增量模块方式接入,而非整体重写。
参考与延伸阅读
- ColPali: Efficient Document Retrieval with Vision Language Models,Faysse 等人,arXiv:2407.01449(2024)。论文号与核心结论(PaliGemma 骨干、late interaction、ViDoRe 基准、图表类任务优势)经 arXiv 与官方博客核验,具体量化指标待核实。【已核验】
- Learning Transferable Visual Models From Natural Language Supervision(CLIP),Radford 等人,OpenAI,arXiv:2103.00020(2021)。4 亿图文对预训练、ImageNet 零样本匹配 ResNet-50 等结论经 arXiv 核验。【已核验】
- ViDoRe:Visual Document Retrieval Benchmark,由 ColPali 团队随论文发布的页面级视觉文档检索基准与公开榜单。【已核验】
- 多模态嵌入与重排模型、PaliGemma 等具体模型权重与指标,随版本演进,引用时以官方仓库与榜单为准。【待核实】
- 本站的 rag-in-practice 专题:文本 RAG 的工程实践(分块、向量库、重排、评测),与本文互补,不重复展开。【已核验(站点内资源)】
- 文中涉及的各方案具体准确率、召回率、索引加速倍数等量化数字,因随论文版本与基准变化,本文未逐一复述,请以原论文与官方榜单为准。【待核实】