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

【LLM之RAG】RAT论文阅读笔记

研究背景

近年来,大型语言模型(LLMs)在各种自然语言推理任务上取得了显著进展,尤其是在结合大规模模型和复杂提示策略(如链式思维提示(CoT))时。然而,LLMs 在推理的事实准确性方面存在越来越多的担忧,特别是在零样本 CoT 提示和需要多步骤和上下文感知推理的长视野生成任务中。这些任务包括代码生成、任务规划、数学推理等,需要事实正确的中间思维过程来成功完成任务。

研究目标

本文探讨了如何通过信息检索迭代修改思维链显著提高大型语言模型在长视野生成任务中的推理和生成能力,同时大幅减轻幻觉现象。具体而言,提出的方法——检索增强思维(RAT),逐步修改每一步思维链,并结合检索到的相关信息,旨在改进初始零样本 CoT 生成的思维链。

相关工作

RAG: 旨在解决大型语言模型生成虚构事实的问题,通过提供从可信来源提取的相关文本,一般被用于问答(QA)任务。简单地说就是首先根据相关性找到和问题相关的内容,然后把相关的内容和用户问题拼接成 Prompt 交给大模型。然而,复杂的推理任务(例如,那些需要多步骤推理的任务)很难转化为有效的搜索查询,这导致在寻找相关文档时遇到挑战。传统上,RAG 一次性检索所有相关信息。然而,它忽略了一个事实,即很难预测在后续的推理和生成步骤中需要哪些“事实”或信息。任务提示本身几乎不足以为此提供足够的线索。

CoT:旨在提高 LLM 在需要复杂推理步骤的任务中的性能,例如多步骤的数学应用题。具体来说,CoT 提示不是直接让 LLM 生成正确答案,而是激励 LLM 首先输出中间推理步骤,这些步骤被称为“思维”。LLM 的这种行为可以通过 prompt 进行触发,比如著名的“Let’s think step by step”),或者通过在类似任务中执行少量样本示例来触发。然而,由于没有对中间思维进行直接监督,LLM 可能会因为缺乏相关的领域知识而犯错误,或者受到虚构信息的偏差。

方法论

数据处理

生成初始答案(prompt1):虽然 CoT 说自己是"step-by-step"的,但实际上是单轮的。因此需要从单轮回答中解析出有哪些步骤/思考。这里用了一个 trick,在 prompt 中让 LLM 通过换行来输出不同的 step。

生成搜索查询(prompt2):这个的流程是总结出当前文本写了什么,然后根据总结的内容去检索相关知识。prompt2 相当于生成 RAG 的 input。

根据检索到的上下文修订答案(prompt3):在 prompt3 之前,会进行 RAG 得到相关内容,然后再根据相关的内容去修订当前回答。

在这里插入图片描述

解决方案

核心思想:
利用 CoT 生成多个步骤,然后在每个步骤中加入 RAG 以减少模型幻觉并提高效果。即:RAG+CoT=RAT。

详细:
RAT 是一种着重于迭代修正模型生成思路的新方法。首先,LLM产生的初始零样本CoT以及原始任务提示将被用作查询,以检索可能有助于修改可能有缺陷的CoT的信息。其次,设计一种渐进的方法,而不是用完整的CoT进行检索和修改并立即产生最终响应,其中LLM在CoT(一系列子任务)之后逐步生成响应,并且只有当前思维步骤将根据任务提示检索到的信息、当前和过去的CoT进行修改。这种策略可以类比于人类的推理过程:在复杂的长期问题解决过程中,利用外部知识来调整我们的逐步思维。
在这里插入图片描述
案例说明:
如何在Minecraft中获得钻石剑

  1. 用户Query
    用户在Minecraft游戏中提出一个问题:“如何获得钻石剑?”

  2. 初始形态
    在接收到用户的任务提示(Query)后,模型首先进行零样本链式思维(CoT)推理。初始的思维链可能会如下生成:

T1: 获得4块木板(有误)
T2: 用木板制作工作台
T3: 挖掘钻石矿
T4: 用钻石和木棍制作钻石剑
此初始生成的思维链可能存在错误,例如第一步中的“获得4块木板”实际上应该是“获得4块木材”。

  1. 中间形态
    接下来,模型利用RAT方法,逐步修正初始的思维链。在每一步修正过程中,模型将当前的思维链步骤及其之前的步骤作为查询,检索外部知识库中的相关信息。例如:

初始生成的T1是“获得4块木板”,模型会将其作为查询的一部分,检索Minecraft的相关知识库。检索结果表明,正确的步骤是“获得4块木材”。
修正后的T1*: 获得4块木材
接着,模型继续修正下一步:

T2: 用木板制作工作台,这一步是正确的,不需要修改。
修正后的T2*: 用木板制作工作台
然后是T3和T4,同样通过检索外部信息来验证和修正步骤:

T3: 挖掘钻石矿(正确,无需修改)

修正后的T3*: 挖掘钻石矿

T4: 用钻石和木棍制作钻石剑(正确,无需修改)

修正后的T4*: 用钻石和木棍制作钻石剑

  1. 最终形态
    经过一系列逐步修正后,最终的思维链如下:

T1*: 获得4块木材
T2*: 用木板制作工作台
T3*: 挖掘钻石矿
T4*: 用钻石和木棍制作钻石剑
5. 模型输出
最终,模型根据修正后的思维链,输出完整且准确的步骤来指导用户如何在Minecraft中获得钻石剑:

获得4块木材
用木材制作木板
用木板制作工作台
挖掘钻石矿
用钻石和木棍制作钻石剑

实验

实验设计

数据集:代码生成、数学推理、创意写作和具体任务规划等多个长视野生成任务。
使用模型:不同规模的LLMs,包括GPT-3.5、GPT-4和CodeLLaMA-7b。
评价指标:代码生成的通过率(pass@k)、数学推理的准确率、创意写作和具体任务规划的可行性和合理性评分。

实验结论

代码生成:在HumanEval和HumanEval+基准测试中的pass@1和pass@5率显著提高,分别提升了20.94%和25.68%。
在这里插入图片描述
数学推理:在GSM8K和GSMHard数据集上表现优异,准确率分别提高了8.36%和31.37%。
在这里插入图片描述
创意写作和具体任务规划:在创意写作任务中的得分提高了19.19%,在Minecraft任务规划中的可执行性和合理性评分分别提升了2.96倍和51.94%。

参考资料

  • 论文
  • 代码

相关文章:

【LLM之RAG】RAT论文阅读笔记

研究背景 近年来,大型语言模型(LLMs)在各种自然语言推理任务上取得了显著进展,尤其是在结合大规模模型和复杂提示策略(如链式思维提示(CoT))时。然而,LLMs 在推理的事实…...

windows anaconda 安装 Labelme

安装 # 创建环境 conda create -n labelme python3.6 #激活环境 conda activate labelme # 安装依赖 conda install pyqt conda install pillow # 安装labelme conda install labelme3.16.2 # 启动labelme labelme右键选择标注类型,从上到下为多边形(常…...

Python实现基于深度学习的电影推荐系统

Python实现基于深度学习的电影推荐系统 项目背景 在数字化娱乐时代,用户面临着海量的电影选择。为了帮助用户找到符合个人口味的佳片,MovieRecommendation项目提供了一个基于深度学习的个性化电影推荐系统。该系统利用深度学习技术,根据用户…...

C++ (week9):Git

文章目录 1.git介绍2.git安装3.git配置4.获取自己的SSH公钥5.新建仓库6.邀请开发者7.克隆远程仓库到本地8.在本地进行开发9.本地项目推送到远程仓库10.git的工作原理11.分支管理(1)合作开发的方式(2)分支管理(3)分支合并的原理、冲突管理 12.git 与 svn 的区别13.设置alias别名…...

Seaborn:数据可视化的强大工具

文章目录 引言Seaborn的原理1. 底层结构2. 数据集成3. 图形类型 Seaborn的使用1. 安装与导入2. 数据加载与探索3. 绘制图形分布图关系图分类图 4. 图形定制5. 导出图形 结论 引言 在数据分析和科学计算领域,数据可视化是一个至关重要的步骤。它能够帮助我们更直观地…...

图解注意力

图解注意力 Part #2: The Illustrated Self-Attention 在文章前面的部分,我们展示了这张图片来展示自注意力被应用于正在处理单词"it"的一层中: 在本节中,我们将看看这是如何完成的。请注意,我们将以一种试图理解单…...

Typora Markdown编辑器 for Mac v1.8.10 安装

Mac分享吧 文章目录 效果一、准备工作二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2. 应用程序显示软件图标,表示安装成功 三、运行调试1、修改主题2、显示文档列表,如下图3、查看版本信息 **安装完成&…...

代码随想录算法训练营Day46|动态规划:121.买卖股票的最佳时机I、122.买卖股票的最佳时机II、123.买卖股票的最佳时机III

买卖股票的最佳时机I 121. 买卖股票的最佳时机 - 力扣(LeetCode) 之前用贪心算法做过相同的题,这次考虑使用动态规划来完成。 dp[i]表示前i天的最大利润 我们已知每一天的价格price[i],则dp[i]为每一天的价格price[i]减去当初…...

hive on spark 记录

环境&#xff1a; hadoop 2.7.2 spark-without-hadoop 2.4.6 hive 2.3.4 hive-site.xml <property><name>hive.execution.engine</name><value>spark</value> </property> <property><name>spark.yarn.jars</name>&l…...

【计算机网络体系结构】计算机网络体系结构实验-DHCP实验

服务器ip地址 2. 服务器地址池 3. 客户端ip 4. ping Ipconfig...

攻防世界-pdf

方法一&#xff1a;打开是pdf格式的文件&#xff0c;里面有一张图&#xff0c;题目提示图下面什么都没有&#xff1f;emmm用chrom打开pdf——ctrlf搜索flag&#xff0c;里面是有东西的&#xff0c;ctrla复制就可以了。 方法二&#xff1a;题目提示图下面什么都没有&#xff0c;…...

关于后端幂等性问题分析与总结

后端幂等性&#xff08;Idempotency&#xff09;是指对系统执行一次操作或多次执行相同的操作&#xff0c;其结果始终如一。在分布式系统和API设计中&#xff0c;这是一个关键概念&#xff0c;因为它能保证用户无论请求被路由到哪个节点&#xff0c;多次执行相同的请求都不会导…...

2024广东省职业技能大赛云计算赛项实战——容器云平台搭建

容器云平台搭建 前言 容器镜像使用的是斗学培训平台提供的镜像包&#xff0c;这东西网上都没有&#xff0c;一堆人要&#xff0c;我是靠自己想的方法获取到了&#xff0c;也不敢给。你们可以通过在这个网站申请环境进行操作https://ncc.douxuedu.com/ 虚拟机使用的是自行创建…...

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发

手持弹幕LED滚动字幕屏夜店表白手灯接机微信抖音小程序开源版开发 专业版 插件版 手持弹幕小程序通常提供多种功能&#xff0c;以便用户在不同的场合如夜店、表白、接机等使用。以下是一些常见的功能列表&#xff1a; 文本输入&#xff1a; 输入要显示的文字内容&#xff0c;…...

红队内网攻防渗透:内网渗透之内网对抗:代理通讯篇无外网或不可达SockS全协议规则配置C2正反向上线解决方案

红队内网攻防渗透 1. 内网代理通讯1.1 网络不可达实战环境模拟1.1.1 CS代理技术-SockS配置-网络不可达-通讯解决1.1.1.1 反向shell上线入口点主机1.1.1.2 入口点CS搭建sokcs4代理1.1.1.3 本地使用Proxifier访问代理1.1.1 CS代理技术-正反向监听-网络不可达-C2上线1.1.1.4 正向s…...

PHP学习总结-入门篇

PHP简介 PHP (Hypertext Preprocessor)&#xff0c;即“超文本预处理器”。PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。PHP语法吸收了C语言、Java和Perl的特点&#xff0c;便于学习。PHP 是开源免费的&#xff0c;主要适用于Web开发领域&#xff0c;使用广泛。…...

IDEA Plugins中搜索不到插件解决办法

IDEA中搜不到插件有三种解决方案&#xff1a; 设置HTTP选项&#xff0c;可以通过File->Settings->Plugins->⚙->HTTP Proxy Settings进行设置 具体可参考这篇博文&#xff1a;IDEA Plugins中搜索不到插件解决办法本地安装&#xff0c;ile->Settings->Plugin…...

SpringBootWeb 篇-入门了解 Vue 前端工程的创建与基本使用

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 基于脚手架创建前端工程 1.1 基于 Vue 开发前端项目的环境要求 1.2 前端工程创建的方式 1.2.1 基于命令的方式来创建前端工程 1.2.2 使用图形化来创建前端工程 1.…...

折线统计图 初级

此为折线统计图的初级题目。 本次的题目较难&#xff0c;菜鸡请退出。 4. 下图显示了甲、乙两台电脑的价格以及它们已使用的年数&#xff0c;从图中可以知道( )。 15. 妈妈去菜市场买菜&#xff0c;走到半路遇到一位熟人聊了一会儿&#xff0c;突然发现忘了带钱。于是马上回…...

最新下载:XmanagerXShell【软件附加安装教程】

​相信大家都认同支持IPv6&#xff1a;最近越来越多的公司和国家都采用了IPv6&#xff0c;Xmanager的最新版本v5也加入支持这个功能&#xff0c;无论你是同时使用IPv4和IPv6网络或者完全的IPv6网络&#xff0c;Xmanager 5都可完全满足你的要求&#xff0c;使用MIT Kerberos认证…...

Coursera耶鲁大学金融课程:Financial Markets 笔记Week 02

Financial Markets 本文是学习 https://www.coursera.org/learn/financial-markets-global这门课的学习笔记 这门课的老师是耶鲁大学的Robert Shiller https://en.wikipedia.org/wiki/Robert_J._Shiller Robert James Shiller (born March 29, 1946)[4] is an American econom…...

读书笔记:《生死疲劳》

《生死疲劳》. 莫言 生死疲劳》是莫言最重要的代表作之一。他用动物的视角、俏皮的语言和鬼才的叙事手法&#xff0c;使这本讲述沉重故事的书中处处充满惊喜&#xff1b;用幽默、戏谑的方式化解现实的痛苦&#xff0c;让人在痛苦时依旧能笑出声来&#xff0c;给人以力量。…...

C++面向对象三大特性--多态

C面向对象三大特性–多态 文章目录 C面向对象三大特性--多态1.虚函数&#xff08;Virtual Function&#xff09;2.纯虚函数&#xff08;Pure Virtual Function&#xff09;和抽象类&#xff08;Abstract Class&#xff09;3.重写&#xff08;Override&#xff09;4.动态绑定&am…...

啥移动硬盘格式能更好兼容Windows和Mac系统 NTFS格式苹果电脑不能修改 paragon ntfs for mac激活码

对于同时使用Windows和Mac操作系统的用户而言&#xff0c;选择一个既能确保数据互通又能满足大容量存储需求的移动硬盘格式尤为重要。下面我们来看看啥移动硬盘格式能更好兼容Windows和Mac系统&#xff0c;NTFS格式苹果电脑不能修改的相关内容。 一、啥移动硬盘格式能更好兼容…...

【面试】i++与++i的区别

目录 1. 情况11.1 i1.2 i 2. 情况23. 情况34. 情况4 1. 情况1 1.1 i 1.代码块 public void test(){int i 10;i;System.out.println(i);}2.字节码 0 bipush 102 istore_13 iinc 1 by 16 getstatic #2 <java/lang/System.out : Ljava/io/PrintStream;>9 iload_1 10 inv…...

使用 devtool 本地调试 nodejs

安装 # 全局安装 $ npm install devtool -g # 或临时安装 $ npx devtool [file] [opts]用法 Usage:devtool [入口文件] [opts]Options:--watch, -w enable file watching (for development) # 动态检测文件变更&#xff0c;不用每次手动重启--quit, -q …...

element-plus 表单组件 之element-form

elment-plus的表单组件的标签有el-form,el-form-item。 单个el-form标签内包裹若干个el-form-item,el-form-item包裹具体的表单组件&#xff0c;如输入框组件&#xff0c;多选组件&#xff0c;日期组件等。 el-form组件的主要作用是&#xff1a;提供统一的布局给其他表单组件&…...

redis持久化主从哨兵分片集群

文章目录 1. 单点Redis的问题数据丢失问题并发能力问题故障恢复问题存储能力问题 2. Redis持久化 -> 数据丢失问题RDB持久化linux单机安装Redis步骤RDB持久化与恢复示例&#xff08;详细&#xff09;RDB机制RDB配置示例RDB的fork原理总结 AOF持久化AOF配置示例&#xff08;详…...

IOS Swift 从入门到精通: 结构体的访问控制、静态属性和惰性

文章目录 初始化器引用当前实例惰性属性静态属性和方法访问控制总结初始化器 初始化器是一种特殊方法,可提供创建结构体的不同方式。所有结构体都默认带有一个初始化器,称为成员初始化器- 它会要求您在创建结构体时为每个属性提供一个值。 User如果我们创建一个具有一个属性…...

SQL题:未完成率较高的50%用户近三个月答卷情况

SQL题&#xff1a;未完成率较高的50%用户近三个月答卷情况 这是一道牛客网上SQL进阶图库中的一道困难题目&#xff0c;个人花了近两个小时才通过所有用例。之所以想记录下来是因为这道题算是一个很考验基本功的题目&#xff0c;也不乏一些SQL中的技巧。下面我们逐步分析&#…...