Retrieval Augmented Thoughts(RAT):检索增强思维,实现长视野生成中的上下文感知推理

论文地址:https://arxiv.org/pdf/2403.05313.pdf

原文地址:rat-retrieval-augmented-thoughts

Github:Implementation of RAT 

2024 年 3 月 14 日

介绍

让我首先从一些一般性观察开始......

在生成式人工智能应用程序中实现效率与生成响应的准确性之间存在着紧张关系。

GenApp 的效率是指应用程序响应迅速,没有任何延迟或超时。应用程序的执行路径中也不应该有太多的组件和检查。

准确性指的是生成式人工智能应用程序的输出与用户期望之间的一致性。

GenApp 架构通常通过采用多个 LLM 交互和推理过程来实现准确性。除此之外,比较不同的响应并选择最佳响应。

显然,当引入这些措施来实现高精度时,这会损害效率。

因此,需要在效率和准确性之间取得平衡。

RAT:两步法

检索增强思维(RAT)是一种简单而有效的提示策略,结合了思维链(CoT)提示和检索增强生成(RAG)来解决长期推理和生成任务。

因此,LLM产生的零样本思想链(CoT)生成与 RAG 相结合。将想法作为疑问,并因果性地修改想法并逐步生成响应。

RAT是个zero-shot提示方法,并表现出显着的优势:

  1. vanilla CoT prompting
  2. RAG, and
  3. Other baselines

具有挑战性的代码生成、数学推理、具体任务规划和创意写作任务。

结果表明,将 RAT 与这些LLM相结合比普通 CoT 提示和 RAG 方法具有更大的优势。~来源

步骤1

首先,LLM 生成的初始零样本 CoT 提示与原始任务提示一起用作查询,以检索有助于修改可能有缺陷的 CoT 的信息。

步骤2

其次,不是使用完整的 CoT 进行检索和修改并立即生成最终响应,而是采用渐进式方法,LLM在 CoT(一系列子任务)之后逐步生成响应。

仅根据任务提示检索到的信息、当前和过去的 CoT 来修改当前的思维步骤。

该策略类似于人类的推理过程:

在解决复杂的长期问题时,利用外部知识调整逐步思维。~来源

长期操作

长期操作任务需要对一系列离散动作及其相关的连续控制参数进行联合推理。

因此,使用零样本 CoT 提示和长期生成任务面临着挑战。这些生成任务需要多步骤和上下文感知推理。

事实上有效的中间想法对于成功完成这些任务至关重要。

考虑下图,显示了检索增强思想 (RAT) 的管道。给定一个任务提示(如图中的I所示),RAT 从 LLM 在零样本中产生的初始逐步想法(𝑇,𝑇,···,𝑇)开始。

有些思维步骤(比如图中的𝑇1)可能会因为幻觉而出现缺陷。

另一方面,可以使用来自外部知识库的 RAG 对每个思维步骤进行迭代修订。

来源

考虑下图,该图说明了如何将不同的 LLM 推理方法用于创意生成任务。

红色文本表示LLM生成的文本中存在错误或错觉,而绿色文本表示正确生成。

没有 RAG 的方法通常会生成带有幻觉的错误信息,经典 RAG 与结构松散的检索内容高度相关,而 RAT 生成的文本在准确性和完整性方面表现最佳。

不同LLM推理方法在复杂具体规划、数学推理、代码生成和创意生成任务上的定量性能比较。RAT 在所有任务上都优于所有基线。

来源

结束语

最近我在 Agentic RAG 上写了很多文章;我相信 LlamaIndex 创造了这个短语。Agentic RAG 的概念是将基于 LLM 的自治代理与 RAG 相结合。

因此,Agentic RAG代理可以访问多个低阶子代理,这些子代理也可以称为RAG子工具。

这项研究概念化了 RAT(检索增强思维)的概念,感觉它与 Agentic RAG 方法是一致的。

因此,设计和构建生成应用程序的不同方法会融合在一起。

正如提示的复杂性不断增加一样,RAG 的复杂性也在增加。考虑下图,我们从静态提示演变为模板,一直以提示为核心的自主代理为核心。

RAG 也发生了同样的情况,围绕核心 RAG 实施进行创新。这一创新显然增加了 RAG 实现的结构和复杂性。

正如我所提到的,Agentic RAG 将成为事实上的标准。

论文解读

这篇论文介绍了检索增强思维(RAT)方法如何通过迭代式地利用相关信息对大型语言模型(LLMs)生成的链式思考(CoT)进行修正,从而显著提升其在长时程生成任务中的推理和生成能力,并大幅减少幻觉现象。研究者将RAT应用于GPT-3.5、GPT-4以及CodeLLaMA-7b等模型,在代码生成、数学推理、创意写作及具身任务规划等多个长时程生成任务上取得了性能上的大幅提升。例如,在代码生成方面平均评分提高了13.63%,数学推理提高了16.96%,创意写作提升了19.2%,而具身任务规划则增加了42.78%。

实验设计中,针对不同的编程挑战,论文评估了多种LLMs在生成功能性正确代码方面的精确度和可靠性。基准测试包括原始的直接生成(DIRECT)语言模型,以及基于检索增强生成(RAG)的方法,分别采用单次检索(1 shot)和多次检索(5 shots)配置。同时,还探讨了零示例CoT方法,该方法模拟逐步推理过程解决复杂问题。所有比较方法均未使用基准数据集作为上下文学习的示例以保证公平性。

为了全面评价代码生成能力,研究选取了不同容量的语言模型,如CodeLlama-7b、Chat-GPT(gpt-3.5-turbo)和更先进的GPT-4模型,并统一执行环境对模型输出进行标准化处理,确保了各模型间的一致性和可比性。

此外,RAT方法还在创意写作开放文本生成任务中进行了扩展应用,涵盖了撰写综述论文、描述人物生平等一系列任务,并采用了Google搜索引擎检索网络信息辅助LLMs生成内容,以展现RAT在提高生成内容的创新性和相关性方面的潜力。

对于像Minecraft这样的具身任务规划,研究者创建了超过100个涉及不同游戏物品的任务,并利用Minecraft Wiki和DigMinecraft网站作为LLMs的信息源,将其内容转化为Markdown格式并分割为不超过2000个令牌的小段落,嵌入计算借助于OpenAI的text-embedding-ada-002 API服务完成。评估指标不仅关注计划的可行性(由MC-TextWorld自动计算),也通过人工评级考察计划的合理性。

最后,论文展示了在多个代码生成基准测试(HumanEval、HumanEval+、MBPP、MBPP+)上,RAT相对于其他方法在多数指标上表现出色,尤其在首次尝试准确率和前五次尝试内的准确性上有显著提高,比如在HumanEval基准上,RAT使pass@1提高了20.94%,pass@5提高了25.68%。而在数学推理任务上,当部署在GPT-3.5模型上时,RAT在GSM8K和GSMHard数据集上分别提高了8.37%和31.37%的精度,总体平均改进率达到18.44%。同样,在Minecraft的开放式长时程规划任务中,RAT的表现远超其他方法,获得了最高的执行可行性和合理性评分。

总之,这篇论文详细阐述了一种迭代修订思路的技术框架——检索增强思维(RAT),该方法通过结合外部检索信息逐步完善初始生成的CoT路径,有效增强了LLMs在处理需要多步骤推理和长时程生成场景下的表现,同时减少了不实信息的产生。通过广泛的基准测试和详尽的分析,验证了RAT方法在各种自然语言生成和编程相关的任务上具有明显优势。

RAT的具体实现原理

在大型语言模型(如GPT-3.5、GPT-4或CodeLLaMA-7b)进行长时程生成任务时,采用迭代式的思考修订策略来提升模型的推理和生成质量,并降低错误推理(即“幻觉”)的可能性。具体而言,RAT方法首先利用基础模型生成初始的零示例Chain-of-Thought(CoT,即步步推导的思维链)后,对每个思考步骤逐一进行基于相关检索信息的修订。

在实施过程中,RAT借鉴了检索增强生成(RAG)技术的思想,通过集成外部知识源来增强语言模型的性能。对于代码生成和数学推理任务,研究团队使用codeparrot/github-jupyter数据集作为主要的搜索向量库;而对于Minecraft环境中的具身规划任务,则利用Minecraft Wiki和DigMinecraft网站作为信息检索来源;对于开放型的创意写作任务,则运用互联网搜索引擎(如Google)获取与查询相关的信息。

RAT的核心机制在于动态调整和细化检索查询,依据当前及过往的推理步骤有针对性地查找并整合相关信息。不同于简单地使用问题本身作为检索查询的传统RAG方法,或者仅利用整个语言模型产生的推理链条作为查询的CoT+RAG方式,RAT根据不断演进的推理思维片段优化查询,从而更加聚焦地找到并引入相关且高质量的知识内容来指导后续的生成过程。

在实验中,RAT显著提高了各个基准测试中的关键指标,例如在代码生成任务上,相较于基线方法,RAT在HumanEval和HumanEval+基准上实现了pass@1和pass@5得分的显著增长,这意味着首次生成的准确率以及前五个生成结果中有更高比例的正确答案。在数学推理任务上,应用到GPT-3.5模型时,RAT使得整体平均准确率提高了18.44%,并且这种改进趋势在GPT-4上依然存在。

通过对案例的深入分析,可以发现RAT在解决诸如Minecraft中的具身规划任务时能够更有效地整合来自多个碎片化信息源的知识,通过持续的检索和思考迭代,确保生成的计划包含所有必需步骤及其相关物品的完整理解,从而大大提高了计划的有效性和执行成功率。而在创意写作任务中,RAT也能够减少语言模型生成内容中的错误细节,确保生成的内容更加准确和可信。

总之,RAT通过迭代式地结合外部检索信息对模型内部生成的每一步推理进行修正和补充,以此强化模型在复杂、长时程生成任务中的上下文感知推理能力,从而带来显著的性能提升和精准度增加。

RAT动态调整和细化检索的过程

在长时程生成任务中,RAT首先会利用大型语言模型(如GPT-3.5或GPT-4)生成一个初步的、基于零样本提示的链式思维(Chain-of-Thought,CoT)。在这个基础上,RAT系统采取一种迭代式的策略,针对每一个已生成的思维步骤,它会针对性地检索与任务查询、当前思维步骤以及之前的所有思维步骤相关的外部信息。

在实际操作中,相比于直接使用问题本身作为检索查询的传统做法(对应于RAG-1方法),或是使用整个语言模型产出的推理路径作为查询(CoT+RAG方法),RAT采用了一个更为灵活且动态的方法。它不是一次性地使用整个推理路径作为检索请求,而是将不断演变的部分推理内容作为查询输入,每次只针对下一步或某一特定环节的推理需求去寻找最相关的信息。

这样做的好处在于,每一次的检索都更专注、更具针对性,有助于捕获更准确和适用的信息,进而用于识别并纠正当前推理步骤中可能存在的错误或不足之处。这一过程中,RAT不仅提升了检索内容的相关性,还极大地提高了最终生成答案的准确性和完整性。

实验结果显示,无论是在HumanEval还是HumanEval+基准测试上,RAT在pass@1(首次命中正确答案的比例)和pass@5(前五个生成答案中出现正确答案的比例)两个重要指标上,均超越了基线方法和其他对比方法。

此外,RAT还通过比较因果推理与非因果推理两种策略的影响,进一步证明了迭代细化检索查询的价值。在实践中,采用因果推理的方法(即基于前一阶段推理结果递归地调整和执行下一阶段的检索与推理)显著优于仅依赖初始推理思想直接检索所有必要步骤的非因果方法。因果推理方式在基准测试中的优异表现突显了顺序推理和动态知识检索相结合的优势,尤其是在解决需要长期推理和精准信息整合的复杂任务时。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vulhub中Apache Shiro 认证绕过漏洞复现(CVE-2010-3863)

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 在Apache Shiro 1.1.0以前的版本中,shiro 进行权限验证前未对url 做标准化处理,攻击者可以构造/、//、…

YOLOV9训练自己的数据集

1.代码下载地址GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information 2.准备自己的数据集 这里数据集我以SAR数据集为例 具体的下载链接如下所示: 链接:https:/…

广州市高质量发展大会,东纺企服系统提出数智化新思路

近日,广州市海珠区凤阳街道高质量发展大会暨企业联盟沙龙荟在海珠区珠江国际纺织城D区6楼时尚馆召开。东纺科技作为海珠区企业代表,受邀出席参与活动。 本次大会对今年的高质量发展进行亮诺和展望。海珠区委常委、区纪委书记、区监委主任杨清谦以及海珠区…

【环境搭建和安装】thingsboard二次开发环境搭建

文章目录 1.安装JAVA2.安装maven环境3.安装nodeJS4.安装git环境5.安装npm依赖关系 提示: 1.我自己下载存放路径比较混乱,下载的文件尽量在一个新建的文件夹存放,目录全英更好。 2.环境是为了开源物联网平台,环境搭建和安装部署是成…

ETH网络 之 Gas花费实例

求关注,关注我,一起进入Web3的世界 前文回顾 GasBaseFee & PriorityFee部署ERC-721 交易Gas解析 部署NFT的交易 钱包Gas解读 费用清单 ItemValueDesc基础费用(BaseFee)0.102349622 Gwei基础费用是动态的,我们发送交易时是不确定的&…

想进阿里?先了解这个!@SpringMybatis注解面试解析

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”! 嗨,大家好!我是小米,今天要和大家聊一聊阿里巴巴面试题中的一个热门话题:@SpringMybatis注解。如果你是一个对技术充满好奇心的小伙伴,那么这篇文章一定会给你带来不少启发和收获! 在开始…

1、编写jsp文件,熟悉jsp页面的基本结构H编写看电影2、编写jsp文件,熟悉jsp动作标记、param传值的使用,计算机三角形的面积。

1、看电影 watchMovie.jsp: <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert ti…

数据分析能力模型分析与展示

具体内容&#xff1a; 专业素质 专业素质-01 数据处理 能力定义•能通过各种数据处理工具及数据处理方法&#xff0c;对内外部海量数据进行清洗和运用&#xff0c;提供统一数据标准&#xff0c;为业务分析做好数据支持工作。 L1•掌握一…

41 物体检测和目标检测数据集【李沐动手学深度学习v2课程笔记】

目录 1. 物体检测 2. 边缘框实现 3.数据集 4. 小结 1. 物体检测 2. 边缘框实现 %matplotlib inline import torch from d2l import torch as d2ld2l.set_figsize() img d2l.plt.imread(../img/catdog.jpg) d2l.plt.imshow(img);#save def box_corner_to_center(boxes):&q…

小白向软件开发教学实战:企业培训APP的设计与开发

随着信息技术的迅猛发展&#xff0c;软件开发已经成为了一个日益重要的技能。无论是个人还是企业&#xff0c;都希望能够掌握一定的软件开发能力&#xff0c;以满足自身的需求。尤其是在企业培训领域&#xff0c;定制化的软件应用能够提高培训效率和质量。 一、需求分析 在设计…

Vue.js前端开发零基础教学(二)

目录 前言 2.1 单文件组件 2.2 数据绑定 2.2.2 响应式数据绑定 2.3 指令 2.3.1 内容渲染指令 2.3.2 属性绑定指令 ​编辑 2.3.3 事件绑定指令 2.3.4 双向数据绑定指令 2.3.5 条件渲染指令 2.3.6 列表渲染指令 2.4 事件对象 2.5 事件修饰符 学习目标&am…

#Linux(帮助手册)

&#xff08;一&#xff09;发行版&#xff1a;Ubuntu16.04.7 &#xff08;二&#xff09;记录&#xff1a; &#xff08;1&#xff09;键入命令man man查看手册目录&#xff08;按q退出&#xff09; &#xff08;2&#xff09;查看手册需要先安装依赖包&#xff08;root权限安…

【spring】@ConditionalOnResource注解学习

ConditionalOnResource 介绍 ConditionalOnResource 是Spring框架中的一个条件化注解&#xff0c;它允许你根据类路径中是否存在指定的资源来决定是否加载特定的Bean定义或配置类。这个注解可以用于类级别或方法级别。 具体Conditional使用请看这篇文章【spring】Conditional…

【漏洞复现】4. Gitlab exiftool远程命令执行漏洞(CVE-2021-22205)复现与分析

文章目录 1. 预备知识2. 漏洞复现2.1 漏洞介绍2.1.1 简介2.1.2 事件过程 2.2 漏洞原理分析2.3 漏洞复现2.3.1 靶场搭建2.3.2 漏洞测试2.3.3 漏洞利用2.3.4 POC分析 2.4 漏洞修复 1. 预备知识 GitLab是一个基于Web的Git仓库管理工具&#xff0c;它提供了完整的DevOps平台&#x…

通俗理解自注意力机制

自注意力机制&#xff08;Self-Attention Mechanism&#xff09; 是一种用于处理序列数据的机制&#xff0c;最初被引入到神经网络模型中&#xff0c;用于在序列数据中建立全局依赖关系。自注意力机制最常用于自然语言处理和计算机视觉领域&#xff0c;特别是在Transformer模型…

机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。 There are three things to make predictions (also called performing inference) with a PyTorch model: Set the model in evaluation mode (model.eval())Make the predictions using the inference mode context manager (…

管理能力学习笔记一:角色转身

管理能力学习是为了解决角色转身后面临的更多更复杂的的问题。初晋管理层&#xff0c;需要转变工作习惯&#xff0c;学会分配时间。 角色转身 建立“授权”意识 通过匹配工作内容与下属员工能力&#xff0c;分配工作&#xff0c;避免陷入下属能力不足 -> 不愿授权 -> 下…

vue3通过el-cascader实现动态菜单切换页面

如果只有一级菜单只会显示一个按钮 <div style"width: 100%; margin-top: 10px; display: flex; align-items: center; border-bottom: 1px solid #ccc;"><template v-for"(menu, index) in cascaderData" :key"index"><el-casc…

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消

Source Insight关于复制一段代码会自动添加空格或者Tab键的配置取消&#xff0c;这个情况在我们复制代码的时候对格式非常不友好&#xff0c;解决办法如下。 如下&#xff0c;我们可以设置相关配置&#xff1a; 设置完成后&#xff0c;然后再去复制&#xff0c;可以看到就没有相…

基于C/C++的easyx实现贪吃蛇游戏

文章目录&#xff1a; 一&#xff1a;运行效果 1.演示 2.思路和功能 二&#xff1a;代码 文件架构 Demo 必备知识&#xff1a;基于C/C的easyx图形库教程 一&#xff1a;运行效果 1.演示 效果图◕‿◕✌✌✌ 基于C/C的easyx实现贪吃蛇游戏运行演示 参考&#xff1a;【C语…