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

news2024/10/27 13:31:20

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.coloradmin.cn/o/2210054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习记录:js算法(六十二):单词搜索 II

文章目录 单词搜索 II思路一思路二 单词搜索 II 给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”…

crashrpt3 开源项目的Vs 2022 C++20及其以上的编译

1. 首先从github 下载源代码 crashrpt3 2. 用CMake Gui 编译成vs studio 工程文件 2.1 点击 config 按钮 2.2 依次点击 Generate 按钮、Open Project 按钮.之后vs 2022 会打开编译好的sln工程文件 3.全选解决方案里面的所有项目,设置C语言标准,我这里设置是最新C,即启用的是…

Solidity基础语法

Solidity的在线编辑器:https://remix.ethereum.org/ 一、合约结构 1、SPDX许可标识:指定代码的开源许可 2、pragma指令:声明Solidity版本 3、导入语句:引入其他合约或库 4、合约声明:使用contract关键字 5、状态变量&…

【关系模型】关系完整性约束

按照上面的框架我们已经讲了关系数据结构还有关系操作,今天来补充这一章的关系完整性约束 关系完整性约束 完整性约束 完整性约束可以保证数据的一致性和元组的唯一性 实体完整性约束 比如在学生表中,每一个元组都应该是唯一并且元组之间是可以区分…

JavaScript(Web APIs 作用和分类,DOM数是什么,document是什么,根据css选择器来获取DOM元素,修改DOM元素的方式,边量声明)

变量声明 变量声明有三个 var let 和 const建议: const 优先,尽量使用const,原因是: const 语义化更好 很多变量我们声明的时候就知道他不会被更改了,那为什么不用 const呢? 实际开发中也是,…

【unity框架开发8】unity场景Scene的使用, 如何封装一个场景管理器

文章目录 一、场景基本操作1、加载切换场景2、获取场景信息3、激活场景4、场景基本属性获取5、已加载场景个数6、获取场景中所有物体7、创建新场景8、卸载销毁场景 二、使用协程方法来异步加载场景1、AsyncOperation相关的代码应写在一个协同程序中。2、allowSceneActivation加…

AI深湖DeepLate人工智能的数据集格式开源项目

人工智能的数据集格式 文档 • 入门 • API 参考 • 例子 • 博客 • Slack 社区 • Twitter(推特) 用其他语言阅读这篇文章: English 深湖 Deep Lake Deep Lake 是一种数据集格式,提供简单的 API 以用于创建、存储和协作处理任何规模的…

Spring Security 与 OAuth 2.0 登录实现指南

文章目录 一、项目概述二、环境准备三、创建GitHub OAuth应用四、项目依赖配置五、配置OAuth 2.0六、创建控制器七、创建视图八、运行应用九、用户界面展示十、总结 在现代的Web应用中,安全性是一个不可忽视的因素。OAuth 2.0作为一种流行的授权框架,提供…

浅析主流监控告警系统基本架构和原理

浅析主流监控告警系统基本架构和原理 一,监控系统的作用和目前主流监控系统 1,作用:监控系统一般有以下这几个作用 实时采集监控数据:包括硬件、操作系统、中间件、应用程序等各个维度的数据。实时反馈监控状态:通过…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现。 利用大语言模型生成PPT文件的SpringBoot Web应用,主要功能是自动化创建演示文稿,适用于快速制作演示材料,特色在于其高效的模板处理和文本替换技术。 点击视频观看…

Python入门:如何在Python中优雅地书写多行字符串!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 多行字符串📒📝 什么是多行字符串?📝 三重引号📝 字符串连接📝 反斜杠⚓️ 相关链接 ⚓️📖 介绍 📖 在编程过程中,时常会遇到需要使用多行字符串的场景。例如,在编写长参数、描述文本或代码文档时,多行字符串…

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

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

centos7 Oracle 11g rac 静默安装(NFS配置共享存储)

1.环境信息准备 注意&#xff1a; 在配置网络时&#xff0c;Oracle RAC的每个节点必须具有至少两个以上的网卡&#xff0c;一张网卡对外提供网络服务&#xff0c;另一张网卡用于各个节点间的通信和心跳检测等。在配置RAC集群的网卡时&#xff0c;如果节点1的公共接口是eth0&…

随机变量及其分布

定义 1.随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。样本空间中的每个结果都对应于随机变量的一个值。随机变量的值可以是离散的&#xff0c;也可以是连续的。随机变量通常用大写字母表示&#xff0c;如 X、Y 或 Z。 2.随机变量和事…

难点:Linux 死机定位(进程虚拟地址空间耗尽)

死机定位(进程虚拟地址空间耗尽) 一、死机现象 内存富裕,但内存申请失败。 死机时打印: 怀疑是: 1、内存碎片原因导致。 2、进程虚拟地址空间耗尽导致。 3、进程资源限制导致。 二、内存碎片分析 1、理论知识:如何分析内存碎片化情况 使用 /proc/buddyinfo: /proc/…

Java-sec-code学习2

Java-Sec-Code学习1-文件上传漏洞 case1 url: http://127.0.0.1:8080/file/any 这是一个典型的上传页面&#xff0c;我们尝试上传一个文件试试看。 直接上传一个jsp文件&#xff0c;发现可以直接上传&#xff0c;非常顺利。这意味这后端和前端都没有对文件类型进行任何限制。…

[旧日谈]关于Qt的刷新事件频率,以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。

[旧日谈]关于Qt的刷新事件频率&#xff0c;以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。 最近在开发的时候&#xff0c;发现一个依赖事件来刷新渲染的控件会导致程序很容易异常和崩溃。 当程序在运行的时候&#xff0c;其实软件本身的负载并不高&#xff0c;所以…

【LeetCode每日一题】——724.寻找数组的中心下标

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 724.寻找数组的中心下标 四【…

python基础路径的迁移

本人未安装anaconda或pycharm等&#xff0c;仅安装了某个python环境&#xff0c;因此以下方法仅针对基础python环境的迁移&#xff0c;不确保其他软件或插件正常运行 第一步将原python路径的整个文件夹剪切到新的路径下 第二步修改系统环境变量&#xff0c;将原来的python路径…