多模态 RAG 与跨模态检索


文档摘要

多模态 RAG 与跨模态检索 本节摘要:视觉原生文档 RAG 只是一片。生产级多模态 RAG 走得更宽——跨文本、图像、音频、视频检索,服务于行程规划(「给我找家安静、纯素、自然光的早午餐」)、医学分诊(「什么伤匹配这张照片 + 这些笔记」)、电商(「与这张自拍相似的穿搭,我的尺码」)、现场服务(「诊断这个引擎声 + 零件照片」)。2025 年的三篇综述——Abootorabi 等人、Mei 等人、Zhao 等人——把子问题形式化:跨模态检索、检索融合、生成落地、多模态评估。本节读这些综述并设计生产流水线。 学习目标 阅读完本节,你应当能够: 设计跨模态检索:文本 → 图像、图像 → 文本、音频 → 视频等。 对比三种融合策略:分数融合、注意力融合、MoE 融合。

多模态 RAG 与跨模态检索

本节摘要:视觉原生文档 RAG 只是一片。生产级多模态 RAG 走得更宽——跨文本、图像、音频、视频检索,服务于行程规划(「给我找家安静、纯素、自然光的早午餐」)、医学分诊(「什么伤匹配这张照片 + 这些笔记」)、电商(「与这张自拍相似的穿搭,我的尺码」)、现场服务(「诊断这个引擎声 + 零件照片」)。2025 年的三篇综述——Abootorabi 等人、Mei 等人、Zhao 等人——把子问题形式化:跨模态检索、检索融合、生成落地、多模态评估。本节读这些综述并设计生产流水线。

学习目标

阅读完本节,你应当能够:

  1. 设计跨模态检索:文本 → 图像、图像 → 文本、音频 → 视频等。
  2. 对比三种融合策略:分数融合、注意力融合、MoE 融合。
  3. 解释生成落地:当来源是混合模态时,「引用你的来源」长什么样。
  4. 说出 2025 年三篇经典多模态 RAG 综述及其子问题分类法。

一、问题与直觉

单模态 RAG 是已解决的模式:嵌查询、嵌块、检索、塞进 LLM。多模态 RAG 需要:

  1. 多个检索头(每模态需要兼容空间里的嵌入)。
  2. 跨模态融合检索结果。
  3. 生成落地,跨模态引用来源。
  4. 评估指标覆盖跨模态信号。

2025 年的综述都收敛到同一套分类法。

跨模态检索

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

  1. 共享嵌入空间:CLIP 与 CLAP 在共享空间里产出文本+图像/文本+音频嵌入,跨模态余弦相似度直接用。限于 CLIP 训练过的对。
  2. 每模态编码器 + 翻译:文本编码器 + 图像编码器 + 一个在空间间映射的小翻译模块。Gupta 等人的 Sen2Sen 等 2024 设计,灵活但增复杂度。
  3. VLM 当编码器:用 VLM 的隐藏状态当检索表示,VLM 支持的任何模态都行,质量更高更贵。

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

融合策略

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

  • 分数融合(最便宜):每模态有自己的检索器,各返分数。模态内归一化后求和。简单,常常管用。
  • 注意力融合:拼接所有检索项,让一个小注意力网络加权。需训练。
  • MoE 融合:门控网络路由到模态专属专家。不同查询类型路由不同——视觉问题给图更高权重。

生产默认:分数融合,对查询的主导模态略偏置;若 A/B 显示 MoE 在你的域上明显胜出,再升级。

生成落地

LLM 应引用哪条检索项驱动了每个声明。多模态时:

  • 文本来源:标准引用 [1]
  • 图像来源:[img 3] 配简短 caption。
  • 音频:[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)建立在它之上。

生产级行程规划示例

查询:「给我找家安静、纯素、自然光的早午餐。」

流水线:

  1. 分解查询:「安静」→ 音频/评论关键词;「纯素早午餐」→ 菜单项;「自然光」→ 图像特征。
  2. 按模态检索:
    • 评论上的文本检索:「纯素早午餐、安静氛围。」
    • 餐厅照片上的图像检索:「自然光、通透。」
    • 环境声片段上的音频检索:「低分贝、无音乐。」
  3. 融合分数:每家餐厅有综合分。
  4. top-k 餐厅 → 带全部证据的 VLM 生成器 → 带引用的答案。

这远超文本 RAG,每模态都加上文本单独遗漏的信号。

💡 跨模态融合的本质:不同模态捕获不同信号——文本说「安静」,音频证实分贝,图像确认光线。融合不是简单平均,而是让每模态在自己擅长的维度投票,这正是多模态 RAG 胜过单模态的根源。

agent 式多模态 RAG

多跳:若首次检索没返回高置信答案,LLM 重写再检索。第 14 章的 agent RAG 模式在此适用。例:

  • 检索初始 top-10 → LLM 觉「太吵,筛 <40 分贝」→ 重检索。
  • 检索图像 → LLM 看到一张有菜单 → 检索菜单文本 → 回答。

增加复杂度,但能处理单跳检索搞不定的查询。

评估

跨模态评估仍不成熟,常见代理:

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

没有跨全模态的标准基准,大多数论文在域专属任务上评估。

二、从零实现

code/main.py:

  • 三个 mock 检索器(文本、图像、音频)操作一个共享餐厅语料库。
  • 分数融合,可配置权重合并模态分数。
  • 一个生成器桩,发出带引用的最终答案。
  • 一个简单 agent 循环,置信度低时重写查询。

跨模态检索

def cross_modal_retrieve(query, k=10): # 文本/图像/音频各自检索, 共享或翻译空间 text_hits = text_retriever(query.text) # CLIP/SigLIP image_hits = image_retriever(query.image or query.text) audio_hits = audio_retriever(query.audio or query.text) # CLAP return {"text": text_hits, "image": image_hits, "audio": audio_hits}

分数融合

def fuse_scores(retrieval, weights=None): # 模态内归一化后加权求和 weights = weights or {"text": 0.4, "image": 0.4, "audio": 0.2} scores = {} for modality, hits in retrieval.items(): normed = minmax_normalize([h.score for h in hits]) for h, s in zip(hits, normed): scores[h.doc_id] = scores.get(h.doc_id, 0) + weights[modality] * s return sorted(scores.items(), key=lambda x: -x[1])

落地生成

def grounded_generate(query, top_k_docs, vlm): # 每条证据带模态标签与索引 evidence = format_with_citations(top_k_docs) # [1] 文本评论, [img 2] 餐厅照片, [audio 3] 环境声 0:34 answer = vlm.answer(query, evidence) return answer # 每个声明自然带引用, 跨模态可追溯

💡 分数融合的失败模式:它对各模态一视同仁,但视觉问题本应给图更高权重——这正是 MoE 融合(门控按查询类型路由到模态专家)胜出之处,代价是需要训练门控网络。

三、框架对比

  • MuRAG(2022):第一个多模态 RAG,从多模态 KB 检索图+文生成答案,奠基。
  • REACT:agent 式推理+行动,多跳检索重写。
  • ColPali/VisRAG/M3DocRAG(第 23 节):视觉原生文档 RAG 的不同实现。
  • CLIP/CLAP/SigLIP 2:共享嵌入空间做跨模态检索的基础。
  • VLM 隐藏状态:前沿质量的跨模态编码器,任意模态可用但贵。

工程取舍:文本+图用 CLIP/SigLIP;文本+音频用 CLAP;前沿跨模态用 VLM 隐藏状态;融合默认分数,域内 A/B 胜出升级 MoE;多跳用 agent 模式。

四、可复用产物

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

五、练习

  1. 医学分诊:提出一个医学分诊多模态 RAG:查询 = 伤处照片 + 文字症状。哪些模态从哪些 KB 检索?

  2. 分数融合失败:分数融合是简单加权和。它有什么 MoE 融合能避免的失败模式?

  3. 读分类法:读 Abootorabi 等人的分类法(第 3 节),三个经典子问题是什么,如何映射到你选的产品?

  4. 评估规格:为行程规划多模态 RAG 设计评估规格。哪些指标覆盖图像召回、音频召回、组合正确性?

  5. 多跳延迟:agent 多跳 RAG 每轮有延迟税。在什么查询难度下,精度增益才配得上延迟?

本节要点回顾

  1. 四子问题:跨模态检索、融合、生成落地、评估,2025 三综述共识。
  2. 跨模态检索三模式:共享空间(CLLP/CLAP)、编码器+翻译、VLM 隐藏状态。
  3. 融合三策略:分数(最简,加权求和)、注意力(拼接加权)、MoE(门控路由模态专家)。
  4. 生产默认:分数融合 + 主导模态偏置,A/B 胜出再升级 MoE。
  5. 生成落地:文本 [1]、图像 [img 3]、音频 [audio 2 at 0:34],跨模态可追溯。
  6. 行程规划示例:分解查询→按模态检索→融合→VLM 带证据生成。
  7. MuRAG 奠基:2022 第一个多模态 RAG,现代系统建于其上。
  8. agent 多跳:首次低置信则 LLM 重写再检索,处理单跳搞不定的查询。
  9. 评估不成熟:每模态 Recall@k + 融合准确率 + 人工满意度 + 任务专属,无跨全模态基准。
  10. 融合本质:每模态在自己擅长维度投票,非简单平均。

下一节,我们将进入毕业项目——多模态 Agent 与 Computer-Use,把本章所有概念综合成一个能看屏幕、点击鼠标、填表单、完成真实任务的 agent,这是 Phase 12 的收官与通向第 14 章 agent 体系的桥梁。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U