2024-11-14
DL论文
00

目录

个人总结
摘要
介绍
R E A CT : SYNERGIZING REASONING + ACTING
知识密集型推理任务
3.1 设置
领域
行动空间
3.2 方法
ReAct 提示
基线
结合内部和外部知识
微调
3.3 结果和观察
ReAct 与 CoT 比较
ReAct + CoT-SC 最适合提示大型语言模型
ReAct 在微调中表现最佳
决策任务
ALFWorld
WebShop
结果
内部推理与外部反馈的价值
相关工作
语言模型在推理中的应用
语言模型在决策中的应用
结论
扩展阅读
CoT(Chain of Thought)
ReAct(Reasoning and Acting)
主要区别
总结

https://arxiv.org/abs/2210.03629

作者单位:

普林斯顿大学计算机科学系 谷歌研究,大脑团队

个人总结

模型回答问题,我们当然期望是由问题直接映射到回答,这需要太多先验数据集训练,在世界上你总能找到问题是没出现在训练集的。这时候就需要一些策略让模型变得聪明一点,而类似CoT,或者本文的ReAct ,就是在试图让大模型变得会思考问题,人思考一个问题有可能会发散,比如问题是"你是人吗",那么人的大脑直接回答"我是人",那如果问题是"腾讯投资的前个公司叫啥名",人就会借助工具开始发散了。

一些复杂问题或者密集问题,人都需要发散思考,然后得到答案,而解决问题的途径,正是这些框架想做的事情。

摘要

尽管大型语言模型(LLMs)在语言理解和交互决策任务中表现出色,但其推理能力(例如链式思维提示)和行动能力(例如行动计划生成)主要被作为独立主题进行研究。本文探讨了使用LLMs以交错方式生成推理轨迹和特定任务的行动,从而增强两者之间的协同效应:推理轨迹有助于模型推导、跟踪和更新行动计划,并处理异常情况;而行动则允许模型与外部知识库或环境交互,获取额外信息。我们将这种方法命名为ReAct,并将其应用于一系列语言和决策任务中,展示了其在最先进的基线方法上的优越性,同时提高了人类的可解释性和可信度。具体而言,在问答(HotpotQA)和事实验证(Fever)任务中,ReAct通过与简单的Wikipedia API交互,克服了链式思维推理中的幻觉和错误传播问题,并生成了比没有推理轨迹的基线方法更具可解释性的人类任务解决路径。此外,在两个交互决策基准测试(ALFWorld和WebShop)中,ReAct仅需一到两个上下文示例提示,就分别以34%和10%的绝对成功率超越了模仿学习和强化学习方法。

介绍

人类智能的一个独特特征是能够无缝地将任务导向的行为与语言推理(或内心言语,Alderson-Day & Fernyhough, 2015)结合起来。这一能力被认为在人类认知中发挥着重要作用,有助于自我调节或策略规划(Vygotsky, 1987; Luria, 1965; Fernyhough, 2010),并维持工作记忆(Baddeley, 1992)。以厨房烹饪一道菜为例,在任何两个具体动作之间,我们可能会用语言进行推理,以跟踪进度(“现在所有东西都切好了,我应该加热一锅水”),处理异常情况或根据情境调整计划(“我没有盐,所以让我改用酱油和胡椒”),并意识到何时需要外部信息(“如何准备面团?让我上网查一下”)。我们还可能采取行动(打开食谱书阅读菜谱、打开冰箱检查原料)以支持推理并回答问题(“我现在能做哪道菜?”)。这种“行为”与“推理”之间的紧密协同作用使人类能够快速学习新任务,并在以前未见过的情况或面对信息不确定性时,进行稳健的决策和推理。

在算术、常识和符号推理任务中,大规模语言模型(LLMs)已经展示了从问题中得出答案的能力(Wei et al., 2022)。

然而,这种“思维链”推理是一个静态的黑箱,即模型使用其内部表示生成思想,并未与外部世界建立联系,这限制了其反应性推理或更新知识的能力。

这可能导致事实幻觉和推理过程中的错误传播(图1 (1b))。另一方面,近期的研究探索了在交互环境中使用预训练语言模型进行规划和行动的可能性(Ahn et al., 2022; Nakano et al., 2021; Yao et al., 2020; Huang et al., 2022a),重点是通过语言先验预测动作。这些方法通常将多模态观察转化为文本,使用语言模型生成特定领域的动作或计划,然后使用控制器选择或执行它们。然而,它们并未利用语言模型进行高层次目标的抽象推理或维持工作记忆以支持行动,除了Huang等人(2022b)进行了有限形式的语言推理,重新阐述了当前状态的空间事实。在与少数块体互动的简单具身任务之外,尚未有研究探讨如何将推理和行动结合起来,以协同方式解决一般性任务,并探讨这种结合是否能带来相对于单独进行推理或行动的系统性优势。

在这项工作中,我们提出了ReAct,一种通用范式,通过语言模型结合推理和行动来解决多样化的语言推理和决策任务(图1)。ReAct提示LLMs生成与任务相关的语言推理痕迹和动作,并以交错的方式进行,使模型能够进行动态推理,创建、维持和调整高层次的行动计划(推理以行动),同时与外部环境(如维基百科)互动,将额外信息纳入推理过程(行动以推理)。

我们在四个不同的基准上对ReAct和最先进的基线进行了实证评估:问答(HotPotQA,Yang等,2018),事实验证(Fever,Thorne等,2018),基于文本的游戏(ALFWorld,Shridhar等,2020b),以及网页导航(WebShop,Yao等,2022)。对于HotPotQA和Fever,在模型可以与之交互的Wikipedia API的支持下,ReAct在性能上超过了普通的动作生成模型,同时与链式思维推理(CoT)(Wei等, 2022)具有竞争力。总体最佳的方法是结合了ReAct和CoT的方法,该方法允许在推理过程中使用内部知识和外部获取的信息。 在ALFWorld和WebShop中,即使是一次或两次的ReAct提示也能够超越通过10^3至10^5个任务实例训练的模仿学习或强化学习方法,成功率分别提高了34%和10%。我们还展示了稀疏、多用途推理在决策中的重要性,通过与仅包含动作的控制基线相比,表现出一致的优势。除了通用性和性能提升外,推理与行动的结合还有助于提高模型的可解释性、可信度和诊断能力,因为人类可以轻松区分来自模型内部知识的信息和外部环境的信息,并检查推理轨迹以理解模型行为的决策基础。

总结我们的主要贡献如下:(1)我们引入了ReAct,一种新颖的基于提示的范式,旨在将推理与行动结合在语言模型中,以实现通用任务解决;(2)我们在多个基准上进行了广泛的实验,展示了在少样本学习设置下,相比仅进行推理或单独生成动作的方法,ReAct的优势;(3)我们通过系统的消融实验和分析,探讨了在推理任务中行动的重要性以及在交互任务中的推理的重要性;(4)我们分析了在提示设置下的ReAct的局限性(即对推理和行为的支持有限),并进行了初步的微调实验,展示了ReAct可以通过额外的训练数据得到改进。将ReAct扩展到更多的任务上进行训练和操作,并将其与强化学习等互补范式结合,可以进一步释放大型语言模型的潜力。

R E A CT : SYNERGIZING REASONING + ACTING

ReAct: 协同推理与行动

考虑一个代理与环境交互以解决任务的一般设置。在时间步tt,代理从环境中接收一个观察otOo_t \in O,并根据某种策略π(atct)\pi(a_t | c_t)采取一个动作atAa_t \in A,其中ct=(o1,a1,,ot1,at1,ot)c_t = (o_1, a_1, \cdots, o_{t-1}, a_{t-1}, o_t)是代理的上下文。当映射ctatc_t \rightarrow a_t高度隐含且需要大量计算时,学习策略是具有挑战性的。例如,图1(1c)中显示的代理无法生成正确的最终动作(Act 4)来完成QA任务,因为这需要对轨迹上下文(Question, Act 1-3, Obs 1-3)进行复杂的推理。同样,图1(2a)中显示的代理无法从上下文中理解sinkbasin 1不包含peppershaker 1,因此继续生成幻想的动作。

ReAct的想法很简单:我们扩展代理的动作空间到A^=AL\hat{A} = A \cup L,其中LL是语言空间。在语言空间中的动作a^tL\hat{a}_t \in L,我们称之为思考或推理痕迹,不影响外部环境,因此不会导致观察反馈。相反,思考a^t\hat{a}_t旨在通过推理当前上下文ctc_t来组合有用的信息,并更新上下文ct+1=(ct,a^t)c_{t+1} = (c_t, \hat{a}_t)以支持未来的推理或行动。如图1所示,可能存在各种有用的思考,例如分解任务目标和创建行动计划(2b, Act 1; 1d, Thought 1),注入与任务解决相关的常识知识(2b, Act 1),从观察中提取重要部分(1d, Thought 2, 4),跟踪进度和转换行动计划(2b, Act 8),处理例外情况并调整行动计划(1d, Thought 3)等。

然而,由于语言空间LL是无限的,在这个扩展的动作空间中学习是困难的,并且需要强大的语言先验。在本文中,我们主要关注这样一种设置:一个冻结的大型语言模型PaLM-540B(Chowdhery et al., 2022)被提示以少量上下文示例生成特定领域的动作和自由形式的语言思考以解决任务(图1(1d),(2b))。每个上下文示例都是一个人类行动、思考和环境观察的轨迹,用于解决一个任务实例(见附录C)。对于以推理为主要重要性的任务(图1(1)),我们交替生成思考和动作,以便任务解决轨迹由多个思考-动作-观察步骤组成。相比之下,对于可能涉及大量动作的决策任务(图1(2)),思考只需出现在轨迹中最相关的位置,因此我们让语言模型自行决定异步出现的思考和动作。

由于决策制定和推理能力集成在一个大型语言模型中,ReAct具有几个独特的特性:A)直观且易于设计:设计ReAct提示非常简单,因为人类注释者只需在他们采取的行动基础上用语言记录下他们的思考。本文中没有使用特别的格式选择、思考设计或示例选择。我们在第3和第4节详细介绍了每个任务的提示设计。B)通用且灵活:由于思考空间和思考-行动出现格式的灵活性,ReAct适用于具有不同动作空间和推理需求的多种任务,包括但不限于QA、事实验证、文字游戏和网页导航。C)性能优越且稳健:ReAct在仅从上下文中的一到六个示例中学习时,对新的任务实例表现出强大的泛化能力,并且在不同领域中持续优于仅推理或行动的基线。我们在第3节展示了启用微调时的额外好处,并在第4节展示了ReAct性能对提示选择的稳健性。D)与人类对齐且可控:ReAct提供了一种可解释的顺序决策和推理过程,人类可以轻松检查推理和事实的正确性。此外,如第4节图5所示,人类还可以通过编辑思考来实时控制或纠正代理行为。

知识密集型推理任务

我们从知识密集型推理任务开始,比如多跳问题回答和事实验证。如图1(1d)所示,通过与Wikipedia API互动,ReAct能够检索信息以支持推理,同时也通过推理来确定接下来需要检索什么,展示了推理和行动的协同作用。

3.1 设置

领域

我们考虑两个挑战知识检索和推理的数据集:(1)HotPotQA (Yang et al., 2018),一个多跳问题回答基准,要求对两个或更多Wikipedia段落进行推理,以及(2)FEVER (Thorne et al., 2018),一个事实验证基准,其中每个声明根据是否存在Wikipedia段落支持验证被标注为SUPPORTS、REFUTES或NOT ENOUGH INFO。在这项工作中,我们在仅问题的设置下操作这两个任务,即模型只接收问题/声明作为输入,而没有访问支持段落,必须依靠其内部知识或通过与外部环境的互动来检索知识以支持推理。

行动空间

我们设计了一个简单的Wikipedia web API,具有三种类型的行动以支持互动信息检索:(1)search [ entity ],返回对应实体wiki页面的前5句,如果不存在,则从Wikipedia搜索引擎中建议前五个相似实体,(2)lookup [ string ],返回包含字符串的页面中的下一句,模拟浏览器上的Ctrl+F功能。(3)finish [ answer ],以答案完成当前任务。我们注意到,这个行动空间大多只能基于确切的段落名称检索一小部分段落,这明显弱于最先进的词汇或神经检索器。其目的是模拟人类如何与Wikipedia互动,并迫使模型通过语言中的明确推理进行检索。

3.2 方法

ReAct 提示

对于HotpotQA和Fever,我们从训练集中随机选择6和3个案例,并手动编写ReAct格式的轨迹,作为提示中的少样本示例。类似于图1(d),每个轨迹由多个思考-行动-观察步骤组成(即密集思考),其中自由形式的思考用于各种目的。具体地,我们使用问题分解的思考组合(“我需要搜索x,找到y,然后找到z”),从Wikipedia观察中提取信息(“x于1844年开始”,“段落没有说明x”),进行常识推理(“x不是y,所以z必须是...),或算术推理(“1844 < 1989”),指导搜索重构(“也许我可以搜索/查找x”),并合成最终答案(“...所以答案是x”)。更多详情见附录C。

基线

我们系统地剔除ReAct轨迹以构建多种基线的提示(格式如图1(1a-1c)):(a) 标准提示(Standard),删除ReAct轨迹中的所有思考、行动、观察。(b) 连锁思考提示(CoT)(Wei et al., 2022),删除行动和观察,并作为仅推理的基线。我们还通过在推理中使用解码温度为0.7采样21个CoT轨迹并采用多数答案,构建了一个自一致性基线(CoT-SC)(Wang et al., 2022a;b),发现其性能始终优于CoT。(c) 仅行动提示(Act),删除ReAct轨迹中的思考,松散地类似于WebGPT (Nakano et al., 2021)与互联网互动回答问题的方式,尽管其操作于不同的任务和行动空间,并使用模仿和强化学习而不是提示。

结合内部和外部知识

如将在第3.3节详细说明,我们观察到ReAct展示的问题解决过程更加事实性和基础性,而CoT在构建推理结构方面更为准确,但容易受到虚构事实或思考的影响。因此,我们提出结合ReAct和CoT-SC,并让模型根据以下启发式方法决定何时切换到另一种方法:A)ReAct → CoT-SC:当ReAct在给定步骤内未能返回答案时,退回到CoT-SC。我们为HotpotQA和FEVER分别设置7和5步,因为发现更多步骤不会提高ReAct性能。B)CoT-SC → ReAct:当n个CoT-SC样本中的多数答案出现次数少于n/2次时(即内部知识可能无法自信地支持任务),退回到ReAct。

微调

由于大规模手动注释推理轨迹和行动的挑战,我们考虑了一种类似于Zelikman et al. (2022)的引导方法,使用3,000个由ReAct生成的正确答案轨迹(也用于其他基线)微调较小的语言模型(PaLM-8/62B)以解码轨迹(所有思考、行动、观察),以输入问题/声明为条件。更多细节见附录B.1。

3.3 结果和观察

ReAct始终优于Act

表1显示了使用PaLM-540B作为基础模型的HotpotQA和Fever结果,采用不同的提示方法。我们注意到ReAct在两个任务上都优于Act,展示了推理指导行动的价值,尤其是在合成最终答案时,如图1 (1c-d)所示。微调结果也确认了推理轨迹对更知情的行动的益处。

ReAct 与 CoT 比较

另一方面,ReAct 在 Fever 数据集上的表现优于 CoT(60.9 vs. 56.3),而在 HotpotQA 数据集上稍逊于 CoT(27.4 vs. 29.4)。Fever 的 SUPPORTS/REFUTES 声明可能只相差微小(详见附录 D.1),因此采取行动以检索准确和最新的知识至关重要。为了更好地理解 ReAct 和 CoT 在 HotpotQA 上的行为差异,我们分别从 ReAct 和 CoT 中随机抽取了 50 条正确和错误答案的轨迹(由 EM 判断),并在表 2 中手动标记了它们的成功和失败模式。以下是一些关键观察:

A) 幻觉是 CoT 的一个严重问题,导致其成功模式下的假阳性率远高于 ReAct(14% vs. 6%),并且是其主要失败模式(56%)。相比之下,由于能够访问外部知识库,ReAct 的问题解决轨迹更为扎实、以事实为驱动,并且更具可信度。

B) 虽然交替进行推理、行动和观察步骤提高了 ReAct 的扎实性和可信度,但这种结构约束也降低了其在制定推理步骤时的灵活性,导致其推理错误率高于 CoT。我们注意到 ReAct 中存在一种特定的频繁错误模式,即模型反复生成先前的想法和行动,我们将其归类为“推理错误”的一部分,因为模型未能推理出适当的下一步行动,并跳出循环。

C) 对于 ReAct,成功检索信息丰富的知识至关重要。不具信息性的搜索占错误案例的 23%,会使模型的推理偏离轨道,并使其难以恢复和重新制定想法。这可能是在事实性和灵活性之间的预期权衡,促使我们提出结合两种方法的策略。

我们在附录 E.1 中为每种成功和失败模式提供示例。我们还发现一些 HotpotQA 问题可能包含过时的答案标签,详见图 4。

ReAct + CoT-SC 最适合提示大型语言模型

如表 1 所示,HotpotQA 和 Fever 上的最佳提示方法分别是 ReAct → CoT-SC 和 CoT-SC → ReAct。此外,图 2 显示了不同方法随着 CoT-SC 样本数量变化的表现。虽然两种 ReAct + CoT-SC 方法在各自任务中具备优势,但它们在不同样本数量上显著且持续地优于 CoT-SC,用仅 3-5 个样本即可达到 21 个 CoT-SC 样本的性能。这些结果表明,适当地结合模型内部知识和外部知识对推理任务的价值。

ReAct 在微调中表现最佳

图 3 显示了在 HotpotQA 上对四种方法(Standard、CoT、Act、ReAct)进行提示/微调的扩展效果。使用 PaLM-8/62B 时,由于学习上下文示例中的推理和行动的难度,提示 ReAct 在四种方法中表现最差。然而,当仅用 3,000 个示例进行微调后,ReAct 成为四种方法中表现最佳的,PaLM-8B 微调的 ReAct 超过了所有 PaLM-62B 的提示方法,PaLM-62B 微调的 ReAct 超过了所有 540B 的提示方法。相比之下,无论是 PaLM-8/62B,微调 Standard 或 CoT 都明显不如微调 ReAct 或 Act,因为前者本质上教导模型记住(可能是幻觉的)知识事实,而后者教导模型如何(推理和)行动以从 Wikipedia 获取信息,这是一种更具普遍性的知识推理技能。由于所有提示方法仍显著低于特定领域的最先进方法(表 1),我们相信用更多人工撰写的数据进行微调可能是释放 ReAct 潜力的更好方法。

决策任务

我们还在两个基于语言的交互式决策任务ALFWorld和WebShop上测试了ReAct。这两个任务都具有复杂的环境,要求代理在长时间跨度内行动,同时奖励稀少,因此需要进行推理以有效地行动和探索。

ALFWorld

ALFWorld(Shridhar等,2020b)(图1(2))是一个合成的基于文本的游戏,旨在与体现化的ALFRED基准(Shridhar等,2020a)对齐。它包括6种类型的任务,代理需要通过文本动作(例如,去咖啡桌1,拿纸2,使用台灯1)导航并与模拟的家庭互动,以实现高层次的目标(例如,在台灯下检查纸张)。一个任务实例可能有超过50个位置,需要专家策略超过50步来解决,因此挑战代理规划和跟踪子目标,以及系统地探索(例如,一个一个地检查所有桌子以寻找台灯)。特别地,ALFWorld内置的一个挑战是需要确定常见家居物品的可能位置(例如,台灯可能在桌子、架子或梳妆台上),这使得这个环境非常适合利用LLM的预训练常识知识。为了激励ReAct,我们从训练集中随机标注每种任务类型的三个轨迹,每个轨迹包括稀疏的思考,这些思考(1)分解目标,(2)跟踪子目标的完成,(3)确定下一个子目标,以及(4)通过常识推断在哪里找到一个物品以及如何处理它。ALFWorld中使用的提示见附录C.4。根据Shridhar等(2020b)的研究,我们在134个未见的评估游戏中进行任务特定设置的评估。为保证稳健性,我们通过从标注的3个轨迹中每种任务类型的2个轨迹的排列构建6个提示。Act提示使用相同的轨迹构建,但不包含思考——由于任务实例是从训练集中随机选择的,因此既不偏向ReAct也不偏向Act,并提供一个公平且受控的比较来测试稀疏思考的重要性。对于基线,我们使用BUTLER(Shridhar等,2020b),这是一个在每种任务类型的10万条专家轨迹上训练的模仿学习代理。

WebShop

ReAct也可以与噪声较大的现实世界语言环境进行交互以实现实际应用吗?我们研究了WebShop(Yao等,2022),这是一种最近提出的在线购物网站环境,包含118万种现实世界产品和12k条人类指令。与ALFWorld不同,WebShop包含高度多样化的结构化和非结构化文本(例如,从Amazon抓取的产品标题、描述和选项),并要求代理根据用户指令(例如,“我在寻找带抽屉的床头柜。它应有镍色饰面,价格低于$140”)通过网页交互购买产品(例如,搜索“床头柜抽屉”,选择按钮如“颜色:现代镍白”或“返回搜索”)。该任务通过平均得分(所选产品所覆盖的期望属性的百分比,跨所有情节计算平均值)和成功率(所选产品满足所有要求的情节百分比)在500条测试指令上进行评估。我们制定Act提示以进行搜索、选择产品、选择选项和购买,ReAct提示则额外通过推理来确定探索内容、购买时机以及哪些产品选项与指令相关。示例提示见表6,模型预测见附录表10。我们与用1012个人类标注轨迹训练的模仿学习(IL)方法和额外用10,587条训练指令训练的模仿+强化学习(IL+RL)方法进行比较。

结果

ReAct在ALFWorld(表3)和WebShop(表4)上均优于Act。在ALFWorld上,最佳的ReAct试验实现了71%的平均成功率,显著优于最佳Act(45%)和BUTLER(37%)试验。实际上,即使是表现最差的ReAct试验(48%)也超过了这两种方法的最佳试验。此外,ReAct对Act的优势在六个受控试验中是一致的,相对性能提升范围从33%到90%,平均为62%。定性上,我们发现,如果没有任何思考,Act无法正确地将目标分解为较小的子目标,或者无法跟踪环境的当前状态。比较ReAct和Act的示例轨迹可以在附录D.2.1和附录D.2.2中找到。

在WebShop中,一次性Act提示已经与IL和IL+RL方法表现相当。通过额外的稀疏推理,ReAct实现了显著更好的性能,相对之前最佳成功率有绝对10%的提升。通过检查示例,我们发现ReAct更有可能通过推理来弥合噪声观察与行动之间的差距,从而识别与指令相关的产品和选项(例如,“对于‘节省空间的客厅用脚凳长椅’,该物品有‘39x18x18英寸’和‘蓝色’的选项,看起来很不错,可以购买。”)。然而,现有方法仍然远未达到专家人类的表现(表4),他们进行显著更多的产品探索和查询重新表述,这对基于提示的方法仍然是一个挑战。

内部推理与外部反馈的价值

据我们所知,ReAct是首次展示使用LLM在闭环系统内应用于交互环境的结合推理和行动的示例。或许最接近的先前工作是Huang等人(2022b)的Inner Monologue(IM),其中体现化代理的行动是由同名的“内心独白”驱动。然而,IM的“内心独白”仅限于对环境状态的观察以及代理为满足目标需要完成的内容。相比之下,ReAct中的决策推理轨迹是灵活和稀疏的,允许为不同任务引入多种推理类型(见第2节)。

为了展示ReAct和IM之间的差异,并强调内部推理与简单反应于外部反馈的重要性,我们进行了一个消融实验,使用一个由类似IM的密集外部反馈组成的思考模式。正如表3所示,ReAct大幅超越IM风格的提示(ReAct-IM)(71对53的总体成功率),在六个任务中的五个上具有一致的优势。定性上,我们观察到ReAct-IM经常在识别子目标完成的时间点或下一个子目标应该是什么时犯错,因缺乏高层次的目标分解。此外,许多ReAct-IM轨迹因缺乏常识推理而难以确定一个物品在ALFWorld环境中的可能位置。ReAct范式可以解决这两个问题。有关ReAct-IM的更多细节见附录B.2。ReAct-IM的一个示例提示可以在附录C.4中找到,示例轨迹见附录D.2.3。

相关工作

语言模型在推理中的应用

或许在使用大型语言模型(LLMs)进行推理的研究中,最为人熟知的工作是Chain-of-Thought(CoT)(Wei等,2022),该研究揭示了LLMs能够为问题解决制定自己的“思考过程”的能力。自此之后,出现了若干后续研究,包括用于解决复杂任务的least-to-most prompting(Zhou等,2022)、zero-shot-CoT(Kojima等,2022)以及使用自洽性进行推理(Wang等,2022a)。最近,Madaan和Yazdanbakhsh(2022)系统地研究了CoT的形式和结构,并观察到符号、模式和文本的存在对CoT的有效性至关重要。其他工作也扩展到了比简单提示更复杂的推理结构。例如,Selection-Inference(Creswell等,2022)将推理过程分为“选择”和“推理”两步进行。STaR(Zelikman等,2022)通过对模型生成的正确推理进行微调来引导推理过程。Faithful reasoning(Creswell & Shanahan,2022)将多步骤推理分解为三个步骤,每个步骤分别由专门的语言模型执行。类似的方法如Scratchpad(Nye等,2021),通过在中间计算步骤上微调语言模型,也在多步骤计算问题上显示了改进。与这些方法不同,ReAct不仅仅执行孤立和固定的推理,还整合了模型动作及其对应的观察结果,形成了一个连贯的输入流,从而使模型能够更准确地进行推理并处理超出推理范围的任务(例如,交互式决策)。

语言模型在决策中的应用

LLMs的强大能力使其能够执行超出语言生成的任务,越来越多地被用作决策的策略模型,特别是在交互环境中。WebGPT(Nakano等,2021)使用语言模型与网络浏览器交互,浏览网页,并从ELI5(Fan等,2019)中推断复杂问题的答案。与ReAct相比,WebGPT并没有明确地建模思考和推理过程,而是依赖昂贵的人类反馈进行强化学习。在会话建模中,像BlenderBot(Shuster等,2022b)和Sparrow(Glaese等,2022)这样的聊天机器人以及像SimpleTOD(Hosseini-Asl等,2020)这样的任务导向对话系统也训练语言模型来做出关于API调用的决策。与ReAct不同的是,它们同样没有明确考虑推理过程,并且依赖昂贵的数据集和人类反馈收集进行策略学习。相比之下,ReAct以更低的成本学习策略,因为决策过程仅需要推理过程的语言描述。

LLMs也越来越多地被用于计划和决策的交互和具身环境中。在这方面,与ReAct最相关的或许是SayCan(Ahn等,2022)和Inner Monologue(Huang等,2022b),它们使用LLMs进行机器人行动规划和决策。在SayCan中,LLMs被提示直接预测机器人可以采取的可能行动,然后由基于视觉环境的可供性模型重新排序以进行最终预测。Inner Monologue通过添加同名的“内心独白”进一步改进,这被实现为来自环境的注入反馈。据我们所知,Inner Monologue是第一个展示这种闭环系统的工作,ReAct在此基础上构建。然而,我们认为Inner Monologue并不真正包括内心思考——这一点将在第4节详细说明。我们还注意到,在交互式决策过程中利用语言作为语义丰富的输入在其他设置下已被证明是成功的(Abramson等,2020;Karamcheti等,2021;Huang等,2022a;Li等,2022)。越来越明显的是,在LLMs的帮助下,语言作为一种基本的认知机制将在交互和决策中发挥关键作用。此外,LLMs的进展也激发了像Reed等(2022)这样的多功能和通才智能体的发展。

结论

我们提出了ReAct——一种在大型语言模型中协同推理和行动的简单而有效的方法。通过在多跳问答、事实检查和交互式决策任务上的一系列实验,我们展示了ReAct能够带来具有可解释决策轨迹的卓越表现。尽管我们的方法简单,但具有大动作空间的复杂任务需要更多的示例来学习,这不幸地很容易超出上下文学习的输入长度限制。我们在HotpotQA上探索了微调方法,并获得了初步的令人鼓舞的结果,但从更多高质量的人类注释中学习将是进一步提高性能的理想选择。通过多任务训练扩展ReAct,并将其与补充范式如强化学习相结合,可能会产生更强大的智能体,进一步释放LLMs在更多应用中的潜力。

扩展阅读

CoT(Chain of Thought)和 ReAct(Reasoning and Acting) 都是基于大语言模型(LLM)进行推理的策略,它们在处理问题时有所不同,尤其是在任务的执行方式上。

CoT(Chain of Thought)

CoT 指的是“思维链”方法。它的核心理念是通过将推理过程链式展开,使得模型能够逐步推理并清楚地展示出其思考的步骤。这种方法可以帮助模型在解决复杂问题时,逐步揭示其思维过程,从而提高推理的准确性和可解释性。

  • 工作方式:CoT会将解决问题的过程拆解成一系列的推理步骤,每一步推理都以自然语言表示出来。例如,在数学问题中,模型首先会列出已知条件,然后逐步推导出答案。
  • 优势
    1. 提高推理的透明度,能够理解模型是如何做出判断的。
    2. 对复杂任务(如数学推理、逻辑推理等)效果较好,因为能够分解问题并逐步解决。
  • 缺点:可能会增加推理的冗余性,特别是当问题简单时,展开冗长的推理链会降低效率。

例子: 问题:“如果今天是星期一,那么三天后的星期几?” CoT推理:

  1. 今天是星期一
  2. 明天是星期二
  3. 后天是星期三
  4. 三天后是星期四
    因此,答案是星期四

ReAct(Reasoning and Acting)

ReAct 则是结合了推理(Reasoning)与行动(Acting)的策略。在ReAct框架下,模型不仅需要进行推理,还要根据推理结果采取行动。ReAct强调模型在推理的同时进行动态调整和响应,在处理任务时既能推理又能“行动”或执行某些操作。

  • 工作方式:ReAct方法将推理与实际行动结合起来,通常应用于需要与环境交互的任务。除了进行推理外,模型还会执行某些“动作”来进一步解决问题(比如在搜索任务中进行某些操作,在问题求解中执行某些步骤等)。
  • 优势
    1. 更适合实际应用场景,尤其是动态环境中,需要模型不仅思考还需要行动。
    2. 适用于多种复杂的决策任务,能够模拟人类在做决策时的推理和反应。
  • 缺点:与CoT相比,可能更复杂,涉及的步骤更多,且容易受到环境或任务变化的影响。

例子: 问题:“我如何找到一个好的餐馆?” ReAct推理:

  1. 首先,分析我所在的城市或位置。
  2. 调用本地搜索工具找到餐馆信息。
  3. 检查餐馆的评价和推荐。
  4. 根据评价选择最合适的餐馆并执行预定。

主要区别

  1. 推理方式

    • CoT 强调的是一步一步的推理链,将思考过程展示出来。
    • ReAct 更强调推理和行动的结合,解决问题的过程中同时进行思考和行动。
  2. 应用场景

    • CoT 更适用于推理和知识生成类问题(如数学推理、逻辑推理等)。
    • ReAct 更适用于动态交互任务,尤其是那些需要“行动”以推动问题解决的场景。
  3. 任务复杂性

    • CoT 主要集中在问题的分析和推理,解决方案较为静态。
    • ReAct 结合了推理与实际操作,适用于需要模型根据反馈调整其行为的任务。

总结

  • CoT 是一种推理链式展开的方法,更适用于推理密集型任务,能够提高推理过程的可解释性和透明度。
  • ReAct 则是一种将推理与行动结合的方法,适用于需要在任务中做出响应和调整的动态任务。

这两种方法各有优劣,适用的场景也有所不同。

看这个例子:

ReAct强调了要思考,然后行动。

CoT强调了一步一步思考,没有行动。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!