Skip to content
🔗 分享本题
查看我的学习进度 →

21 模块 Q9 教学图:多模态RAG和传统RAG有什么区别?

🧠 图解记忆:多模态文档解析Pipeline;点击图片可查看原图。

💡 答案要点

核心区别:

维度传统文本RAG多模态RAG
索引内容文本块 + 向量图像块 + 文本块 + 跨模态对齐
检索方式文本→向量→相似度文本/图像→多模态向量→跨模态检索
生成输入文本上下文图像+文本统一上下文
典型场景文档问答图文混合知识库问答

多模态RAG架构:

┌──────────────────────────────────────────────────────┐
│               多模态RAG 架构                          │
├──────────────────────────────────────────────────────┤
│  索引阶段:                                            │
│  文档 → PDF解析                                        │
│       → 文本块(直接嵌入)                             │
│       → 图像块(OCR+描述生成→嵌入)                   │
│       → 跨模态对齐(文本-图像pair)                    │
│                                                      │
│  检索阶段:                                            │
│  用户Query → 文本向量检索                             │
│           → 可选:图像向量检索(以图搜图)              │
│           → 跨模态检索(文本Query→相关图像)           │
│                                                      │
│  生成阶段:                                            │
│  检索结果(文本+图像)→ 多模态LLM → 融合回答           │
└──────────────────────────────────────────────────────┘

多模态文档解析Pipeline:

python
def parse_multimodal_doc(pdf_path):
    doc = pymupdf.open(pdf_path)
    chunks = {"text": [], "images": []}

    for page in doc:
        # 提取文本
        text = page.get_text()
        if text.strip():
            chunks["text"].append({"content": text, "page": page.number})

        # 提取图像
        for img_index, img in enumerate(page.get_images()):
            pix = fitz.Pixmap(doc, img)
            img_data = pix.tobytes("png")
            img_obj = Image.open(io.BytesIO(img_data))

            # 用GPT-4V生成图像描述
            description = gpt4v.analyze_image(img_obj, prompt=
                "简要描述这张图片的核心内容,用于检索匹配。"
            )

            chunks["images"].append({
                "image": img_data,
                "description": description,
                "page": page.number,
                "image_index": img_index
            })

    return chunks

面试话术:

"多模态RAG的核心是'让图像也能被检索'。我的方案是:文档解析时同时提取文本和图像,图像用GPT-4V生成描述,文本和描述分别向量存储。检索时用跨模态索引,支持'用户问文字,系统返回包含答案的图片'。"

📚 参考:CLIP(图文混合检索的多模态对齐基础)