【AI论文精读13】RAG论文综述2(微软亚研院 2409)P5-可解释推理查询L3

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


P1,P2,P3,P4

五、可解释推理查询(L3)

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

5.1 概述

在这一部分(P5)及下一部分(P6)中,我们将探讨需要外部数据来提供推理依据才能解决的问题。这类查询不仅要求理解事实内容,还需要能够理解并应用与数据上下文相关的领域特定推理依据。这些查询可根据推理依据的性质分为两类:基于可解释推理的查询和基于隐藏推理的查询。

可解释推理查询(Interpretable Rationale Queries) 是基于外部数据提供明确推理依据的一类相对简单的查询。处理这类查询的辅助数据通常包括明确的解释,展示了解决问题的思维过程。这类数据可以有多种形式进行组织:

  • 纯文本:文本描述是呈现可解释推理的最常见形式。这些文本可能包括专门的或官方的文件,如手册或指南,以及特定领域的手册或操作指南。此类文本阐述了在复杂场景中进行决策的推理过程。例如,FDA 指南中描述了制药厂处理的指导原则,或医生使用的药物指南,展示了像FDA官员或医生在处理特定案例时的思路。

  • 结构化指令:有时,推理关系或决策路径会以结构化的方式呈现出来。这些推理可以理解为文本驱动的Moore机文本驱动的Mealy机。在计算理论中,Moore机是输出值仅由当前状态决定的有限状态机【4】。状态转移条件通常通过文本表达,LLM需要对这些文本进行解释,而不像传统程序依赖原生代码运行。例如,考虑一个客户支持代理按照手册处理用户的产品更换或退款请求。Mealy机则是由当前状态和输入共同决定输出值的有限状态机【5】。区别在于,某些动作(如API调用)不仅由状态决定,还取决于与从前一状态转移相关的文本消息。自然而然地,这些领域特定的推理依据可以以工作流程、决策树或伪代码等形式呈现。

以下是一些此层次查询的示例:

  • 如何诊断和治疗有特定症状描述的胸痛患者?(给定胸痛管理指南)
  • 在现实生活场景中,如何回应用户的问题?(给定一个客户服务工作流程)

图4的解释

推理查询的示例
在这里插入图片描述
图4展示了两种类型的推理查询所依赖的外部数据类型可解释推理更依赖清晰的、结构化的文本和规则,而隐藏推理则需要从历史数据或复杂的知识体系中挖掘出推理依据。

1. 可解释推理(Interpretable Rationales)

  • 纯文本(Plain Texts)

    • 包含详细指导或规则的文本,例如:
      • 手册或指南(Handbooks or Guidelines):如医疗指南、法规指南等。
      • 操作手册(Operation Manual)
  • 结构化指令(Structured Instructions)

    • 这些是更具体的推理逻辑,通常以结构化的形式呈现,例如:
      • 工作流程图(Workflow Diagram)
      • 伪代码(Pseudocode)
      • 决策树(Decision Tree):表示决策过程中的每一步选择。

2. 隐藏推理(Hidden Rationales)

隐藏推理的详细解释见P6

  • 领域内数据(In-domain Data)

    • 历史记录(Historical Records):包含过去事件、决策或操作的详细记录,模型可以从中挖掘推理依据。
    • 模拟数据(Simulated Data):通过模拟实验或测试数据来推断出潜在的推理过程。
  • 初步知识(Preliminary Knowledge)

    • 这些是经过归纳或验证的知识体系,模型通过这些体系来完成推理任务:
      • 综合公理系统(Comprehensive Axiomatic Systems):指那些经过严格验证的公理或理论体系。
      • 经验归纳知识(Empirically Induced Knowledge):基于经验归纳出的知识,通常来源于大量的实证数据。
      • 已验证的中间结论(Verified Intermediate Conclusions):从初步数据或逻辑中推导出的中间结论,用来支持复杂推理。

5.2 挑战与解决方案

在处理可解释推理查询时,主要的挑战在于如何将领域特定的推理依据以可理解的方式集成到大型语言模型(LLMs)中。这一类查询不仅需要外部数据,还需要将推理逻辑与决策过程清晰呈现。以下是主要的挑战及对应的解决方案:

1. 提示词调优成本高

  • 挑战提示词调优(Prompt Tuning) 往往需要耗费大量时间和计算资源。每个不同的查询通常需要不同的背景知识和决策标准,进而需要设计针对性的提示词示例。虽然手动设计的提示词可以产生很好的效果,但这种方法非常耗时,且需要大量人工投入。此外,针对不同查询生成定制化提示词的训练模型过程也会带来较大的计算负担。
  • 解决方案:为了降低提示调优的成本,可以使用自动化提示词生成工具或框架,如基于零样本学习少样本学习的模型,能够在更少的示例下生成有效的提示词。某些研究还提出了自适应提示调优算法,能够根据模型反馈进行动态调整。这些方法可以在一定程度上减少对人工设计的依赖并提高效率。

2. 可解释性有限

  • 挑战:LLMs对提示词的反应通常不透明。在许多情况下,研究人员无法访问LLMs的内部参数,这使得理解不同提示词对模型行为的具体影响变得复杂。由于这种透明度的缺失,研究人员很难一致性地理解和验证LLM对不同提示词的响应的可解释性。
  • 解决方案:为了提高提示词和模型行为的可解释性,研究人员可以使用注意力机制(Attention Mechanism) 等可视化工具来分析模型如何处理提示词和输入。此外,开发模型解读工具或集成现有的解释框架(如LIMESHAP)也可以帮助识别LLM在响应提示词时重点关注的部分,从而更好地理解模型的决策过程。

5.3 提示调优(Prompt Tuning)

对于可解释推理查询,关键问题在于如何有效地将外部数据中的推理依据整合到LLM中,并确保模型能够准确遵循这些依据来做出反应。

一些解决方案:

Text2MDT【112】展示了从医疗指南和教科书中自动提取医疗决策树的两种方法,帮助梳理冗长医疗文本中的逻辑链条,使推理更加清晰。MedDM【113】则引入了一种可以被LLM执行的临床指导树(CGT)格式,用于进行多轮对话推理。InstructRec【114】专注于在推荐系统中利用LLM的能力,通过自然语言描述用户偏好、任务和上下文,打造基于语言的推荐系统。

提示调优技术:

简单地将推理依据以自然语言提示的形式嵌入LLM中,往往不能取得最佳效果,而且手动设计提示非常耗时。因此,提示调优技术应运而生,专门用于提升LLM根据特定推理依据作出响应的能力。

  1. 基于强化学习的提示调优

    • TEMPERA框架【115】:该框架通过将有限的指令、例子和词汇器(verbalizers)整合到强化学习的操作空间内,以LLM生成正确响应的概率作为奖励,引导模型在多个数据集上探索最佳的提示配置。
    • Rlprompt【116】:同样采用强化学习方法,训练一个适配器来帮助较小的语言模型生成最佳的提示,根据LLM响应的准确性反馈进行调优。
  2. 定向刺激提示(Directional Stimulus Prompting)
    这一策略利用LLM在下游任务上的表现作为奖励机制,训练模型提取和使用定向刺激(如特定的提示或关键词)作为提示,从而确保LLM的动作更符合预期结果。

  3. 基于离散提示空间的优化

    • GrIPS【117】:使用一个小数据集作为评分集,通过尝试各种提示修改(包括删除、交换、释义和添加)来快速、有效地找到最优提示配置。
  4. LLM辅助的提示调优
    最近的进展 【118, 119】还显示出使用LLMs自身来促进提示调优的趋势。

    • OPRO【120】:通过LLM来生成基于历史数据和性能指标的新提示解决方案,并对这些提示进行评分,简化了提示调优过程。
    • Reflexion框架【121】:引入了基于语言反馈的提示调优方法,利用LLM分析输出结果,并将反馈存储在一个情景记忆缓冲区中,从而在未来的交互中优化决策过程。

5.4 思维链提示(CoT Prompting)

CoT(Chain-of-Thought)思维链提示 旨在让大语言模型(LLM)参与复杂的推理链条,这是与一般事实查询推理不同的过程。对于涉及复杂推理的场景,诸如思维链(Chain-of-Thoughts)【122】、思维树(Tree-of-Thoughts)【123】或思维图(Graph-of-Thoughts)【124】等方法在此类情况下非常有效。

1. 手动设计 CoT 提示

对于经过充分研究并具有广泛适用性的场景,手动设计 CoT 提示成为一种可行的解决方案。例如,Ji et al. (2023)【125】提出了一种自我反思的方法,该方法将知识获取与答案生成相结合。他们通过使用外部工具并设计提示,构建了三种自我反思循环:事实知识获取循环(Factual Knowledge Acquiring Loop)知识一致性答案循环(Knowledge-Consistent Answering Loop)、以及问题蕴涵答案循环( Question-Entailment Answering Loop),从而将外部推理融入到模型的处理过程中。

此外,Wu et al. (2024)【126】对临床记录中的错误类型进行了手动分析,并开发了三种不同的 CoT 提示来引导 GPT-4 模型【127】,聚焦于干预、诊断和管理错误。这种有针对性的提示帮助自动化执行错误检测、跨度识别和临床记录的修正任务。

2. 自动化 CoT 提示生成

尽管手动设计 CoT 提示非常有效,但需要大量的人力和时间成本。为了解决这一问题,Automate-CoT【128】提出了一种从最小标注数据集生成扩展推理链的方法。这种方法使用了一种方差缩减策略(variance-reduced policy gradient),以评估每个 CoT 链的重要性,帮助选择最有效的提示组合。

3. 利用 CoT 提示构建基于代理的工作流

另一种利用 CoT 提示的方式是围绕 LLM 构建代理工作流。这通常需要开发一个更为全面的系统,以应对各种现实世界中的场景。根据 Wang et al. 的研究,此类系统可大致分为四个模块:画像模块(Profiling)记忆模块(Memory)规划模块(Planning)行动模块(Action)【129】。可解释推理(Interpretable Rationale)可以以不同的形式集成到多个模块中,使代理能够根据环境或人类反馈进行自适应调整和迭代。

4. 自动评估推理链质量

最近的研究进展如 LLM Reasoners【130】和 SocREval【131】聚焦于自动评估推理链的质量。这些方法不仅有助于构建鲁棒的数据增强型 LLM 应用,还提高了系统对复杂推理任务的处理能力。

5. 基于可解释推理的应用

基于可解释推理(Interpretable Rationale) 的应用涵盖了多个领域。例如,CoML【132】将自动化机器学习(AutoML) 的知识作为提示集成到 LLM 中,动态检索历史实验记录中的有用信息,并将这些元素组合起来,赋予 LLM 解决新任务中的机器学习问题的能力。MetaGPT【133】开发了一种用于软件开发的多代理系统,其中项目的不同利益相关者分别被表示为一个代理。这种设置使得多个代理能够根据现实中的工作流程进行协作,有效地完成软件开发任务。

类似的复杂代理系统也被设计用于客户服务【134】和医学问答【135】等领域,在这些领域中,代理被专门设计来处理特定类型的查询,比如理解复杂的用户请求或提供准确的医学信息。这些系统不仅提升了互动质量,还提高了响应的效率和准确性,展示了 LLM 在结合完善的代理工作流设计时的多样性和潜力。


未完待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/445614.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java生成日历数据列表并按日历格式导出到excel

日历格式输出 日历数据列表导出封装日历格式实体类效果 日历数据列表 /**** 封装日历数据* param year 年份* param month 月份*/public List<InspectionDailyStaffPlanCalendarData> selectCalendarDataList(int year,int month,List<InspectionDailyStaffPlan> …

面试(十)

目录 一. 单元测试 二. FreeRTOS和裸机哪个实时性好&#xff1f; 三. 怎么判断某个程序的运行时间 四. 函数指针 五. 全局变量被线程使用冲突 5.1 使用互斥锁 5.2 使用读写锁 5.3 使用原子操作 六. 局部变量没有初始化是什么值 七. uint_8 n 255 , n等于多少 八. …

Unity UndoRedo(撤销重做)功能

需求 撤销与重做功能 思考 关于记录的数据的两点思考&#xff1a; 记录操作记录影响显示和逻辑的所有数据 很显然这里就要考虑取舍了&#xff1a; 记录操作 这种方案只需要记录每一步的操作&#xff0c;具体这个操作要怎么渲染和实现出来完全需要自己去实现&#xff0c;这…

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…

手撕数据结构 —— 栈(C语言讲解)

目录 1.认识栈 什么是栈 栈的示意图 2.如何实现栈 3.栈的实现 Stack.h中接口总览 具体实现 结构的定义 初始化栈 销毁栈 入栈 出栈 取栈顶元素 获取有效元素的个数 判断栈是否为空 4.完整代码附录 Stack.h Stack.c 1.认识栈 什么是栈 栈是一种特殊的线性表…

学视频剪辑需要电脑吗 学视频剪辑需要什么条件

态度决定成败&#xff0c;学剪辑亦是如此。我们都在学习剪辑的道路上寻找答案&#xff0c;电脑就像指引答案的工具&#xff0c;但它本身并不是答案。所以&#xff0c;好电脑不等于好剪辑师。想要学好视频剪辑&#xff0c;你只需要一个态度端正的自己。有关学视频剪辑需要电脑吗…

Spring Cloud Stream 3.x+kafka 3.8整合

Spring Cloud Stream 3.xkafka 3.8整合&#xff0c;文末有完整项目链接 前言一、如何看官方文档(有深入了解需求的人)二、kafka的安装tar包安装docker安装 三、代码中集成创建一个测试topic&#xff1a;testproducer代码producer配置&#xff08;配置的格式&#xff0c;上篇文章…

基于SpringBoot+Vue的疫苗预约接种管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

DELL R720服务器阵列数据恢复,磁盘状态为Foreign

服务器无法正常进入系统&#xff0c;物理磁盘状态变成了Foreign 虚拟磁盘状态变成了Failed 阵列已经丢失了&#xff0c;需要手工强制导入外部配置 单击 Main Menu 屏幕上的 Configuration Management。单击 Manage Foreign Configuration 单击 Preview Foreign Configurati…

60. 排列序列【回溯】

文章目录 60. 排列序列解题思路Go代码 60. 排列序列 60. 排列序列 给出集合 [1,2,3,...,n]&#xff0c;其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况&#xff0c;并一一标记&#xff0c;当 n 3 时, 所有排列如下&#xff1a; “123”“132”“213”“231”“31…

VMDK 0X80BB0005 VirtualBOX虚拟机错误处理-数据恢复——未来之窗数据恢复

打开虚拟盘文件in7.vmdk 失败. Could not get the storage format of the medium 7\win7.vmdk (VERR_NOT_SUPPORTED). 返回 代码:VBOX_E_IPRT_ERROR (0X80BB0005) 组件:MediumWrap 界面:IMedium {a a3f2dfb1} 被召者:IVirtualBox {768 cd607} 被召者 RC:VBOX_E_OBJECT_NOT_F…

Qt基础对话框QDialog

模态显示对话框 调用exec方法可以使得对话框模态显示&#xff0c;但是一个阻塞函数 [virtual slot] int QDialog::exec() 对话框的三个槽函数 accept [virtual slot] void QDialog::accept(); reject [virtual slot] void QDialog::reject() done [virtual slot] void QDia…

Nginx从入门到实战(八):版本平滑无感知,不停机升级

一、查看旧版本信息 可以通过nginx -V命令&#xff0c;来查看当前nginx的版本信息&#xff0c;和配置参数。 [rootnb001 sbin]# nginx -V -bash: nginx: command not found [rootnb001 sbin]# ./nginx -V nginx version: nginx/1.20.1 built by gcc 4.8.5 20150623 (Red Hat …

Spring Boot读取resources目录下文件(打成jar可用),并放入Guava缓存

1、文件所在位置&#xff1a; 2、需要Guava依赖&#xff1a; <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>23.0</version></dependency>3、启动时就读取放入缓存的代码&#xf…

gaussdb hccdp理论考试总结

判断题1分&#xff0c;单选题2分&#xff0c;多选题3分 共50道题&#xff0c;满分100分&#xff0c;60分通过。 理论考试知识点占比&#xff1a; 理论考试参考策略&#xff1a; 1.7张PPT看一遍 2.思考题做一遍 3.模拟题做一遍 4.7张PPT再看一遍 5.考题知识点过一遍 6.考试前一…

ZYNQ使用XGPIO驱动外设模块(前半部分)

目录 目录 一、新建BD文档&#xff0c;添加ZYNQ处理器 1.BD文档: 2.在Vivado中&#xff0c;BD文件的生成过程通常包括以下步骤&#xff1a; 1)什么是Tcl Console: 3.PL部分是FPGA可编程逻辑部分&#xff0c;它提供了丰富的IO资源&#xff0c;可以用于实现各种硬件接口和功…

QT 连接SQL SEVER 之后无法读取浮点和整型

1、ODBC Driver 的版本要对应上。 if (!strDbDirPath.isEmpty())m_strDbDirPath strDbDirPath;m_strDatabaseName strDatabaseName;if (m_database.isOpen() || m_bConnected){qDebug() << QString("QODBC:已经连接成功&#xff01;") << "\n&quo…

Power Pivot, PowerView和PowerBI在产品宣传,功能,及本质上有什么不同?

微软的Power Pivot、Power View和Power BI是三个不同的数据分析和商业智能工具&#xff0c;它们在产品宣传、功能和本质上有所区别&#xff0c;并且各自适用于不同的场景。 1. Power Pivot Power Pivot是一种数据建模技术&#xff0c;用于在Excel中创建数据模型&#xff0c;建…

Halcon 3D应用 - 胶路提取

1. 需求 本文基于某手环&#xff08;拆机打磨处理&#xff09;做的验证性工作&#xff0c;为了项目保密性&#xff0c;只截取部分数据进行测试。 这里使用的是海康3D线激光轮廓相机直线电机的方式进行的高度数据采集&#xff0c;我们拿到的是高度图亮度图数据。 提取手环上的胶…

Java面向对象编程--高级

目录 一、static关键字 1.1 静态变量 1.2 静态内存解析 1.3 static的应用与练习 二、单例设计模式 2.1 单例模式 2.2 如何实现单例模式 三、代码块 3.1 详解 3.2 练习&#xff0c;测试 四、final关键字 五、抽象类与抽象方法 5.1 abstract 5.2 练习 六、接口 6.…