论文速览【LLM-agent】—— 【ReAct】Synergizing Reasoning and Acting in Language Models

news2024/9/27 17:28:43
  • 文章链接:ReAct: Synergizing Reasoning and Acting in Language Models
  • 发表:ICLR 2023
  • 领域:LLM agent

  • 摘要:尽管大型语言模型(LLMs)在语言理解和交互式决策任务中展示了令人印象深刻的能力,但它们的推理(例如思维链提示)和行动(例如行动计划生成)能力主要被作为独立主题研究。在本文中,我们探讨了使用LLMs以交错方式生成推理轨迹和特定任务行动的方法,允许两者之间更大的协同作用:推理轨迹帮助模型引导、跟踪和更新行动计划以及处理异常情况,而行动使其能够与外部来源(如知识库或环境)接口,收集额外信息。我们将这种方法命名为ReAct,并将其应用于多样化的语言和决策任务,并展示了其相对于最先进基线的有效性,以及相较于没有推理或行动组件的方法在人类可解释性和可信度方面的改进。具体来说,在问答(HotpotQA)和事实验证(Fever)任务上,ReAct通过与简单的维基百科API互动,克服了思维链推理中普遍存在的幻觉和错误传播问题,并生成了比没有推理轨迹的基线更易于解释的人类般的问题解决轨迹。在两个交互式决策基准测试(ALFWorld和WebShop)上,ReAct仅通过一到两个上下文示例提示,就分别以34%和10%的绝对成功率超越了模仿和强化学习方法
  • 一句话总结:作者将基于 LLM 的推理能力和环境交互能力结合起来,提出一种新的通用范式 ReAct,使语言模型能够解决各种语言推理和决策任务。这种新范式在 prompt 和 fine-tune 两种 learning setting 下均系统地优于仅推理(reasoning-only)和仅行动(acting-only)范式

文章目录

  • 1. 方法
  • 2. 实验
  • 3. 总结

1. 方法

  • 本文研究开展于 2022 年,当时 GPT3 已经发布了一段时间,研究人员注意到 LLM 在 CoT 技巧加持下展现出良好的自回归推理能力(称之为仅推理reasoning-only范式);同时,一些用预训练模型作为 agent 的初步研究也验证了 LLM 在各种互动环境中进行规划和行动的能力(仅行动acting-only范式)。但是,当时具有良好推理能力的标准 LLM 无法和环境交互来获取外部信息;能够和环境交互的 LLM agent 都是直接将交互上下文映射到动作,缺乏对高级目标的抽象推理,也没有保持工作记忆以支持长时间跨度的交互动作,因此
    1. 对于 reasoning-only LLM:无法和外部环境交互导致其无法利用外部数据库或工具,限制了其 NLP 任务的能力
    2. 对于 acting-only LLM:缺乏推理步骤的情况下模型只是在利用 “直觉” 行动,它直接将内部状态映射到动作,但并不理解这种映射关系的原因,尤其在 finetune 模型时属于 IL 中的 BC 方法。这导致其只能得到一个非常窄的策略分布,策略泛化能力差
  • 为此,作者提出将两种范式结合得到 ReAct 范式,使 LLM 能够以交替的方式生成口头推理轨迹和文本动作
    在这里插入图片描述
    1. 通过执行动作和环境交互,模型可以得到外部观测反馈
    2. 通过生成自回归推理轨迹,模型将有用的信息整合到上下文中,进而影响其内部状态以支持未来的推理和行动
  • 作者将新范式应用在 prompt 和 finetuning 两种 learning 设定下
    1. ReAct prompting:使用 frozen 的大规模预训练模型(PaLM-540B),通过 few shot in-context learning 控制模型输出任务领域动作或开放式推理轨迹

      • domain-specific actions:如 “search” in question answering task;“go to” in room navigation task
      • free-form language reasoning traces:如 “Now I need to find a cup, and put it on the table”

      在对于推理至关重要的任务中,作者交替产生推理轨迹和动作,使得任务解决轨迹由多个推理-动作-观察步骤组成;对于涉及大量动作的决策任务,作者通过稀疏推理 prompt 让语言模型自己决定推理轨迹和动作的异步发生时机,推理轨迹只需要稀疏地出现在轨迹中的最相关位置即可

    2. ReAct finetuning:使用 prompting 设定构造 ReAct 形式数据,然后用来微调较小规模的语言模型 (PaLM-8/62B),直接将 ReAct 范式注入为模型的内部知识

2. 实验

  • 作者注意到推理轨迹可以在大量任务中发挥作用,比如

    • 分解任务目标以创建行动计划
    • 注入与任务解决相关的常识知识
    • 从环境交互观测中提取重要部分
    • 在保持计划执行的同时跟踪任务进度
    • 通过调整行动计划来处理异常
  • 推理和行动之间的协同带来诸多好处

    • 对于侧重生成动作的 Agent 类任务,ReAct 允许模型执行动态推理以创建、维护和调整行动的高级计划 ( reason → act \text{reason} \to \text{act} reasonact)

    • 对于侧重生成回答的 NLP 类任务,ReAct 允许模型与外部环境 (如维基百科) 交互,并将获取的附加信息合并到推理中 ( act → reason \text{act} \to \text{reason} actreason)
      在这里插入图片描述

  • 作者在 “问答(HotPotQA)”、“事实验证(Fever)”、“基于文本游戏(ALFWorld)” 和 “网页导航(WebShop)” 四个基准上测试 ReAct 方法的性能,发现

    1. NLP 类任务 HotPotQA 和 Fever 上,作者使用 Wikipedia API 作为外部环境,发现将 ReAct 和 CoT 组合可以实现最优性能,这种设定允许模型在推理过程中同时使用内部知识和外部获得的信息
      在这里插入图片描述
    2. 控制类任务 ALFWorld 和 WebShop 上,few-shot prompt ReAct 的性能超过了使用大量样本训练的 RL 和 IL agent。这里尤其可以把 ReAct 和 IL 对比,IL 中 Agent 只是模仿给定观测下的动作,但并不知道这样动作的原因,这种知识的环境泛化性就很差。相比而言,ReAct 在模仿动作以外还会模仿给定观测下的推理、分析、规划过程,后者的跨环境泛化能力要强很多,这赋予模型传统方法不具备的 few-shot prompt 能力
      在这里插入图片描述
    3. 由于 LLM 的一切交互都是以自然语言作为媒介的,其天然具有很好的解释性,因此人类检查员可以通过编辑 ReAct 的推理轨迹来实现 human-in-the-loop 交互,这种的的人机协作形式可以有效纠正 LLM 的幻觉问题

3. 总结

  • ReAct 是一个简单但非常有效的范式,核心思想是 通过推理指导行动,再通过行动支持推理。ReAct 基于 LM 实现了对思想、动作和环境反馈的联合建模,使其成为一个高性能 multi-task agent。自从 2022 年起,出现了大量 follow 此文章的工作,包括著名的 AutoGPT 等,体现了此范式的有效性。该范式带来的好处包括
    1. 灵活性强:ReAct 可以直接适用于广泛的推理和交互任务
    2. 泛化性强:无论 few-shot in context prompt 还是 fine-tune,ReAct 都表现出很强的性能。尤其是在控制决策任务上,推理过程其实代表了某种跨环境的通用知识,其引入大幅改善了标准 RL/IL 的环境泛化问题

      但也要注意到,这种能力是建立在大规模的 LLM 基础上的,直接和 RL 对比可能不太公平

    3. 和人类对齐:ReAct 范式下的问题解决过程,相比过去的方法更像人类
  • 从两个角度理解 ReAct
    • 从简单的视角看,ReAct 可以看作扩展了环境交互能力的 LM;也可以看作具有内省推理能力的 RL/IL agent
    • 从复杂的视角看,ReAct 可以看作给 RL/IL agent 扩展了工作记忆,记忆本身存储在上下文中,agent 可以从环境中获取信息,也可以从工作记忆中获取信息。但是这种记忆还是短期的,且无法编辑(append-only)。这启发了后续工作,即给 LM agent 添加更长、更可编辑的记忆

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

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

相关文章

正弦波振荡器工作原理及频率稳定性条件

晶发电子专注17年晶振生产,晶振产品包括石英晶体谐振器、振荡器、贴片晶振、32.768Khz时钟晶振、有源晶振、无源晶振等,产品性能稳定,品质过硬,价格好,交期快.国产晶振品牌您值得信赖的晶振供应商。 正弦波振荡器是一种能够自动将直流电转换为特定频率和振幅的正弦交…

解析云原生架构中两大核心原则

1.云原生架构是什么 云原生架构是一种设计和构建应用程序的现代方法,以微服务、容器化、持续集成和持续部署(CI/CD)等技术为基础,使应用能够在云环境中动态运行。云原生架构强调解耦合、弹性和自动化,开发团队在独立的…

【高级编程】万字整理集合框架 迭代器 泛型(含方法案例)

文章目录 集合框架集合接口集合类ArrayListLinkedListHashSet 迭代器 IteratorMap 接口泛型Collections 工具类 集合框架 如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架 Java集合框架提供了一套性能优良、使用方便的…

@EqualsAndHashCode注解使用

一,EqualsAndHashCode注解来自于Lombok EqualsAndHashCode 是 Lombok 库提供的一个注解,用于自动生成 equals 和 hashCode 方法。这两个方法在 Java 中非常重要,特别是在集合框架中使用时,它们确保了对象的正确比较和哈希值的一致…

YOLOv8改进 | 注意力篇 | YOLOv8引入LSK注意力机制

1. LSK介绍 1.1 摘要: 最近关于遥感目标检测的研究主要集中在改进定向边界框的表示上,但忽略了遥感场景中呈现的独特先验知识。 这种先验知识可能很有用,因为在没有参考足够远距离上下文的情况下,可能会错误地检测微小的遥感物体,并且不同类型物体所需的远距离上下文可能…

HarmonyOS开发实战( Beta5版)优化实践/合理使用缓存提升性能

简介 随着应用功能的日益丰富与复杂化,数据加载效率成为了衡量应用性能的重要指标。不合理的加载策略往往导致用户面临长时间的等待,这不仅损害了用户体验,还可能引发用户流失。因此,合理运用缓存技术变得尤为重要。 系统提供了P…

uniapp组件用法

一. 什么是组件,有什么好处? 在uni-app中,组件是构成应用的基本单位,它们是用来定义用户界面的一部分,并且通常包含了视图和逻辑。组件的设计使得开发者能够以声明式的方式构建应用界面,并且通过组件化的开发方式来提高代码的复…

损失函数、成本函数cost 、最大似然估计

一、损失函数 什么是损失函数? 【深度学习】一文读懂机器学习常用损失函数(Loss Function)-腾讯云开发者社区-腾讯云 损失函数(loss function)是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个…

Python 新手必看:如何用 unittest 写出高质量代码?

文末赠免费精品编程资料~~ 在 Python中 ,unittest 模块是进行单元测试的强大工具。无论你是初学者还是有经验的开发者,单元测试都是确保代码质量的重要一环。而 unittest 模块就是让这一过程变得简单、快捷的利器。 什么是单元测试? 在进入…

浩瀚麦克风怎么样?西圣、罗德、神牛领夹麦克风全网巅峰PK测评

​一台优质专业的无线领夹麦克风能够清晰、稳定地收录声音,提升音频录制质量。而劣质的无线领夹麦克风则可能出现声音不清晰、信号不稳定、续航短等各种问题。作为一名资深的数码测评师,我已经测评过了好几十款无线领夹麦克风,今天将从麦克风…

Python应用指南:获取高德地铁站点数据(单城市版)

书接上文,上篇文章是一次性下载全国所以城市的地铁站点数据,但是可视化的过程需要手动把换乘站给一个个复制出来分配到其他各个经过的线路,还需要核对站点顺序不能出错,如果只需要单个城市的数据呢?另外能不能直接生成…

【复杂系统系列(初级)】自动调节动态平衡模型——生物体的稳态机制

【通俗理解】自动调节动态平衡模型——生物体的稳态机制 关键词提炼 #自动调节 #动态平衡 #生物体稳态 #反馈机制 #体温调节 #微分方程模型 第一节:自动调节动态平衡模型的类比与核心概念 1.1 自动调节动态平衡模型的类比 自动调节动态平衡模型可以被视为生物体…

grpc-spring 通信(监控视频传输)

先看效果 这是微软相机,22ms延迟 (不走网络存粹寄存器和内存的通信)这是程序抓取摄像头然后传给client,client的java窗口展示的,延时也是22ms(对了localhost好像也不走网络吧) 几个点 1.openc…

大功率舞台灯调光调色方案 | 支持深度调光,多路输出调光 36V/48V/60V FP7126

在舞台演出中,灯光扮演着非常重要的角色,它不仅可以烘托氛围,营造氛围,更能够为表演者增添光彩,塑造形象。在博物馆场所中,突出展品细节。根据灯光用途和适用类型,舞台灯可以细分为聚光灯、泛光…

foundation model

目录 多模态预训练模型 BLIP LLM GPT3 InstructGPT FLAN chain of thought ToolFormer QWEN Llama3 VLM QWen-VL VideoChat Video-ChatGPT 应用 DriveVLM PlanAgent 多模态预训练模型 CLIP BLIP 《Bootstrapping Language-Image Pre-training for Unified Visi…

突发!Runway 从 HuggingFace 及 GitHub 上删库跑路,背后有何隐情?

突发!2024年8月29日Runway 从 HuggingFace 及 GitHub 上删库跑路,背后有何隐情? 🧐 今天我们来聊一聊科技圈一则爆炸性消息:Runway ML 从 HuggingFace 和 GitHub 上删库跑路,毫无预警!这个举动…

基于asp.net的在线考试系统源码分享

这是一个基于asp.net的开发的在线考试系统,需要的小伙伴自己参考源码,下载链接我放在后面了。 1.主要功能 主要功能包含用户注册登陆、学生登录、老师登陆、试卷管理、分数管理、 填空题选择、选择题管理、题库管理、分数管理、试卷随机生成等等模块。…

【精选】基于Django的智能水果销售系统设计与实现

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

面试必问的 Linux 命令帮你整理好啦...

01.背景 作为一名测试工程师,Linux 是必须要掌握的一项技能。 因为大部分的互联网公司的项目都是搭建和部署在 Linux 服务器上的,所以测试就算不去负责搭建和维护测试环境,也需要在测试过程中去服务器那边定位测试中的问题。 所以&#xf…

PTA L1-027 出租

L1-027 出租(20分) 下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]2 对应 arr[2]1,index[1]0 对应 arr[0…