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

news2024/11/25 6:38:56

研究背景

近年来,大型语言模型(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%。

参考资料

  • 论文
  • 代码

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

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

相关文章

小程序简单版音乐播放器

小程序简单版音乐播放器 结构 先来看看页面结构 <!-- wxml --><!-- 标签页标题 --> <view class"tab"><view class"tab-item {{tab0?active:}}" bindtap"changeItem" data-item"0">音乐推荐</view><…

DAY5-力扣刷题

1.两两交换链表中的节点 24. 两两交换链表中的节点 - 力扣&#xff08;LeetCode&#xff09; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换…

ElasticSearch + kibana:类型声明

当我们使用 kibana 创建索引时&#xff0c;如果不申明数据类型&#xff0c;默认字符串赋予 text类型&#xff0c;如下图所示 接下来我们继续创建多条数据如下&#xff1a; 下面我们来检索下&#xff1a; 通过以上两个案例我们发现&#xff0c;使用 match 模糊查询 li-3 明明…

亚马逊、速卖通等跨境平台测评自养号有哪些好处?

测评自养号顾名思义就是自己用国外真实环境养出来的买家账号&#xff0c;通过国外的手机号、邮箱、真实收货地址&#xff0c;设备环境、当地的住宅IP注册和养出来的买手号 很多卖家都了解过自养号&#xff0c;注册一个账号成本就几块钱&#xff0c;账号又可以长期使用&#xf…

【机器学习】图神经网络:深度解析图神经网络的基本构成和原理以及关键技术

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 引言一、图数据及其应用场景1.1 图数据的定义和特征1.2 常见的图数据结构1.2.1 社交网络1.2.2 知识图谱1.2.3 分子结构1.2.4 交通网络 1.3 图数据在不同领域的应用实例1.3.1 社交网络中的推荐系统1.3.2 知识图谱中的信息检索…

如何学习创建和使用 Java 归档(JAR)文件

1. 简介 JAR&#xff08;Java ARchive&#xff09;文件是一种用于打包多个Java类、资源文件和元数据的压缩文件格式。它在Java开发和发布过程中扮演着重要角色。通过使用JAR文件&#xff0c;开发者可以将应用程序的所有组件打包在一个文件中&#xff0c;方便分发和部署。 2. …

Visual Studio Code 配置教程,手把手教你如何配置

文章目录 引言1. 安装 VS Code1.1 下载和安装1.2 初次启动 2. 基本配置2.1 设置用户和工作区配置2.2 常用配置项 3. 安装和配置扩展插件3.1 安装扩展3.2 推荐扩展3.3 配置扩展 4. 主题和配色方案4.1 安装主题4.2 切换主题4.3 自定义配色方案 5. 版本控制集成5.1 配置 Git5.2 Gi…

COMSOL导入图片建模教程

研究背景 COMSOL Multiphysics作为多物理场仿真领域的高端软件&#xff0c;可允许用户通过建立数学模型来模拟和预测现实世界中的各种物理现象。将图片导入COMSOL软件进行建模&#xff0c;根植于现代科学研究和工程设计对高效、准确模拟技术日益增长的需求&#xff0c;它允许用…

【0008day】Shiny的介绍

介绍&#xff1a;Shiny 是一个开源 R 包&#xff0c;它提供了一个优雅而强大的 Web 框架&#xff0c;用于使用 R 构建 Web 应用程序。Shiny 可以帮助您将分析转变为交互式 Web 应用程序&#xff0c;而无需 HTML、CSS 或 JavaScript 知识。 # download R package pkgtest <-…

超分辨率开源库 GitHub 热门项目分享

超分辨率(Super-Resolution)就是将低分辨率(low resolution)的图像通过算法提升到高分辨率(high resolution)的过程。 超分辨率技术在多个领域有广泛应用&#xff0c;包括但不限于以下几个方面&#xff1a; 医疗成像&#xff1a;在医学影像中&#xff0c;超分辨率技术可以帮助…

手表化身车钥匙:智慧控车,优雅随行

智能汽车时代来临&#xff0c;传统车钥匙正在逐渐被取代。HUAWEI WATCH 4 Pro及HUAWEI WATCH Ultimate系列手表配对问界M9等&#xff0c;不仅可以化身 UWB 数字车钥匙&#xff0c;无感解锁车辆&#xff0c;还可以实现智能语音控车等功能&#xff0c;让你从容出行&#xff0c;优…

美国裸机云站群服务器使用指南

在当今数字化时代&#xff0c;网站和应用程序的稳定运行对于企业和个人都至关重要。为了满足日益增长的业务需求&#xff0c;裸机云站群服务器成为了一个理想的选择。以下是美国裸机云站群服务器的使用指南&#xff0c;帮助您更好地利用这一强大的云服务。 一、选择信誉良好的云…

【javaEE-有关CPU进程和线程实现的并发编程及二者的区别】

&#x1f525;&#x1f525;&#x1f525;有关进程并发编程开发的成本问题 这次之前其实我们所有的写的程序都是使用单核心来运行的&#xff0c;但是一般我们的计算机都有很多核心&#xff0c;如果我们编程的时候&#xff0c;只使用一个核心的话&#xff0c;其实这是一个非常大…

光功率计传感器

光探测仪表: 激光功率计探头按照不同的原理和材料分为热电堆型、光电二极管型以及包含两种传感器的综合探头, 激光能量计则有热释电传感器和热电堆传感器探头 激光功率计分为三种类 型 。 第一种类型为光 电 型 , 通过将光 能转换为 电 信 号来表征所接收 的 激光功率 大小 …

2024第15届东莞国际电子智造及微电子展览会

2024第15届东莞国际电子智造及微电子展览会 The 15th Dongguan International Electronic Intelligent Manufacturing and Microelectronics Exhibition in 2024 时间&#xff1a;2024年11月18-20日 地点&#xff1a;广东现代国际展览中心 详询主办方陆先生 I38&#xff0…

排序(2)【选择排序】【快速排序】

一.选择排序 选择排序就是选择一个数组的最大的数字或者最小的数字&#xff0c;放在一整个数组的最后或者开头的位置。 1.选择排序的实现 我们可以对选择排序进行一些加强&#xff0c;普通的选择排序是选择最小的数&#xff0c;然后进行交换。这个加强之后就是我们既要选择出…

北京物业管理app开发,便民服务,智慧管理

居民的现代化生活离不开物业的支持&#xff0c;物业作为服务、保障居民生活的管理单位&#xff0c;从门禁、电梯、快递、停车等方方面面都影响着居民的日常生活。随着经济与科技的不断发展&#xff0c;居民对物业的服务也提出了新的要求。 一&#xff0e; 北京物业管理的现状 …

element--el-table合计换行显示

el-table合计换行显示 效果图实现1、使用到的参数2、代码演示 效果图 实现 1、使用到的参数 官网链接&#xff1a;element-table 将show-summary设置为true就会在表格尾部展示合计行。默认情况下&#xff0c;对于合计行&#xff0c;第一列不进行数据求合操作&#xff0c;而是…

勾八头歌网安之标准ACL、扩展ACL

标准ACL vs 扩展ACL 我是分享我的快乐的终于写完啦&#xff01;&#xff01;&#xff01;&#xff01;我有时间会把步骤写上来的 也不知有人需要吗哈哈哈 vs

LabVIEW利用旋转编码器脉冲触发数据采集

利用旋转编码器发出的脉冲控制数据采集&#xff0c;可以采用硬件触发方式&#xff0c;以确保每个脉冲都能触发一次数据采集。本文提供了详细的解决方案&#xff0c;包括硬件连接、LabVIEW编程和触发设置&#xff0c;确保数据采集的准确性和实时性。 一、硬件连接 1. 旋转编码…