【论文精读】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都会被填平。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合ActiveMQ

SpringBoot整合ActiveMQ 文章目录 SpringBoot整合ActiveMQ下载与安装SpringBoot整合ActiveMQ导坐标改配置,默认的保存位置生产与消费消息实现监听类——实现消息自动消费监听器转发消息:流程性业务消息消费完转入下一个消息队列 下载与安装 https://act…

8、操作符重载

友元 可以通过friend关键字,把一个全局函数、另一个类的成员函数或者另一个类整体,声明为授权类的友元友元拥有访问授权类任何非公有成员的特权友元声明可以出现在授权类的公有、私有或者保护等任何区域且不受访问控制限定符的约束友元不是成员&#xf…

Qt + MySQL(简单的增删改查)

Qt编译MySql插件教程 帮助: SQL Programming QSqlDatabase 静态函数 1.drivers(),得到可以使用的数据库驱动名字的集合 [static] QStringList QSqlDatabase::drivers();2.addDatabase(),添加一个数据库实例 [static] QSqlDatabase QSql…

慢SQL诊断

最近经常遇到技术开发跑来问我慢SQL优化相关工作,所以干脆出几篇SQL相关优化技术月报,我这里就以公司mysql一致的5.7版本来说明下。 在企业中慢SQL问题进场会遇到,尤其像我们这种ERP行业。 成熟的公司企业都会有晚上的慢SQL监控和预警机制。…

Logstash输入Kafka输出Es配置

Logstash介绍 Logstash是一个开源的数据收集引擎,具有实时管道功能。它可以从各种数据源中动态地统一和标准化数据,并将其发送到你选择的目的地。Logstash的早期目标主要是用于收集日志,但现在的功能已经远远超出这个范围。任何事件类型都可…

FastAPI之响应模型

前言 响应模型我认为最主要的作用就是在自动化文档的显示时,可以直接给查看文档的小伙伴显示返回的数据格式。对于后端开发的伙伴来说,其编码的实际意义不大,但是为了可以不用再额外的提供文档,我们只需要添加一个 response_mod…

汽车服务行业分析:预计2028年将达到38亿元

在推进加快检验机构建设同时,综合评估检验机构数量、分布和检测能力,探索试点汽车 4S 店开展检验,提供维修、保养、车检一体化服务。汽车服务主要是指围绕汽车展开的一系列服务活动,包括维修、美容、金融等,除具有一般…

springboot3 liquibase SQL执行失败自动回滚,及自动打tag

一&#xff1a; 自动执行回滚&#xff0c; 已执行成功的忽略&#xff0c;新sql执行失败则执行新sql文件中的回滚sql pom.xml <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>4.25.0&…

Appium 并行测试多个设备

一、前置说明 在自动化测试中&#xff0c;经常需要验证多台设备的兼容性&#xff0c;Appium可以用同一套测试运例并行测试多个设备&#xff0c;以达到验证兼容性的目的。 解决思路&#xff1a; 查找已连接的所有设备&#xff1b;为每台设备启动相应的Appium Server&#xff1b…

从手工测试进阶中高级测试?如何突破职业瓶颈...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、手工测试如何进…

物联网安全芯片ACL16 采用 32 位内核,片内集成多种安全密码模块 且低成本、低功耗

ACL16 芯片是研制的一款32 位的安全芯片&#xff0c;专门面向低成本、低功耗的应用领域&#xff0c; 特别针对各类 USB KEY 和安全 SE 等市场提供完善而有竞争力的解决方案。芯片采用 32 位内核&#xff0c;片内集成多种安全密码模块&#xff0c;包括SM1、 SM2、SM3、 SM4 算法…

权威认证!景联文科技入选杭州市2023年第二批省级“专精特新”中小企业认定名单

为深入贯彻党中央国务院和省委省政府培育专精特新的决策部署&#xff0c;10月7日&#xff0c;杭州市经济和信息化委员会公示了2023年杭州“专精特新”企业名单&#xff08;第二批&#xff09;。 根据工业和信息化部《优质中小企业梯度培育管理暂行办法》&#xff08;工信部企业…

【教3妹学编程-算法题】需要添加的硬币的最小数量

3妹&#xff1a;2哥2哥&#xff0c;你有没有看到新闻&#xff0c; 有人中了2.2亿彩票大奖&#xff01; 2哥 : 看到了&#xff0c;2.2亿啊&#xff0c; 一生一世也花不完。 3妹&#xff1a;为啥我就中不了呢&#xff0c;不开心呀不开心。 2哥 : 得了吧&#xff0c;你又不买彩票&…

最强文生图跨模态大模型:Stable Diffusion

文章目录 一、概述二、Stable Diffusion v1 & v22.1 简介2.2 LAION-5B数据集2.3 CLIP条件控制模型2.4 模型训练 三、Stable Diffusion 发展3.1 图形界面3.1.1 Web UI3.1.2 Comfy UI 3.2 微调方法3.1 Lora 3.3 控制模型3.3.1 ControlNet 四、其他文生图模型4.1 DALL-E24.2 I…

Navicat 技术指引 | 适用于 GaussDB 分布式的服务器对象的创建/设计

Navicat Premium&#xff08;16.3.3 Windows版或以上&#xff09;正式支持 GaussDB 分布式数据库。GaussDB分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构…

NestJS的微服务实现

1.1 基本概念 微服务基本概念&#xff1a;微服务就是将一个项目拆分成多个服务。举个简单的例子&#xff1a;将网站的登录功能可以拆分出来做成一个服务。 微服务分为提供者和消费者&#xff0c;如上“登录服务”就是一个服务提供者&#xff0c;“网站服务器”就是一个服务消…

【C++】类与对象(下)

本文目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 2. static成员2.1 概念2.2 特性 3. 友元3.1 友元函数3.2 友元类 4. 内部类5. 匿名对象6. 拷贝对象时的一些编译器优化7. 再次理解类和对象 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&am…

jsonpath:使用Python处理JSON数据

使用Python处理JSON数据 25.1 JSON简介 25.1.1 什么是JSON JSON全称为JavaScript Object Notation&#xff0c;一般翻译为JS标记&#xff0c;是一种轻量级的数据交换格式。是基于ECMAScript的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清…

用 C 写一个卷积神经网络

用 C 写一个卷积神经网络 深度学习领域最近发展很快&#xff0c;前一段时间读transformer论文《Attention Is All You Need》时&#xff0c;被一些神经网络和深度学习的概念搞得云里雾里&#xff0c;其实也根本没读懂。发现深度学习和传统的软件开发工程领域的差别挺大&#xf…

智能优化算法应用:基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于入侵杂草算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.入侵杂草算法4.实验参数设定5.算法结果6.…