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

通用RAG:通过路由模块对多源异构知识库检索生成问答思路

如何在多个语料库(多源异构知识库,如:文本、图片、视频)中检索和整合来自不同模态和粒度的知识?UniversalRAG:一种新的RAG框架,用于从多个模态和粒度的语料库中检索和整合知识。下面来看看思路,供参考。

方法

 (A) 单一模态的 RAG 仅检索一种模态的数据。(B) 单一语料库的 RAG 专注于检索数据模态,而忽略语义。(C) UniversalRAG使用路由器和多个语料库有效地支持多样化的查询,涵盖不同的模态和粒度。

从上图可以看到,UniversalRAG的核心思想是通过动态识别和路由查询到最合适的模态和粒度知识源来进行检索

  1. 模态感知检索(Modality-Aware Retrieval):

    • 多模态语料库:UniversalRAG维护三个独立的嵌入空间,分别对应文本、图像和视频模态。每个模态的语料库被组织成不同的子语料库,如:文本语料库分为段落级和文档级,视频语料库分为完整视频和视频片段。

    • 路由模块(Router):引入一个路由模块,Router,动态选择每个查询的最合适模态。给定一个查询q,Router预测查询相关的模态r,并从相应的模态特定语料库中选择相关项c。

  2. 粒度感知检索(Granularity-Aware Retrieval):

    • 多粒度支持:为了灵活适应不同查询的信息需求,UniversalRAG在每个模态内进一步划分为多个粒度级别。例如,文本语料库分为段落级和文档级,视频语料库分为视频片段和完整视频。

    • 路由决策:路由决策r分为六类:无检索(None)、段落(Paragraph)、文档(Document)、图像(Image)、片段(Clip)、视频(Video)。检索过程根据路由决策r进行,具体公式如下:

路由模块设计:

一、无训练的路由

无训练的路由利用预训练的LLM的内在知识和推理能力来分类查询。步骤如下:

  1. 提示设计:给定一个查询q,LLM会被提供一个详细的指令描述路由任务,并附带几个上下文示例。
  2. 预测路由类型:LLM根据提示和示例预测查询最合适的检索类型,从六个预定义的选项中选择。

小结:这种方法的优势在于不需要额外的训练数据,利用了LLM的强大泛化能力。然而,其性能可能受限于LLM的预训练知识和推理能力。

二、训练路由

为了提高路由的准确性,UniversalRAG还探索了训练路由模块的方法。训练路由模块面临的主要挑战是缺乏查询标签对(ground-truth query-label pairs)来进行最优语料库选择的监督。为此,文章采用了一种间接的方法来构建训练数据集:

  1. 利用基准测试的归纳偏差:假设每个基准测试主要与特定的模态和检索粒度相关联。例如,文本问答基准测试中的查询可能主要需要段落级别的信息,而多跳问答基准测试可能需要文档级别的信息。
  2. 标签分配:
    • 对于文本问答基准测试,查询被标记为’None’(如果查询可以仅通过模型的参数知识回答)、‘Paragraph’(单跳RAG基准测试)或’Document’(多跳RAG基准测试)。

    • 对于图像基准测试,查询被标记为’Image’。

    • 对于视频问答基准测试,查询被标记为’Clip’(如果查询关注视频中的局部事件或特定时刻)或’Video’(如果查询需要理解整个视频的故事情节或更广泛的上下文)。

不同路由器模型大小的路由器准确率

性能效果

在八个多模态数据集上比较 UniversalRAG 模型与基线的总体结果。UniversalRAG(我们的模型)以彩色单元格表示,包含针对 DistilBERT 和 T5-Large 训练的路由器模型,以及基于 GPT-4o 的免训练路由器方法。通过自适应地为每个查询选择最佳检索模态,UniversalRAG 的性能与 Oracle 检索选择的性能相当,并且平均而言优于所有基线。

检索粒度对两个基准测试的性能影响:HotpotQA(需要对文档进行多跳推理)和 LVBench(其查询通常可用短视频片段进行回答)。具有粒度的 UniversalRAG 始终优于无粒度的模型,这突显了结合不同粒度级别可以增强 UniversalRAG 自适应处理各种用户问题的能力。

参考:UniversalRAG: Retrieval-Augmented Generation over Multiple Corpora with Diverse Modalities and Granularities,https://arxiv.org/pdf/2504.20734

相关文章:

  • 我用Deepseek + 亮数据爬虫神器 1小时做出輿情分析器
  • 【Java学习笔记】多态数组
  • HLS图像处理:从算法到硬件的创新加速之旅
  • 【类拷贝文件的运用】
  • Android11.0 framework第三方无源码APP读写断电后数据丢失问题解决
  • Java中的​​策略模式​​和​​模板方法模式
  • 小白学习java第18天(下):mybatis
  • Babylon.js学习之路《三、创建你的第一个 3D 场景:立方体、球体与平面》
  • mac一键安装gpt-sovit教程中,homebrew卡住不动的问题
  • 【Dv3Admin】工具视图配置文件解析
  • # 07_Elastic Stack 从入门到实践(七)---1
  • Go语言爬虫系列教程(一) 爬虫基础入门
  • HTML5 中实现盒子水平垂直居中的方法
  • C++ 跨平台开发挑战与深度解决方案:从架构设计到实战优化
  • 安装hadoop
  • Modbus协议介绍
  • mac M2能安装的虚拟机和linux系统系统
  • 【时时三省】(C语言基础)字符数组的输入输出
  • 【C++进阶篇】多态
  • 使用Docker安装Dify
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来
  • 第十二届警博会在京开幕:12个国家和地区835家企业参展
  • 国台办:民进党当局刻意刁难大陆配偶,这是不折不扣的政治迫害
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 区域国别学视域下的东亚文化交涉
  • 2024年度全国秋粮收购达3.45亿吨