RAG-02索引召回-Multimodal-RAG

本文属于 RAG 工程框架中的「2 索引与召回」环节,聚焦「Multimodal RAG」方法。可先阅读 RAG-00.方法概述 再进入本篇。

原理

多模态编码后建立统一索引,查询可跨模态召回,再由多模态模型生成。

1
2
3
4
5
6
7
8
9
10
flowchart LR
D1[文本] --> E1[Text Encoder]
D2[图像] --> E2[Vision Encoder]
D3[表格/PDF] --> E3[Structure Encoder]
E1 --> IDX[统一索引]
E2 --> IDX
E3 --> IDX
Q[问题] --> R[跨模态检索]
IDX --> R
R --> MLLM[多模态生成]

优缺。

  • 优点:能利用图表、截图、图纸等关键证据。
  • 缺点:编码与索引复杂;多模态评估难。

性能/资源

  • 离线存储与索引成本高。
  • 在线推理显存与时延上升。

应用场景

  • 医疗影像辅助、制造图纸问答、财报图表解读。

统一合成数据示例

输入数据片段

1
2
3
4
5
6
7
{
"query": "这张报销流程图里审批时限是多少天?",
"assets": [
{"doc_id": "IMG01", "type": "image", "text_ocr": "审批需在 3 个工作日内完成"},
{"doc_id": "TXT01", "type": "text", "text": "报销单提交后进入审批流程"}
]
}

中间结果(跨模态召回)

1
2
3
4
[
{"rank": 1, "doc_id": "IMG01", "modality": "image", "score": 0.91},
{"rank": 2, "doc_id": "TXT01", "modality": "text", "score": 0.72}
]

最终生成示例(含引用)

1
2
3
4
{
"answer": "审批时限为 3 个工作日。",
"citations": [{"doc_id": "IMG01", "evidence_span": "审批需在 3 个工作日内完成"}]
}

原始发表与工程实现

  • 代表性原始发表:CLIP (2021), BLIP-2 (2023)。
  • 核心解决问题:解决图文联合检索生成。
  • 成熟实现工具:CLIP/SigLIP, LLaVA, Qwen2-VL。

详细原理拆解

  • 图文统一表示或跨编码重排,常见融合 score=w_tscore_text+w_vscore_vision。
  • 典型实现可拆为:输入预处理 -> 方法核心计算 -> 候选/证据构建 -> 生成与引用。
  • 工程调优重点:质量(准确率/引用率)与成本(时延/token)的联合优化。
1
2
3
4
5
flowchart LR
In[输入 Query 与知识] --> Core[方法核心计算]
Core --> Rank[匹配/路由/排序]
Rank --> Build[证据组装]
Build --> Out[答案与引用]

工程落地扩展示例

伪代码

1
2
3
4
def multimodal_retrieve(query, text_encoder, vision_encoder, fusion):
t_scores = text_encoder.score(query, text_corpus)
v_scores = vision_encoder.score(query, image_corpus) # 图表/截图
return fusion.combine(t_scores, v_scores, query_modality_hint=query)

参数示例

1
2
3
4
text_weight: 0.4
vision_weight: 0.6
ocr_confidence_min: 0.75
return_modality: ["image", "text"]

常见失败案例

  • 失败模式 1:问题指向流程图,但融合权重偏文本,图证据排不到前序
  • 失败模式 2:OCR 错字导致文本向量与图不一致,跨模态对齐失败
  • 失败模式 3:高分辨率图未裁剪图例区域,视觉编码全图噪声大

Demo 数据带入计算示例

1
2
问句「流程图里审批几天?」应以视觉证据为主:score_vision(IMG01)=0.91 > score_text(TXT01)=0.72。
加权 0.4*0.72+0.6*0.91=0.834;若错误地设 w_v=0.2,则总分被正文拉低,体现 **模态权重** 必须随问题类型调。
-------------本文结束感谢您的阅读-------------