多模态 RAG 与跨模态检索

Build~180 minutesPython (stdlib, cross-modal retriever with fusion + grounded generator)先修要求: Phase 12 · 23 (ColPali), Phase 11 (RAG basics)
视觉原生文档 RAG 只是其中一块。生产级多模态 RAG 走得更宽——跨文本、图像、音频和视频检索,服务旅行规划(「找一家安静、有自然采光的素食早午餐店」)、医疗分诊(「这张照片加这些笔记对应什么伤」)、电商(「和我这张自拍相似的穿搭,我的尺码」)和现场服务(「根据这段发动机声音和零件照片诊断问题」)这类工作流。2025 年的三篇综述——Abootorabi 等、Mei 等、Zhao 等——把子问题整理成:跨模态检索、检索融合、生成溯源、多模态评估。本课解读这些综述,并设计一条生产 pipeline。
学习目标
  • 设计跨模态检索:文本 → 图像、图像 → 文本、音频 → 视频等。
  • 比较三种融合策略:分数融合、基于注意力的融合、MoE 融合。
  • 解释生成溯源:当来源混合了多种模态时,「引用你的来源」是什么样子。
  • 说出 2025 年三篇经典多模态 RAG 综述及其子问题分类法。

问题

单模态 RAG 已是成熟模式:嵌入查询、嵌入块、检索、塞进 LLM。多模态 RAG 需要:

  1. 多个检索头(每种模态都需要在兼容空间中的 embedding)。
  2. 跨模态检索结果的融合。
  3. 引用跨模态来源的生成溯源。
  4. 覆盖跨模态信号的评估指标。

2025 年的综述都归结到同一套分类法。

概念

跨模态检索

给定模态 A 的查询,检索模态 B 的文档。三种模式:

  1. 共享 embedding 空间。CLIP 和 CLAP 在共享空间中产出文本 + 图像 / 文本 + 音频 embedding。跨模态余弦相似度直接可用。限于 CLIP 训练过的配对。
  1. 逐模态编码器 + 翻译。文本编码器 + 图像编码器 + 一个小型翻译模块在空间之间映射。Gupta 等的 Sen2Sen 以及其他 2024 年设计。灵活但增加复杂度。
  1. 用 VLM 作编码器。用 VLM 的隐藏状态作为检索表示。VLM 支持的任何模态都可用。质量更高,成本更大。

选择:文本+图像用 CLIP / SigLIP 2;文本+音频用 CLAP;前沿质量的跨模态用 VLM 隐藏状态。

融合策略

你检索到 10 条结果:5 张图、3 段文本、2 段音频。怎么合并?

分数融合(最便宜)。每种模态有自己的检索器,各自返回分数。在模态内归一化分数再求和。简单,通常有效。

基于注意力的融合。把所有检索项拼接起来,让一个小注意力网络为它们加权。需要训练。

MoE 融合。门控网络路由到模态专属专家。不同查询类型路由不同——视觉问题给图像更高权重。

生产默认:分数融合,略偏向查询的主导模态。如果 A/B 在你的领域显示明显收益,再升级到 MoE。

生成溯源

LLM 应该引用每条论断由哪条检索项驱动。对于多模态:

  • 文本来源:标准引用 [1]。
  • 图像来源:[img 3] 加一句简短描述。
  • 音频:[audio 2 at 0:34]。

用溯源感知的数据训练生成器:训练目标中的每条论断都标注来源索引。推理时,模型会自然输出引用。

2025 年的综述

Abootorabi 等(arXiv:2502.08826,"Ask in Any Modality"):多模态 RAG 的分类法。覆盖检索、融合、生成。覆盖最广。

Mei 等(arXiv:2504.08748,"A Survey of Multimodal RAG"):聚焦子任务基准和失败模式。对评估设计有用。

Zhao 等(arXiv:2503.18016):以视觉为中心的综述。在 ColPali 系列工作上很强。

读完这三篇,你就掌握了 2025 年春季的最新技术水平。大部分子问题仍然开放。

MuRAG——奠基论文

MuRAG(Chen 等,2022)是第一个多模态 RAG。从多模态知识库检索图像 + 文本,生成答案。在 VLM 浪潮之前展示了可行性。现代系统(REACT、VisRAG、M3DocRAG)都建立在它之上。

一个生产级旅行规划器示例

查询:「找一家安静、有自然采光的素食早午餐店。」

pipeline:

  1. 分解查询。「安静」→ 音频/评论关键词;「素食早午餐」→ 菜单项;「自然采光」→ 图像特征。
  2. 按模态检索:

- 评论文本检索:「vegan brunch, quiet ambiance」。

- 餐厅照片图像检索:「natural light, airy」。

- 环境音片段音频检索:「low decibel, no music」。

  1. 融合分数。每家餐厅得到综合分。
  2. top-k 餐厅 → 带全部证据的 VLM 生成器 → 带引用的答案。

这远远超出文本 RAG。每种模态都贡献了文本单独会错过的信号。

Agent 式多模态 RAG

多跳:如果首次检索没有返回高置信度答案,LLM 改写查询并再次检索。第 14 阶段的 Agent 式 RAG 模式在此适用。例子:

  • 检索初始 top-10 → LLM 说「太吵了,筛选 <40 dB」→ 重新检索。
  • 检索图像 → LLM 看到其中一张有菜单 → 检索菜单文本 → 回答。

增加复杂度,但能处理单次检索无法应对的查询。

评估

跨模态评估仍然不成熟。常用代理指标:

  • 各模态的 Recall@k。
  • 融合后的 top-k 准确率。
  • 人工评判的端到端满意度。
  • 任务专属指标(完成的预订、完成的购买)。

没有覆盖所有模态的标准基准。大多数论文在领域专属任务上评估。

contrastive-matrix静态版本未包含此交互图

使用它

code/main.py:

  • 三个模拟检索器(文本、图像、音频),在共享的餐厅语料上运行。
  • 分数融合,以可配置权重组合各模态分数。
  • 一个生成器桩,输出带引用的最终答案。
  • 一个简单的 Agent 循环,在置信度低时改写查询。

交付它

本课产出 outputs/skill-multimodal-rag-designer.md。给定含多模态查询流的产品规格,设计检索器、融合、生成器和评估。

练习

  1. 提出一个医疗分诊多模态 RAG:查询 = 伤口照片 + 文本症状。各模态从什么知识库检索?
  1. 分数融合是简单的加权求和。它有什么失败模式是 MoE 融合能避开的?
  1. 阅读 Abootorabi 等的分类法(第 3 节)。三个经典子问题是什么,它们如何映射到你选择的产品?
  1. 为旅行规划多模态 RAG 设计评估规格。哪些指标覆盖图像召回、音频召回和综合正确性?
  1. Agent 式多跳 RAG 每轮往返都有延迟代价。在什么查询难度下,准确率收益才值得这份延迟?

关键术语

术语人们怎么说实际含义
跨模态检索「查一种模态,检索另一种」文本查询检索图像;图像查询检索文本;需要共享空间或翻译器
分数融合「合并分数」各模态检索分数的加权和;最简单的融合
MoE 融合「模态路由专家」门控网络为每个查询决定信任哪种模态的分数
溯源生成「引用你的来源」答案中的每条论断都标注来源索引
MuRAG「第一个多模态 RAG」2022 年确立多模态 RAG 模式的论文
Agent 式多跳「改写再重试」首轮置信度低时,LLM 重新查询检索器

延伸阅读

示意图共 1 张

mmrag-pipeline diagram
mmrag-pipeline

“Stay hungry, stay foolish.”

— Steve Jobs

esc
↑↓切换↵打开esc关闭