【论文精读】REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS

  • 前言
  • ABSTRACT
  • 1 INTRODUCTION
  • 2 REACT: SYNERGIZING REASONING + ACTING
  • 3 KNOWLEDGE-INTENSIVE REASONING TASKS
    • 3.1 SETUP
    • 3.2 METHODS
    • 3.3 RESULTS AND OBSERVATIONS
  • 4 DECISION MAKING TASKS
  • 5 RELATED WORK
  • 6 CONCLUSION
  • 阅读总结

前言

一篇来自ICLR 2023的文章,可以称得上是当今火爆全网的Agent的鼻祖工作了,它提出了基于LLM初始的Agent的范式,在问答任务和决策任务上都取得了不错的结果,但是受限于LLM的能力,导致与人类的SOTA相距甚远。


Paperhttps://arxiv.org/pdf/2210.03629.pdf
Codehttps://github.com/ysymyth/ReAct
FromICLR 2023

ABSTRACT

LLMs在语言理解和交互决策上表现出令人印象深刻的性能,其推理能力也作为了一个单独研究的主题。本文探索使用交互的方式生成推理任务特定动作,使二者具有更大的协同性。推理帮助模型归纳、跟踪和更新计划以及处理异常,动作则允许与外部接口相连并收集额外的信息。本文的ReAct方法可以应用于多语言决策任务,在最新的基线上证明了其有效性、人类可解释性和可信度。具体来说,在问答和事实验证方面,ReAct与简单的维基百科API交互,生成了类似人类解决任务的轨迹,克服了CoT中广泛存在的幻觉和错误累积问题。此外在两个交互式决策benchmark上,ReAct在只有一两个上下文示例的情况下优于模仿学习和强化学习的方法。

1 INTRODUCTION

人类智能的一个特点是可以做到言行一致,在对自我调节、制定策略以及维护工作记忆有着重要作用。最近的工作暗示了在自动系统中,语言推理和交互式决策的结合是可能的。首先,LLM展现出其强大的推理能力,比如CoT推理,但是其CoT能力只能对自身使用,可以理解为一个黑盒,这种无法与外界交互的方式会带来幻觉和错误累积的问题。其次,最近有工作利用预训练的语言模型在交互式环境中进行规划和行动,虽然加入了多模态的信息以文本形式引入,但是它们只能根据当前的状态解决现有的问题,无法解决更抽象的高级目标(需要多步推理交互式执行)。目前还没有研究将推理和行动结合起来解决一般的问题,是否能够带来系统性的提升还有待商榷。
image.png
本文提出ReAct,一个将推理和动作与语言模型相结合的通用范式,用于解决不同语言推理和决策任务。ReAct提示LLMs以交错的方式生成与任务相关的语言推理轨迹和动作,让模型动态推理去创建、维护和调整行动的计划,同时也与外部环境交互来引入外部的知识。
作者在四个不同的benchmarks上对ReAct进行了评估,包括问答(HotPotQA)、事实验证(Fever)、基于文本的游戏(ALFWorld)以及网页浏览(WebShop)。对于前两个数据集,ReAct+CoT方法的效果是最好的,在后两个数据集上,两次甚至一次ReAct提示就能将成功率分别提高34%和10%。此外,作者还展示了相对于仅采用动作的优势,证明了稀疏多功能推理在决策中的重要性。推理和动作的结合提高了模型的可解释性和可信度,与人类的行为对齐。
总的来说,本文的贡献如下:

  1. 提出ReAct,一个新颖的基于prompt的范式,在语言模型中协同推理和动作来解决一般问题。
  2. 在多个benchmarks上验证ReAct的性能与优势。
  3. 系统的消融分析,了解推理任务中动作以及交互任务中推理的重要性。
  4. ReAct在进一步微调下可以提升性能。与强化学习结合可以进一步释放LLM的潜力。

2 REACT: SYNERGIZING REASONING + ACTING

考虑到智能体与环境交互以解决问题的一般场景,在时间步 t t t时,一个智能体获得当前环境的观察 o t ∈ O o_t \in \mathcal{O} otO,然后遵循策略 π ( a t ∣ c t ) \pi (a_t|c_t) π(atct)选择动作 a t ∈ A a_t \in \mathcal{A} atA,其中 c t = ( o 1 , a 1 , . . . , o t − 1 , a t − 1 , o t ) c_t = (o_1,a_1,...,o_{t-1},a_{t-1},o_t) ct=(o1,a1,...,ot1,at1,ot),即历史观察动作上下文。当历史上下文与动作的映射很不清晰时,学习一个策略是具有挑战的。
ReAct的思想很简单,它将智能体的动作空间增强为 A ^ = A ∪ L \mathcal{\hat{A}}=\mathcal{A} \cup \mathcal{L} A^=AL,其中 L \mathcal{L} L是语言空间。动作 a ^ t ∈ L \hat{a}_t \in \mathcal{L} a^tL在语言空间中,称之为思想或者推理痕迹,它不会影响外部环境,通过上下文信息进行推理来支持接下来的动作。
然而,语言空间是无限的,在这个空间中学习是困难的,需要很强的先验。而LLM只需要借助少量的示例先验进行提示,就可以生成解决任务的语言思维。对于推理重要的任务,ReAct交替产生思维和动作,这样解决问题的轨迹就由多步思想-动作-观察步骤组成。
由于决策和推理的能力已经集成到LLM中,ReAct具有一些独特的功能:

  1. 符合直觉,易于设计。
  2. 通用且灵活。ReAct适用于具有不同动作空间和推理需求的多种任务。
  3. 高性能且稳健。对新任务展现出强大的泛化能力。
  4. 和人类对齐且可控。ReAct决策和推理过程具有可解释性,并且人类可以通过编辑思想来控制或纠正智能体的行为。

3 KNOWLEDGE-INTENSIVE REASONING TASKS

对于推理任务,ReAct通过与维基百科API交互,能够检索信息支持推理。

3.1 SETUP

作者在HotPotQA和FEVER两个数据集上来验证ReAct的知识检索与推理能力。前者是多跳问答benchmark,需要对两个或多个维基百科片段进行推理,后者是事实验证benchmark,每个声明都基于维基百科中存在的片段而标注为支持、反对或者信息不足。ReAct将只接收问题和声明,依靠自己的内部知识和外部API交互来回答。
在动作空间上,作者设计了一个简单的维基百科API,它具有三种类型的动作来支持交互式信息的检索:

  1. search[entity]。返回相应实体前五个句子或者前五个近似的实体。
  2. lookup[string]。检索出包含特定string的下一个句子。
  3. finish[answer]。完成任务给出答案。模拟人类的检索过程。

3.2 METHODS

作者从训练集中随机选择6个和3个示例,并手动编写ReAct格式的轨迹用于小样本的示例。类似于图1中的1(d),每个轨迹都由多个思想-动作-观察步骤组成。
在baseline部分,作者系统地消融了ReAct轨迹以构建多个baseline的prompt。

  1. 标准prompt。移除了轨迹中的思想,动作和观察。
  2. CoT。移除了动作和观察,只做推理。其中CoT-SC(多CoT投票)能持续提高CoT的性能。
  3. Acting-only prompt。移除了思想的过程。

在实验部分,作者观察到ReAct解决任务的过程更符合事实,CoT在推理逻辑上更准确,但容易受到幻觉的影响。因此,作者将ReAct和CoT-SC结合在一起,让模型根据以下情形切换方法:

  1. ReAct未能在限定步骤给出答案,采用CoT-SC。
  2. 当n个CoT-SC样本中多数答案少于一半,采用ReAct。

此外,由于手动构建推理路径具有一定的挑战,因此作者采用3000个有正确答案的轨迹来微调PALM-8/62B,用于轨迹的生成。

3.3 RESULTS AND OBSERVATIONS

image.png
上图显示在两个任务上,ReAct都要优于Act,这证明了推理对指导动作的价值。在HotPotQA数据集上,ReAct要略差于CoT,但是在Fever上要优于CoT。为了准确理解二者在HotPotQA上的差异,作者对结果进行了观察,得到如下的分析:

  1. CoT中幻觉问题是个严重的问题。相比之下,ReAct解决问题的轨迹更值得
  2. 虽然推理和行动以及观察步骤的交错提高了ReAct的可信度,但是约束了其灵活性,导致其推理错误率高。
  3. 对于ReAct,通过搜索成功检索出知识非常重要。

CoT-SC+ReAct的范式在两个数据集上都得到了更好的结果,这表明正确结合模型内在知识和外在知识对模型推理具有显著价值。
image.png
当对小模型进行微调后,8B的PaLM优于62Bprompt的PaLM,62B的PaLM优于540B的PaLM,此外,Standard和CoT与ReAct的差距拉大,原因是前者本质上是学习可能是错误的知识事实,而后者是教会模型如何推理和行动来访问来自外部的知识。当然,现有的方法与特定领域的SoTA相距甚远,作者认为精心微调会填平gap。

4 DECISION MAKING TASKS

作者还在语言交互决策任务ALFWorld和WebShop上测试了ReAct的能力。前者是一款基于合成文本的游戏,Agent需要通过文本操作与模拟家庭进行交互和导航,从而实现高级目标(6中类型任务)。特别的,ALFWorld有一个内置挑战是你需要对常见家具的位置有一个概念。为了提示ReAct,对于每种任务类型,作者从训练集中随机标注了三个轨迹,每个轨迹都包括:

  1. 分解目标。
  2. 跟踪子目标完成情况。
  3. 确定下一个子目标。
  4. 通过常识推断下一个目标的位置以及如何操作。

作者在特定任务设置下的134个未见的任务上进行评估,为了鲁棒性,作者在人工标注的基础上为每个任务构建了6个prompt。baseline采用BUTLER,一种模仿学习智能体,针对每种任务进行了训练。
WebShop是一个在线购物环境网站,拥有118万个真实世界的产品和12k人工指令。它包含多种结构化和非结构化文本,需要智能体根据用户指令购买商品。该任务通过500个测试指令的平均得分和成功率来评估。ReAct的提示包括带有推理的搜索,选择产品,选项和购买操作。作者将ReAct与模仿学习方法以及模仿+强化学习方法进行对比。
image.png
ReAct在两个数据集上都要优于Act。在ALFWorld上,ReAct平均71%的成功率远高于Act和BUTLER,在Webshop上,one-shot的Act已经达到了IL和IL+RL的方法。ReAct的性能更为突出,但是与人类表现仍然相去甚远。此外,作者还和IM方法进行了消融实验的对比,让ReAct框架和IM结合,IM没有采用LLM,它局限在对环境状态进行观察以及智能体需要完成什么才能满足目标。由于缺少高级目标分解,ReAct-IM在该完成什么子目标的时候经常犯错,由于缺乏常识推理,它难以定位家具的大概位置。

5 RELATED WORK

略。

6 CONCLUSION

本文提出ReAct,一个简单有效的方法,基于LLM进行协同推理和行动。无论是在问答推理还是决策任务上都带来了卓越的性能。尽管方法简单,但是由于token长度的限制,在一些复杂的任务上做的不好(需要更多的演示)。虽然微调模型有效果,但是数据还是不够。未来通过多任务训练扩大ReAct的规模,与RL相结合,可能会产生更强大的Agent。

阅读总结

在我看来,ReAct这篇工作可以说是2023年爆火的Agent的鼻祖,它的方法很简单,思路很清晰,整篇工作最大的贡献在于提出了一个初始Agent的范式,那就是推理+动作。一个真正意义上的Agent,就应该像人一样,面对一个问题时先思考,再执行,走一步想一步,从而完成任务。当然了,Agent还得有自己的memory,有自己的技能库,以及遇到问题时需要Planing,不过这都是后面Agent的发展了。最后,文中提到在复杂任务上,ReAct还是没办法做好,并且与人类的SOTA相差甚远,其根本原因是Agent的能力不够,当ChatGPT以及后续衍生产品的出现后,所有的这些GAP都会被填平。

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

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

相关文章

Ubuntu20.04使用cephadm部署ceph集群

文章目录 Requirements环境安装Cephadm部署Ceph单机集群引导(bootstrap)建立新集群 管理OSD列出可用的OSD设备部署OSD删除OSD 管理主机列出主机信息添加主机到集群从集群中删除主机 部署Ceph集群 Cephadm通过在单个主机上创建一个Ceph单机集群&#xff0…

★102. 二叉树的层序遍历

102. 二叉树的层序遍历 很巧妙的,又学习了一种层次遍历的方法,就是说根据当前的队列的长度去遍历,遍历的当前队列的长度就是该层次的节点个数。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* Tr…

Flink 本地单机/Standalone集群/YARN模式集群搭建

准备工作 本文简述Flink在Linux中安装步骤,和示例程序的运行。需要安装JDK1.8及以上版本。 下载地址:下载Flink的二进制包 点进去后,选择如下链接: 解压flink-1.10.1-bin-scala_2.12.tgz,我这里解压到soft目录 [ro…

UniGui禁用缓存

今天有人问到如何禁用缓存,原因是引用了第三方js,css等文件,但是因为缓存的原因,修改后没有及时生效。 首先纠正一点,地址后加?不会禁用缓存 可以看到,后面即使加了?但仍然是from memory cache。对于浏览…

管理类联考——数学——真题篇——按知识分类——数据

文章目录 排列组合2023真题(2023-05)-数据分析-排列组合-组合-C运算-至少-需反面思考真题(2023-08)-数据分析-排列组合-相邻不相邻-捆绑法插空法-插空法注意空位比座位多1个,是用A;捆绑法内部排序用A&#…

ubuntu 20.04.6 server 服务器 下载与安装(配置静态IP)

下载地址:https://releases.ubuntu.com/20.04.6/ubuntu-20.04.6-live-server-amd64.iso 第一步: 准备U盘,使用软碟通将下载好的镜像写入到U盘中 软碟通网址:https://www.cn.ultraiso.net/xiazai.html 点击:文件 ->…

iOS——UIPickerView选择器

UIPickerView UIPickerView是 iOS 开发中常用的用户界面组件之一,用于在垂直方向上显示一个滚动的列表,用户可以通过滚动选择其中的一项。 UIPickerView的协议方法 UIPickerView和UItableView差不多,UIPickerView也要设置代理和数据源。UI…

JAVA+SSM+springboot+MYSQL企业物资库存进销存管理系统

。该系统从两个对象:由管理员和员工来对系统进行设计构建。主要功能包括首页、个人中心、员工管理、项目信息管理、仓库信息管理、供应商管理、项目计划管理、物资库存管理、到货登记管理、物资出库管理、物资入库管理等功能进行管理。本企业物资管理系统方便员工快…

Jenkins简单介绍

学习目标 知道jenkins应用场景能够安装部署jenkins服务器能够实现gitgithubjenkins手动构建能够实现gitgitlabjenkins自动发布系统 认识jenkins Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软…

【SpringBoot】请求参数

1. BS 架构 BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 在SpringBoot进行web程序开发时,它内置了一个核心的Servlet程序 DispatcherServlet,称之为 核…

ARP欺骗攻击

一.大概原理 ARP:address solution protocol 地址解析协议 ARP是一种基于局域网的TCP/IP协议,arp欺骗就是基于此协议的漏洞来达成我们的目的的,局域网中的数据传输并不是用ip地址传输的,而是靠mac地址。 我们如果出于某种目的想…

HTML中表格的语法及使用(详解)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中表格的语法及详细使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留…

学校安全检查系统

校园面积大、安全盲区多对学校安全管理带来诸多挑战;传统依靠人工纸质巡检记录存在漏检、管理难、联动差等诸多问题和缺点,巡检过程中很容易遗漏安全隐患的存续,从而导致安全事故的发生。 通过凡尔码平台模块化搭建学校安全管理系统&#xf…

黑豹程序员-EasyExcel实现导出

需求 将业务数据导出到excel中,老牌的可以选择POI,也有个新的选择EasyExcel。 有个小坑,客户要求样式比较美观,数字列要求千位符,保留2位小数。 可以用代码实现但非常繁琐,用模板就特别方便,模…

什么是RabbitMQ

目录 ​编辑 一、引言 二、概念和特性: 1、消息代理: 2、队列: 3、发布/订阅模型: 4、路由和交换机: 5、持久性: 6、灵活的消息模式: 7、可扩展性: 我的其他博客 一、引言…

湖科大计网:计算机网络概述

一、计算机网络的性能指标 一、速率 有时候数据量也认为是以10为底的,看怎么好算。(具体吉大考试用什么待商榷) 二、带宽 在模拟信号系统中带宽的含义,本课程中用到的地方是:香农定理和奈奎斯特定理公式的应用之中。 …

OCRmyPDF让你能搜索扫描版PDF文档

什么是 OCRmyPDF ? PDF 是存储和交换扫描文档的最佳格式。不幸的是,PDF 可能很难修改。OCRmyPDF 是一个 Python 应用程序和库,可以轻松地将图像处理和 OCR(可识别、可搜索的文本)应用于现有 PDF,通过向扫描…

持续集成交付CICD:使用Jenkins插件上传Nexus制品

目录 一、实验 1.使用Jenkins插件上传Nexus制品 一、实验 1.使用Jenkins插件上传Nexus制品 (1)Jenkins安装插件Nexus Artifact Uploader (2)添加凭据 (3)使用片段生成器生成DSL (4&#xf…

【计算机网络】IP协议

目录 引言 1、数据包格式: IP数据包格式: 2、IP地址: IP地址的组成: IP地址的分配: IP地址的重要性: 3、路由: 1. 基本概念: 2. 路由的过程: 3. 路由的重要性&…

线上盲盒小程序,开启互联网盲盒时代

近年来,盲盒经济在国内非常火爆,各类盲盒品牌层出不穷,深受国内外年轻人、消费者的喜爱。 目前,根据数据显示,盲盒市场不仅在线下异常火热,线上盲盒也是成为了大众的新选择。各类电商平台中盲盒的成交额更…