当前位置: 首页 > news >正文

多模态RAG演进-MRAG1.0->MRAG2.0->MRAG3.0

MRAG1.0

MRAG1.0是MRAG框架的初始阶段,通常被称为“伪MRAG”。它是对RAG范式的简单扩展,支持多模态数据。MRAG1.0通过利用现有的基于文本的检索和生成机制,实现了从RAG到MRAG的平稳过渡。

MRAG1.0的架构

MRAG1.0的架构包括三个关键组件:

  1. 文档解析和索引:

    源:多模态GraphRAG初探:文档智能+知识图谱+大模型结合范式,https://mp.weixin.qq.com/s/coMc5jNPJldPk9X74tDAbA

    • 使用《文档智能解析技术》处理多模态文档(如Word、Excel、PDF、HTML),使用OCR或特定格式的解析技术提取文本内容。

    • 使用文档布局检测模型将文档分割成结构化元素(如标题、段落、图像、视频、表格、页脚)。

    • 对于多模态数据,使用专门的模型生成描述图像、视频和其他非文本元素的标题。

    • 索引阶段:将这些块和标题编码成向量表示,并存储在向量数据库中。

  2. 检索:

    使用与索引相同的嵌入模型将用户查询编码成向量表示。如:余弦相似度、BGE等进行相似度计算从向量数据库中检索最相关的块和标题。合并重复或重叠的信息,形成外部知识的综合集合,并将其集成到生成阶段的提示中。

  3. 生成:

    将用户查询和检索到的文档合成为一个连贯的提示。结合其参数化知识和检索到的外部信息,使用LLM生成答案。在多轮对话中,系统将对话历史记录集成到提示中,实现上下文感知和无缝交互。

局限性

  • 文档解析繁琐:将多模态数据转换为文本描述增加了系统的复杂性,并导致模态特定信息的丢失。

  • 检索瓶颈:文本向量检索技术虽然成熟,但在处理多模态数据时存在挑战,导致检索精度不高。

  • 生成挑战:处理多模态数据和图像标题等需要有效组织这些元素,同时最小化冗余并保留相关信息。

MRAG2.0

MRAG2.0的架构

与MRAG1.0不同,MRAG2.0不仅支持多模态输入的查询,还在知识库中保留了原始的多模态数据。

MRAG2.0的架构包括几个关键的优化:

  1. MLLMs Captions:
    利用MLLMs的表示能力,特别是Captions任务的能力,使用单个或多个MLLM从多模态文档中提取Captions。这种方法简化了文档解析模块,减少了其复杂性。

  2. 多模态检索:增强检索模块以支持多模态用户输入,保留原始多模态数据并实现跨模态检索。允许基于文本的查询直接检索相关的多模态数据,结合基于字幕的召回和跨模态搜索能力。

  3. 多模态生成:增强生成模块以处理多模态数据,通过集成MLLMs实现用户查询和检索结果的合成。当检索结果准确且输入包含原始多模态数据时,生成模块减少了模态转换中的信息损失。

局限性

  • 多模态数据输入的准确性:整合多模态数据输入可能会降低传统文本查询描述的准确性。

  • 数据格式的多样性:生成模块需要高效地组织这些多样化的数据形式,并清晰地定义生成输入。

MRAG3.0

MRAG3.0架构图

MRAG3.0是MRAG的重大演变,引入了结构和功能上的创新,增强了其在多个维度上的能力。

MRAG3.0的创新主要体现在三个方面:

  1. 增强的文档解析:在解析过程中保留文档页面截图,最小化数据库存储中的信息损失。使用MLLMs对文档截图进行向量化并索引,实现基于用户查询的相关文档截图的高效检索。

  2. 真正的端到端多模态:在知识库构建和系统输入中强调多模态能力的同时,MRAG3.0引入了多模态输出能力,完成了端到端的多模态框架。

  3. 场景扩展:超越传统的理解能力,MRAG3.0通过模块调整和添加,将理解和生成能力结合起来。这种统一显著拓宽了系统的适用性,涵盖了视觉问答(VQA)、多模态生成和融合多模态输出等场景。

MRAG3.0支持多种场景:

  1. 检索增强场景:通过从外部知识库中检索相关内容来提供准确的答案。
  2. VQA场景:通过动态路由和检索来最小化不必要的搜索和不相关信息。
  3. 多模态生成场景:扩展生成任务的能力,通过检索增强(RA)显著提高生成任务的性能。
  4. 融合多模态输出场景:生成包含多种模态的输出,如文本、图像或视频。

修改模块

  1. 文档解析和索引模块:使用MLLMs对文档截图进行向量化并索引,确保高效检索相关文档截图。通过保留文档截图,解决了信息损失问题,并提高了知识库的可靠性。

  2. 生成:集成理解和生成能力,通过多模态输出增强子模块实现从文本到多模态输出的转变。包括原生MLLM-based输出和增强多模态输出两种方法。

新模块

多模态搜索规划:解决MRAG系统中的关键决策挑战,包括检索分类和查询重构。检索分类确定最优的检索策略,查询重构通过整合视觉信息和历史检索结果来优化查询。

前面两个阶段的流程前期内容都有相关介绍,下面来详细看下MRAG3.0的整体过程,也就是这张架构图。

MRAG3.0架构图

1. 文档解析(Documents Parsing)
  • 输入:系统接受多种类型的文档(如PDF、HTML等)。
  • 处理
    • Extractive-Based Module (Same with MRA2.0):使用提取模块(可能是基于MRA2.0的模型)将文档解析为纯文本数据(Plain Text Data)和多模态数据(Multimodal Data)。
    • 纯文本数据:包括文本块(Text Chunks)。
    • 多模态数据:包括图像(Image)、表格(Table)、屏幕截图(Screenshots)等。
    • 图像处理:图像会生成对应的描述(Image Captions)。
  • 输出:解析后的数据分为纯文本和多模态数据,准备进入索引阶段。

2. 索引(Indexing)
  • 目的:将解析后的数据存储到数据库中,以便后续检索。
  • 处理
    • 文本嵌入(Text Embedding Model):将纯文本数据嵌入为向量,存储到文本向量数据库(Text Vector DB)。
    • 多模态嵌入(Multimodal Embedding Model):将多模态数据(包括图像、表格等)嵌入为向量,存储到多模态向量数据库(Multimodal Vector DB)。
    • 屏幕截图嵌入(Documents/Screenshots Embedding Model):单独处理文档和屏幕截图,嵌入后存储到屏幕截图向量数据库(Documents/Screenshots Vector DB)。
  • 输出:三个向量数据库(Text Vector DB、Multimodal Vector DB、Documents/Screenshots Vector DB)存储了嵌入后的数据。

3. 多模态检索规划(Multimodal Search Planning)
  • 输入:用户查询(Query)及其历史数据(History)。
  • 处理
    • 检索分类(Retrieval Classification):判断查询是否需要检索外部数据。
      • 如果不需要(No),直接生成多模态提示(Multimodal Prompt,No search)。
      • 如果需要(Yes),进一步判断是否为纯文本查询(Text Only?)。
        • 纯文本查询(Yes):生成纯文本提示(Text Only Prompt)。
          • 如果需要检索(With search),生成带检索的纯文本提示(Text Only Prompt, With search)。
          • 如果不需要检索(No search),生成不带检索的纯文本提示(Text Only Prompt, No search)。
        • 非纯文本查询(No):生成多模态提示(Multimodal Prompt, With search)。
    • 查询重构(Query Reformation):根据需要重构查询,生成新的查询(New Query)。
  • 输出:生成适合检索的提示(Prompt)或重构后的新查询。

4. 检索(Retrieval)
  • 输入:多模态提示(Multimodal Prompt)或纯文本提示(Text Only Prompt)。
  • 处理
    • 根据提示类型,从对应的向量数据库中检索相关数据:
      • 纯文本提示:从Text Vector DB中检索。
      • 多模态提示:从Multimodal Vector DB和Documents/Screenshots Vector DB中检索。
    • 检索结果包括:
      • Position Identification:确定相关数据的位置。
      • Candidate Set Retrieval:获取候选数据集合。
      • Matching and Insertion:将检索到的数据与查询匹配并插入。
  • 输出:增强的多模态输出(Augmented Multimodal Output),包含检索到的相关数据。

5. 生成(Generation)
  • 输入:增强的多模态输出。
  • 处理
    • 判断是否为纯文本查询(Text Only?)
      • 如果是(Yes),直接交给大语言模型(LLMs)生成纯文本回答。
      • 如果不是(No),交给多模态大语言模型(MLLMs)生成多模态回答。
  • 输出:最终的多模态回答(Multimodal Answer),可能包含文本、图像、表格等。

6. 输出(Multimodal Answer)
  • 形式:生成的回答可能是纯文本,也可能是多模态内容(例如文本+图像+表格)。
  • 示例:图中展示了一个包含文本、图像和图表的回答。

参考文献:A Survey on Multimodal Retrieval-Augmented Generation,https://arxiv.org/pdf/2504.08748

相关文章:

  • 【验证技能】VIP项目大总结
  • C++派生类核心机制:类型转换与对象复制控制深度剖析
  • 通信协议记录仪-产品规格书
  • 如何让通义千问大模型支持结构化输出?
  • 使用xlwings将两张顺序错乱的表格进行数据核对
  • NVIDIA Omniverse在数字孪生中的算力消耗模型构建方法
  • C++ std::initializer_list 详解
  • 为美好的XCPC献上典题 ABC359 G - Sum of Tree Distance(根号分治)
  • 【AI面试准备】传统测试工程师Prompt Engineering转型指南
  • 在 Windows 中安装 Pynini 的记录
  • ECMAScript 2(ES2):标准化的微调与巩固
  • 每天一道算法题——推多米诺
  • leetcode 838. 推多米诺 中等
  • A2A Python 教程 - 综合指南
  • 深度理解linux系统—— 进程切换和调度
  • 数据结构-线性结构(链表、栈、队列)实现
  • Python 中 DAO 层使用泛型的探索
  • 接口测试实战指南:从入门到精通的质量保障之道
  • Linux系统:详解文件描述符与重定向原理以及相关接口(open,read,write,dup2)
  • 分布式理论:常见分布式协议的概览与解析
  • 中国海警局回应日本民用飞机侵闯我钓鱼岛领空:依法警告驱离
  • 中国队夺跳水世界杯总决赛首金
  • 共绘“彩色上海”,IP SH艺术共创沙龙首期圆满举办
  • 奈雪的茶叫停“能喝奶茶就不要喝水”宣传,当地市监称不要误导消费者
  • 黄宾虹诞辰160周年|一次宾翁精品的大集结
  • 光明网评“泉州梦嘉商贸楼不到5年便成危楼”:监管是否尽职尽责?