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

【AI论文精读12】RAG论文综述2(微软亚研院 2409)P4-隐性事实查询L2

AI知识点总结:【AI知识点】
AI论文精读、项目、思考:【AI修炼之路】


P1,P2,P3

四、隐性事实查询(L2)

4.1 概述

ps:P2有四种查询(L1,L2,L3,L4)的举例对比

隐性事实查询是指那些依赖于数据中未立即显现的关联,需要通过常识推理或基本逻辑推断才能得出的查询。这类信息可能分散在多个文档片段或数据段中,必须通过推理或简单推导来得出答案。这一层次的查询通常需要从数据集中多个文档中收集和处理信息,而这些所需信息的集合可能超过单次检索的能力。因此,需要将原始查询分解为多个检索操作,并将结果汇总为综合性答案。

这些查询通常涉及常识推理,无需特定领域的专业知识。常见的查询类型包括统计查询、描述性分析查询和基础聚合查询。 可能需要对多个片段进行计数、比较、趋势分析和选择性总结。

隐性事实查询(L2)定义

对于查询 q q q 及其对应的答案 a a a,一个L2 隐性事实查询的定义如下:

  • 存在一组显式事实查询 { q 1 , q 2 , … , q m } ⊂ Q 1 \{q_1, q_2, \dots, q_m\} \subset Q_1 {q1,q2,,qm}Q1,每个显式查询都可以从数据集 D D D 中的特定片段中检索出来:
    r D ( q ) = ⋃ i = 1 m r D ( q i ) r_D(q) = \bigcup_{i=1}^{m} r_D(q_i) rD(q)=i=1mrD(qi)
    其中, r D ( q i ) r_D(q_i) rD(qi) 表示检索到的满足子查询 q i q_i qi 的相关数据片段,所有这些子查询的检索结果之和(并集)构成了回答查询 q q q 所需的信息集合。

  • 一个响应生成器 θ \theta θ,通常是一个提示的LLM推断,用于构建答案 a a a。通过聚合显式查询的响应 { θ ( r D ( q 1 ) ) , θ ( r D ( q 2 ) ) , … , θ ( r D ( q m ) ) } \{\theta(r_D(q_1)), \theta(r_D(q_2)), \dots, \theta(r_D(q_m))\} {θ(rD(q1)),θ(rD(q2)),,θ(rD(qm))} 并应用常识推理来推导数据中未明确说明的答案。生成的响应 θ ( r D ( q ) ) \theta(r_D(q)) θ(rD(q)) 应该接近于答案 a a a,这表明查询 q q q 可以通过显式查询的响应聚合得到有效的答案。

示例

以下是该级别的一些查询示例:

  • 有多少个实验样本的样本量大于1000?(给定实验记录集)
  • 过去一个月提到最多的三个词汇是什么? (给定医学记录集)
  • 公司X和公司Y的AI战略是什么? (基于公司X和公司Y的最新新闻和文章进行汇总)

总结来说,L2查询不仅仅依赖于单一片段的检索,它通过将多个显式事实组合并推理得出最终答案。这类查询通常要求模型有能力在检索和推理之间有效协调,以应对复杂问题。


4.2 挑战与解决方案

隐性事实查询(Level-2 Queries) 中,问题仍然围绕着事实展开,但答案并不直接存在于某一单一的文本段落中。相反,回答这些问题需要将多个事实结合起来,并通过常识推理得出结论。这一层次的查询带来了以下主要挑战:

1. 检索量的适应性问题(Adaptive Retrieval Volumes)

不同的问题可能需要检索不同数量的上下文信息。

  • 挑战:如果使用固定数量的检索结果,可能会导致两种情况:
    • 信息噪音:检索到的上下文过多,其中包含了大量无关或冗余的信息。
    • 信息不足:检索的上下文过少,导致无法获取足够的信息来准确回答问题。
  • 解决方案:需要设计能够根据问题和数据集的性质动态调整检索数量的方法,以平衡信息量和噪音问题。

2. 推理与检索之间的协调(Coordination Between Reasoning and Retrieval)

推理和检索之间存在着相互依赖的关系:

  • 推理:推理可以指导模型聚焦在需要检索的具体信息上。例如,通过初步的推理,可以确定哪些事实是相关的,哪些数据片段是值得检索的。

  • 检索:检索到的信息可以为进一步的推理提供依据和方向。模型可以根据检索到的内容,动态调整推理策略,进行迭代推理。

  • 挑战:有效的推理和检索之间需要智能整合,确保模型能灵活地从外部数据中提取关键信息,同时运用LLMs(大语言模型)固有的推理能力。

  • 解决方案:需要采用高级的检索增强生成(RAG)策略,例如:

    • 迭代式RAG(Iterative RAG):通过反复检索与生成,不断修正和改进答案。
    • 基于图结构或树结构的RAG(RAG on Graph/Tree):使用图结构或树形结构来组织信息,帮助在复杂查询中找到相关的多跳信息。
    • RAG与SQL结合(RAG with SQL):当数据结构化时,可以通过SQL查询更高效地从数据库中提取所需信息。

4.3 迭代式RAG(Iterative RAG)

隐性事实查询多跳RAG任务有相似之处。这类方法通过动态控制多步骤的RAG过程,逐步收集或纠正信息,直到找到正确答案。迭代式RAG的关键在于分阶段地检索和生成信息,以保证答案的正确性和可靠性。

1. 基于规划的迭代方法(Planning-based Iterative Methods)

这类方法在检索前阶段或检索过程中生成一个逐步检索的计划,通过动态调整每一步的检索重点,逐步缩小检索范围,并引导系统找到答案。

  • ReAct [93]:该方法逐步更新每个步骤的检索目标,减少问题回答过程中知识上的差距。

  • IRCoT [94]RAT [95]:利用思维链(Chain of Thought, CoT) 来引导RAG流程,基于之前检索到的信息做出下一步检索目标的决策。这种方法依赖每一步推理和检索之间的反馈,确保每一次的检索能够为下一个步骤提供有用的上下文信息。

  • GenGround [96]:这种方法允许LLMs在两个阶段间交替,直到获得最终答案:

    1. 生成一个更简单的单步问题并提供直接答案;
    2. 将问答对追溯回检索到的文档,验证并纠正预测中的不准确之处。

    这种迭代过程确保了回答的可靠性和准确性。

2. 基于信息填补的迭代方法(Information Gap Filling-based Iterative Methods)

这种方法通过一轮又一轮的检索与生成,逐步填补已知信息中的空白,确保最终的答案涵盖了问题的所有方面。

  • ITRG [97]:该框架引入了一个迭代检索-生成协作框架,首先基于已有知识生成答案,然后继续检索生成过程中未知的部分,直到答案完整。
  • FLARE [50]:该方法会在每次迭代中重新审视和修改生成答案中的低概率词汇,确保答案的精确性。
  • Self-RAG [92]:通过微调大模型,使其能够自主决定何时继续检索,何时停止检索并开始回答问题。这种方法让模型具备了更强的自主性,在检索与生成的过程之间取得平衡,保证了答案的准确性。

4.4 图/树结构问题回答(Graph/Tree Question Answering)

隐性事实查询通常需要从多个参考来源综合信息,而图(Graph)树(Tree) 结构——无论是基于知识的还是数据结构化的——都能够自然地表达文本之间的关系结构,非常适合这种数据检索问题。

1. 传统知识图谱(Knowledge Graph, KG)

传统知识图谱是最初被考虑用于增强LLMs(大语言模型)效能的结构之一。在知识图谱中,每个节点代表一个实体,节点之间的边表示这些实体之间的关系。知识图谱与LLM的结合能够有效地扩展模型的推理能力。

  • KG增强的LLM:将知识图谱(KG)整合到LLM的预训练和推理阶段,帮助LLM加深对已获取知识的理解【98】。
  • LLM增强的KG:使用LLM进行KG任务,例如嵌入、补全、构建、图-文本生成以及问题回答等【98】。
  • 协同LLM+KG:采用双向推理机制,使LLM与KG互相补充,通过数据和知识驱动的推理相互提升【98】。

例如,Rigel-KQGA模型【99】是一个端到端的知识图谱问答(KGQA)模型,它根据查询预测必要的知识图谱节点,并将这些节点与LLM结合,以推导出答案。

一些其他相关工作包括:

  • Think-on-Graph【100】和KnowledgeNavigator【101】:这些方法提取查询中涉及的实体,然后在图上执行迭代的广度优先搜索(BFS),使用LLM作为推理引擎来决定最佳的探索路径并进行剪枝。
  • R3模型【102】:通过LLM引入若干可能的常识性公理,依次搜索相关知识子图,直到足够的信息被收集来回答问题。

2. 数据块图/树(Data Chunk Graph/Tree)

数据块图或树结构是另一种被广泛研究的图谱构建方法,与传统知识图谱相比,LLMs具备强大的阅读理解能力,可以直接处理文本而不需要将其分解为最细粒度的实体和关系。

在这一框架下,研究人员开始尝试将文本块或数据块作为图或树上的节点,使用边表示高层次或更为复杂的关系。

  • Knowledge-Graph-Prompting【103】:讨论了三类需要从图谱中挖掘隐性事实的问题:

    1. 桥接问题(Bridging questions):依赖于顺序推理;
    2. 比较问题(Comparing questions):依赖于对不同段落的并行推理;
    3. 结构性问题(Structural questions):依赖于文档结构层次的内容提取。

    这种方法通过实体识别、TF-IDF、KNN和文档结构层次来构建文档图,并提取子图以回答问题。

  • MoGG模型【44】:将一到两句话视为最小的语义单元,使用它们作为节点,并基于节点间的语义相似性建立边。此外,它训练一个预测器来决定回答查询所需的文本粒度,确定需要多大的子图。

  • RAPTOR模型【43】:通过聚类算法将最小的文本块进行分层聚类,在每个层次上总结新的语义信息,并在压缩后的节点树中检索最必要的信息。

  • GraphRAG模型【104】:采用了一种聚类的方法,首先根据语义相似性连接最小的文本块,然后使用社区检测算法对节点进行分组。最终,通过分析每个节点社区内的响应来总结查询的全局答案。


4.5 自然语言转SQL查询(Natural Language to SQL Queries)

在处理结构化数据时,将自然语言查询转换为SQL(NL2SQL)是一种有效的方法。工具如Chat2DB能够将用户的自然语言查询转换为数据库查询。随着大语言模型(LLM)时代的到来,文本到SQL(text-to-SQL)领域取得了显著进展【105, 106, 107, 108】。通过这些进展,我们可以利用这些工具从结构化数据库中检索信息,为LLM的生成能力提供有力的外部数据支持。

NL2SQL的作用

通过整合文本到SQL的工具【109】,LLM能够访问和利用结构化数据,从而增强其生成更准确和上下文相关的回答的能力。这种整合不仅提高了生成内容的深度和质量,还扩展了LLM的应用范围,使其能够执行更多复杂的任务,这些任务需要与数据库内容交互并解释其结果。


4.6 关于事实查询的讨论

是否需要进行微调

一些研究【110】表明,微调(fine-tuning) 过程中,LLMs在获取新事实性知识时面临挑战。这一过程可能导致LLM生成准确响应的整体表现下降,并且通常会产生更多的幻觉(hallucinations)。此外,研究【111】指出,使用新的事实性数据进行微调可能导致模型机械记忆(rote memorization) 事实陈述。然而,修改这些记忆化事实的措辞可能会使模型无法有效应用新学到的知识,这表明LLM在理解和保留新信息时仅停留在表面。这一发现揭示了现有微调过程的局限性,并强调了整合和适应新信息的更复杂方法的需求。

是否需要区分不同层次的事实查询

无论是显性事实查询(explicit fact queries) 还是隐性事实查询(implicit fact queries),它们都基于事实。然而,在构建数据增强的LLM应用之前,确定查询属于哪个层次是至关重要的。如果将显性事实查询误分类为隐性事实查询,可能会检索到大量表面看似相关但最终无助于回答问题的冗余信息,从而误导LLM并浪费计算资源。相反,如果将隐性事实查询误认为显性事实查询,则可能导致无法使用适当的方法来检索足够全面的外部辅助数据。

隐性事实查询通常需要动态整合与查询上下文相关的多维度信息,而显性事实查询通常只需要一个单一数据片段,这使得它们往往会检索到固定量的外部数据。这可能导致LLM表现不佳。因此,在理解目标任务的基础上,预先区分查询的层次将是有利的。此外,大量研究致力于训练模型自主评估所检索的信息是否足够,代表性的方法如Self-RAG【92】。这些方法通过让模型判断何时停止检索并开始回答问题,来提升模型的推理能力和对信息充足性的评估。


未完待续。。。

相关文章:

【AI论文精读12】RAG论文综述2(微软亚研院 2409)P4-隐性事实查询L2

AI知识点总结:【AI知识点】 AI论文精读、项目、思考:【AI修炼之路】 P1,P2,P3 四、隐性事实查询(L2) 4.1 概述 ps:P2有四种查询(L1,L2,L3,L4&…...

SpringBoot中间件Docker

Docker(属于C/S架构软件) 简介与概述 1.Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux …...

计算机毕设选题推荐【大数据专业】

计算机毕设选题推荐【大数据专业】 大数据专业的毕业设计需要结合数据的采集、存储、处理与分析等方面的技能。为帮助同学们找到一个适合且具有实践性的选题,我们为大家整理了50个精选的毕设选题。这些选题涵盖了大数据分析、处理技术、可视化等多个方向&#xff0…...

Bootstrap 4 多媒体对象

Bootstrap 4 多媒体对象 引言 Bootstrap 4 是目前最受欢迎的前端框架之一,它提供了一套丰富的工具和组件,帮助开发者快速构建响应式和移动设备优先的网页。在本文中,我们将重点探讨 Bootstrap 4 中的多媒体对象(Media Object)组件,这是一种用于构建复杂和灵活布局的强大…...

Springmvc Thymeleaf 标签

Thymeleaf是一个适用于Java的模板引擎,它允许开发者将动态内容嵌入到HTML页面中。在SpringMVC框架中,Thymeleaf可以作为一个视图解析器,使得开发者能够轻松地创建动态网页。以下是关于SpringMVC中Thymeleaf标签的详细介绍: 一、T…...

用java来编写web界面

一、ssm框架整体目录架构 二、编写后端代码 1、编写实体层代码 实体层代码就是你的对象 entity package com.cv.entity;public class Apple {private Integer id;private String name;private Integer quantity;private Integer price;private Integer categoryId;public…...

如何利用Fiddler进行抓包并自动化

首先一般使用Fiddler都是对手机模拟器进行抓包 接下来以MUMU模拟器为例 首先打开Fiddler-->tool-->options-->connection 将要打上的勾都打上,可以看到代理的端口是8888 打开HTTPS选项 把要打的勾打上,这样子才可以接收到HTTPS的包 MUMU打开…...

权重衰减与暂退法——pytorch与paddle实现模型正则化

权重衰减与暂退法——pytorch与paddle实现模型正则化 在深度学习中,模型正则化是一种至关重要的技术,它有助于防止模型过拟合,提高泛化能力。过拟合是指在训练数据上表现良好,但在测试数据或新数据上表现不佳的现象。为了缓解这一…...

MYSQL-windows安装配置两个或多个版本MYSQL

安装第一个mysql很简单,这里不再赘述。主要说说第二个怎么安装,服务怎么配置。 1. 从官网下载第二个MySQL并安装 一般都是免安装版了,下载解压到某个文件目录下(路径中尽量不要带空格或中文),再新建一个my.ini文件(或…...

6、Spring Boot 3.x集成RabbitMQ动态交换机、队列

一、前言 本篇主要是围绕着 Spring Boot 3.x 与 RabbitMQ 的动态配置集成,比如动态新增 RabbitMQ 交换机、队列等操作。二、默认RabbitMQ中的exchange、queue动态新增及监听 1、新增RabbitMQ配置 RabbitMQConfig.java import org.springframework.amqp.rabbit.a…...

【分布式微服务云原生】 探索SOAP协议:简单对象访问协议的深度解析与实践

探索SOAP协议:简单对象访问协议的深度解析与实践 摘要: 在现代分布式系统中,SOAP(简单对象访问协议)扮演着至关重要的角色,提供了一种标准化的方式来实现不同系统间的通信。本文深入探讨了SOAP的工作原理、…...

C语言题目练习2

前面我们知道了单链表的结构及其一些数据操作,今天我们来看看有关于单链表的题目~ 移除链表元素 移除链表元素: https://leetcode.cn/problems/remove-linked-list-elements/description/ 这个题目要求我们删除链表中是指定数据的结点,最终返…...

复变函数与积分变换——留数定理求拉氏逆变换

1.留数定理 若s1,s2,…,sn是F(s)的所有奇点(函数在某个点上的取值无定义或者无限大),且当s→∞时,F(s)→0,则有: 一般地: s1是一级极点,则&#…...

RabbitMQ事务模块

目录 消息分发​​​​​​​ 负载均衡 幂等性保障 顺序性保障 顺序性保障方案 二号策略:分区消费 三号策略:消息确认机制 四号策略: 消息积压 RabbitMQ集群 选举过程 RabbitMQ是基于AMQP协议实现的,该协议实现了事务机制,要么全部成功,要么全…...

Android终端GB28181音视频实时回传设计探讨

技术背景 好多开发者,在调研Android平台GB28181实时回传的时候,对这块整体的流程,没有个整体的了解,本文以大牛直播SDK的SmartGBD设计开发为例,聊下如何在Android终端实现GB28181音视频数据实时回传。 技术实现 Andr…...

AI金融攻防赛:金融场景凭证篡改检测(DataWhale组队学习)

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月学习赛的AI金融攻防赛学习总结文档。本文主要讲解如何解决 金融场景凭证篡改检测的核心问题,以及解决思路和代码实现过程。希望…...

华为OD机试真题---喊7的次数重排

题目描述 喊7是一个传统的聚会游戏。N个人围成一圈,按顺时针从1到N编号。编号为1的人从1开始喊数,下一个人喊的数字为上一个人的数字加1。但是,当将要喊出来的数字是7的倍数或者数字本身含有7时,不能把这个数字直接喊出来&#x…...

使用阿里巴巴的图

参考链接1 引用彩色图标可参考以下链接 &#xff08;到第三步 测试图标效果 的时候 还是可以保持之前的写法&#xff1a;<i/sapn class“iconfont icon-xxx”>也会出现彩色的&#xff09; 参考链接2 阿里巴巴字体使用 也可以直接将官网的代码复制过来到页面的css区域...

【hot100-java】排序链表

链表题。 使用归并排序法。 一图解决。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; thi…...

腾讯云视立方TRTCCalling Web 相关

基础问题 什么是 TRTCCalling&#xff1f; TRTCCalling 是在 TRTC 和 TIM 的基础上诞生的一款快速集成的音视频的解决方案。支持1v1和多人视频/语音通话。 TRTCCalling 是否支持接受 roomID 为字符串? roomID 可以 string&#xff0c;但只限于数字字符串。 环境问题 Web …...

使用argparse库实现命令行参数解析的实用指南

使用argparse库实现命令行参数解析的实用指南 在现代软件开发中,命令行工具的使用越来越普遍。无论是自动化脚本、数据处理工具,还是系统管理工具,命令行参数解析都是一个不可或缺的功能。Python的argparse库提供了一种简单而强大的方式来处理命令行参数,使得开发者能够轻…...

kafka消息队列核心内容及常见问题

目录 1. 使用消息队列的目的&#xff08;优点与缺点&#xff09; 2. 常见各消息队列对比 3. kafka介绍 3.1 kafka简介 3.2 kafka特点 3.3 kafka系统架构 3.4 设置数据可靠性 3.4.1 Topic 分区副本 3.4.2 消息确认机制 4. 常见问题&#xff08;面试题&#xff09; 4.…...

电脑无线网wifi和有线网同时使用(内网+外网同时使用)

一、要求 我这里以无线网wifi为外网&#xff0c;有线网卡为内网为例&#xff1a; 一、基本信息 无线wifi&#xff08;外网&#xff09;&#xff1a;ip是192.168.179.235&#xff0c;网关是192.168.179.95有线网&#xff08;内网&#xff09;&#xff1a;ip是192.168.10.25&…...

Ubuntu22.04阿里云服务器 Gitlab搭建CICD

gitlab搭建cicd流水线教程 1、阿里云申请免费云盘 申请免费云盘用于创建gitlab 申请方法百度 2、安装gitlab-ce 更新系统&#xff1a; sudo apt update sudo apt upgrade -y 安装必要的依赖&#xff1a; sudo apt install -y curl openssh-server ca-certificates pos…...

2024最新全流程ChatGPT深度科研应用、论文与项目撰写、数据分析、机器学习、深度学习及AI绘图

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT3.5&#xff0c;将人工智能的发展推向了一个新的高度。 2023年4月&#xff0c;更强版本的ChatGPT4.0上线&#xff0c;文本、语音、图像等多模态交互方式使其…...

网络流C++

网络流问题及其应用 网络流问题是图论中的一个经典问题&#xff0c;应用于交通调度、物流配送、计算机网络等领域。它通过模型化图中的流量传递过程&#xff0c;解决从源点传递流量到汇点的最优流量分配问题。本文将介绍网络流的基本概念、几种经典算法&#xff0c;并通过一个…...

RTC -

RTC 目录 RTC 回顾 RTC 如何实现RTC制作一个时钟日历 代码编写 rtc.c完整代码 模块开发的步骤&#xff1a; 1、找文档 2、 在文档里面找通信方式&#xff0c;通信过程&#xff08;协议&#xff09; 3、代码> -- 前面学的是模块的开发&#xff0c;串口类&#xff0c;I…...

图像处理中常用的统计矩

目录 原点矩中心矩常用的统计矩偏度&#xff08;Skewness&#xff09;定义解释 峰度&#xff08;Kurtosis&#xff09;定义解释 统计矩的应用MATLAB相关函数 原点矩&#xff08;Moment about the Origin&#xff09;和中心矩&#xff08;Central Moment&#xff09;是概率论和数…...

Ubuntu 详解| Ubuntu ssh| Ubuntu apt命令大全| Ubuntu性能优化| Ubuntu换镜像源

Ubuntu 是Debian开源linux系统体系下的子分支之一 Debian-ubuntu 和它一样的还有 kali&#xff08;一款渗透测试软件&#xff09; Debian-kali 小白参考 &#xff1a;Centos 7.9 安装 图解版 小白必看 最新_centos7.9-CSDN博客文章浏览阅读2.5k次&#xff0c;点赞…...

Linux安全命令(Linux Security Commands)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…...