《REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS》ICLR2023
该文献提出了一个名为ReAct的新方法,旨在将推理和行动在LLMs中结合起来,以解决复杂的语言理解和决策任务。传统的语言模型在处理推理任务时(如CoT)通常是静态的,依赖于模型内部的知识,容易产生幻觉和错误传播。而现有的行动生成模型(如WebGPT)则缺乏推理能力,无法动态调整计划或处理异常情况。ReAct通过交替生成推理轨迹和任务相关行动,使得模型能够在推理过程中动态调整计划,并通过与外部环境(如Wikipedia)交互获取额外信息,从而提升任务的解决能力和可解释性。
实验设计:
- 任务选择:ReAct在四个不同的基准任务上进行了实验:
知识密集型推理任务:HotpotQA(多跳问答)和FEVER(事实验证)。
交互式决策任务:ALFWorld(文本游戏)和WebShop(网页导航)。
- 方法对比:
标准提示(Standard Prompting):仅使用问题生成答案,不包含推理或行动。
链式思维推理(CoT):仅生成推理轨迹,不涉及外部行动。
行动生成(Act):仅生成行动,不包含推理。
ReAct:交替生成推理轨迹和行动,结合内部推理和外部信息获取。
- 实验设置:
在HotpotQA和FEVER任务中,模型通过与Wikipedia API交互获取信息。
在ALFWorld和WebShop任务中,模型通过生成文本行动与虚拟环境交互。
实验使用了PaLM-540B模型,并通过少量示例进行提示(few-shot prompting)。
实验结果
知识密集型推理任务:
ReAct在HotpotQA和FEVER上均优于仅生成行动的模型(Act),尤其是在需要多步推理和外部信息检索的任务中表现更好。
ReAct与CoT相比,在FEVER上表现更好(60.9 vs. 56.3),但在HotpotQA上略逊于CoT(27.4 vs. 29.4)。ReAct的优势在于其推理过程更加基于事实,减少了幻觉问题。
结合ReAct和CoT-SC(自洽链式思维推理)的方法在HotpotQA和FEVER上取得了最佳效果。
交互式决策任务:
在ALFWorld任务中,ReAct的成功率显著高于仅生成行动的模型(71% vs. 45%)和模仿学习模型BUTLER(37%)。
在WebShop任务中,ReAct的成功率比之前的模仿学习和强化学习方法提高了10%。
微调实验:
在HotpotQA任务中,ReAct经过微调后表现显著提升,尤其是在较小的模型(如PaLM-8B和PaLM-62B)上,微调后的ReAct甚至超过了未微调的PaLM-540B模型。
概述
尽管LLMs在语言理解和交互式决策任务中展现了令人印象深刻的性能,但其推理能力(如链式思维推理)和行动能力(如行动计划生成)主要被作为独立的研究课题进行研究。在本文中,我们探索了使用LLMs以交替的方式生成推理轨迹和任务相关行动,从而实现两者之间更大的协同作用:推理轨迹帮助模型推导、跟踪和更新行动计划,并处理异常情况,而行动则允许模型与外部源(如知识库或环境)交互并获取额外信息。我们将我们的方法命名为ReAct,并将其应用于一系列语言和决策任务,展示了其在最先进基线方法之上的有效性,同时提高了人类可解释性和可信度。具体而言,在问答任务(HotpotQA)和事实验证任务(Fever)中,ReAct通过与简单的Wikipedia API交互,克服了链式思维推理中常见的幻觉和错误传播问题,并生成了比没有推理轨迹的基线方法更具可解释性的任务解决轨迹。此外,在两个交互式决策基准(ALFWorld和WebShop)上,ReAct在仅使用一到两个上下文示例的情况下,分别比模仿学习和强化学习方法在绝对成功率上提高了34%和10%。
1. 介绍
人类智能的一个独特特征是能够将任务导向的行动与语言推理(或内心独白)无缝结合,这种能力被认为在人类认知中起着重要作用,能够实现自我调节或策略制定并维持工作记忆。以在厨房烹饪一道菜为例。在任何两个具体行动之间,我们可能会通过语言进行推理,以跟踪进展(“现在所有食材都切好了,我应该加热一锅水”),处理异常情况或根据情况调整计划(“我没有盐,所以让我用酱油和胡椒代替”),并意识到何时需要外部信息(“我该如何准备面团?让我在网上搜索一下”)。我们还可能采取行动(打开食谱书阅读配方,打开冰箱检查食材)以支持推理并回答问题(“我现在可以做什么菜?”)。这种“行动”与“推理”之间的紧密协同作用使人类能够快速学习新任务,并在面对前所未见的情况或信息不确定性时做出稳健的决策或推理。
最近的研究结果暗示了在自主系统中将语言推理与交互式决策结合的可能性。一方面,经过适当提示的LLMs已经展示了在算术、常识和符号推理任务中通过多步推理轨迹从问题中推导答案的新兴能力。然而,这种“链式思维”推理是一个静态的黑箱,模型使用其内部表示生成思维,并未与外部世界进行关联,这限制了其进行反应性推理或更新知识的能力。这可能导致诸如事实幻觉和推理过程中的错误传播等问题(图1(1b))。另一方面,最近的工作探索了使用预训练语言模型在交互环境中进行规划和行动,重点是通过语言先验预测行动。这些方法通常将多模态观察结果转换为文本,使用语言模型生成特定领域的行动或计划,然后使用控制器选择或执行它们。然而,它们并未使用语言模型进行抽象的高层次目标推理或维护工作记忆以支持行动,除了Huang et al. () 进行了一种有限形式的语言推理,以重申当前状态的空间事实。除了这些简单的与少数积木交互的具身任务外,尚未有研究探讨如何以协同方式将推理和行动结合起来解决一般任务,以及这种结合是否能够带来比单独推理或行动更系统的优势。
图1:(1)四种提示方法的比较,(a)标准提示,(b)链式思维(CoT,仅推理),(c)仅行动,(d)ReAct(推理+行动),用于解决HotpotQA问题。(2)(a)仅行动和(b)ReAct提示用于解决ALFWorld游戏的比较。在这两个领域中,我们在提示中省略了上下文示例,仅展示了模型生成的任务解决轨迹(行动、思维)和环境反馈(观察)。
在这项工作中,我们提出了ReAct,一种将推理和行动与语言模型结合以解决多样化语言推理和决策任务的通用范式(图1)。ReAct提示LLMs以交替的方式生成与任务相关的语言推理轨迹和行动,这使得模型能够进行动态推理,以创建、维护和调整高层次行动计划(推理以行动),同时与外部环境(如Wikipedia)交互,将额外信息纳入推理(行动以推理)。
2 REACT: SYNERGIZING REASONING + ACTING
考虑一个代理与环境交互以解决任务的一般设置。在时间步,代理从环境中接收到一个观察
,并根据某种策略
采取一个行动
,其中
是代理的上下文。当映射
高度隐式且需要大量计算时,学习策略是具有挑战性的。例如,图1(1c)中所示的代理无法生成正确的最终行动(行动4)来完成问答任务,因为它需要对轨迹上下文(问题、行动1-3、观察1-3)进行复杂的推理。同样,图1(2a)中所示的代理无法从上下文中理解sinkbasin不包含peppershaker,因此继续生成幻觉行动。
ReAct的核心思想很简单:我们将代理的行动空间扩展为,其中
是语言空间。语言空间中的行动
,我们将其称为思维或推理轨迹,不会影响外部环境,因此不会导致观察反馈。相反,思维
旨在通过推理当前上下文
来组合有用信息,并更新上下文
以支持未来的推理或行动。如图1所示,可能存在各种类型的有用思维,例如分解任务目标并创建行动计划(2b,行动1;1d,思维1),注入与任务解决相关的常识知识(2b,行动1),从观察中提取重要部分(1d,思维2,4),跟踪进展并转换行动计划(2b,行动8),处理异常情况并调整行动计划(1d,思维3),等等。
然而,由于语言空间 是无限的,在这个扩展的行动空间中进行学习是困难的,并且需要强大的语言先验。在本文中,我们主要关注使用冻结的大型语言模型PaLM-540B的设置,通过少量上下文示例提示生成特定领域的行动和自由形式的语言思维以解决任务(图1(1d),(2b))。每个上下文示例都是人类解决任务实例的行动、思维和环境观察的轨迹(见附录C)。对于推理为主要任务的任务(图1(1)),我们交替生成思维和行动,使得任务解决轨迹由多个思维-行动-观察步骤组成。相比之下,对于可能涉及大量行动的决策任务(图1(2)),思维只需要在轨迹的最相关位置稀疏出现,因此我们让语言模型自行决定思维和行动的异步出现。
由于决策和推理能力被集成到大型语言模型中,ReAct具有几个独特的特点:
A) 直观且易于设计:设计ReAct提示非常简单,因为人类注释者只需在采取的行动之上键入他们的思维。本文中没有使用任何临时格式选择、思维设计或示例选择。我们在第3节和第4节中详细介绍了每个任务的提示设计。
B) 通用且灵活:由于灵活的思维空间和思维-行动出现格式,ReAct适用于具有不同行动空间和推理需求的多样化任务,包括但不限于问答、事实验证、文本游戏和网页导航。
C) 高性能且鲁棒:ReAct在仅从一到六个上下文示例中学习的情况下,展示了强大的对新任务实例的泛化能力,在不同领域中始终优于仅推理或仅行动的基线方法。我们还在第3节中展示了启用微调时的额外好处,并在第4节中展示了ReAct性能对提示选择的鲁棒性。
D) 与人类对齐且可控:ReAct承诺了一个可解释的顺序决策和推理过程,人类可以轻松检查推理和事实正确性。此外,人类还可以通过思维编辑来控制或纠正代理行为,如图5在第4节中所示。
3. Knowledge-Intensive Reasoning Tasks 知识密集型推理任务
我们从知识密集型推理任务(如多跳问答和事实验证)开始。如图1(1d)所示,通过与Wikipedia API交互,ReAct能够检索信息以支持推理,同时使用推理来确定下一步要检索的内容,展示了推理与行动的协同作用。
3.1 实验设置
任务领域
我们考虑了两个具有挑战性的知识检索和推理数据集:
-
HotPotQA:一个多跳问答基准,要求对两个或更多Wikipedia段落进行推理。
-
FEVER:一个事实验证基准,每个声明根据是否存在支持该声明的Wikipedia段落被标注为“支持”(SUPPORTS)、“反驳”(REFUTES)或“信息不足”(NOT ENOUGH INFO)。在本工作中,我们在这两个任务中采用仅问题输入的设置,模型仅接收问题/声明作为输入,无法访问支持段落,必须依赖其内部知识或通过与外部环境交互检索知识以支持推理。
行动空间
我们设计了一个简单的Wikipedia Web API,包含三种类型的行动以支持交互式信息检索:
-
search[entity]:如果存在,返回对应实体Wiki页面的前5句话,否则返回Wikipedia搜索引擎中前5个相似实体的建议。
-
lookup[string]:返回包含该字符串的页面中的下一句话,模拟浏览器中的Ctrl+F功能。
-
finish[answer]:以答案结束当前任务。我们注意到,这个行动空间通常只能基于确切的段落名称检索段落的一小部分,这比最先进的词汇或神经检索器要弱得多。目的是模拟人类如何与Wikipedia交互,并迫使模型通过显式的语言推理进行检索。
3.2 方法
ReAct提示
对于HotPotQA和FEVER,我们分别从训练集中随机选择6个和3个案例,并手动编写ReAct格式的轨迹作为提示中的少量示例。类似于图1(1d),每个轨迹由多个思维-行动-观察步骤组成(即密集思维),其中自由形式的思维用于多种目的。具体来说,我们使用以下组合的思维:分解问题(“我需要搜索x,找到y,然后找到z”),从Wikipedia观察中提取信息(“x始于1844年”,“段落中没有提到x”),进行常识推理(“x不是y,所以z必须是...”)或算术推理(“1844 < 1989”),指导搜索重新表述(“也许我可以搜索/查找x”),并综合最终答案(“...所以答案是x”)。更多细节见附录C。
基线方法
我们系统地消解了ReAct轨迹,构建了多个基线的提示(格式如图1(1a-1c)):
-
标准提示(Standard):移除ReAct轨迹中的所有思维、行动和观察。
-
链式思维提示(CoT):移除行动和观察,作为仅推理的基线。我们还构建了一个自洽链式思维基线(CoT-SC),通过在推理过程中采样21个CoT轨迹(解码温度为0.7)并采用多数答案,发现这能持续提升CoT的性能。
-
仅行动提示(Act):移除ReAct轨迹中的思维,类似于WebGPT如何与互联网交互以回答问题,尽管它操作的任务和行动空间不同,并且使用模仿学习和强化学习而不是提示。
结合内部和外部知识
正如第3.3节将详细说明的那样,我们观察到ReAct展示的问题解决过程更加基于事实和可靠,而CoT在构建推理结构时更准确,但容易受到幻觉事实或思维的影响。因此,我们提出将ReAct与CoT-SC结合,并让模型根据以下启发式决定何时切换到另一种方法:
-
ReAct → CoT-SC:当ReAct在给定步骤内未能返回答案时,回退到CoT-SC。我们为HotPotQA和FEVER分别设置了7步和5步,因为我们发现更多的步骤不会提高ReAct的性能。
-
CoT-SC → ReAct:当在n个CoT-SC样本中多数答案出现的次数少于n/2时(即内部知识可能无法自信地支持任务),回退到ReAct。
微调
由于手动标注推理轨迹和行动的规模较大,我们考虑了一种类似于Zelikman et al.(2022)的引导方法,使用由ReAct生成的3000个正确轨迹(也用于其他基线)来微调较小的语言模型(PaLM-8/62B),以解码轨迹(所有思维、行动、观察)并基于输入问题/声明进行解码。更多细节见附录B.1。
3.3 结果与观察
ReAct始终优于Act
表1显示了使用PaLM-540B作为基础模型的不同提示方法在HotPotQA和FEVER上的结果。我们注意到,ReAct在这两个任务上均优于Act,展示了推理在指导行动中的价值,尤其是在综合最终答案时,如图1(1c-d)所示。微调结果也证实了推理轨迹对更明智的行动的好处。
EM:exact match 预测答案与标答完全一致
ReAct与CoT的比较
另一方面,ReAct在FEVER上优于CoT(60.9 vs. 56.3),但在HotPotQA上略逊于CoT(27.4 vs. 29.4)。FEVER的声明可能仅在细微之处有所不同(见附录D.1),因此通过行动检索准确和最新的知识至关重要。为了更好地理解ReAct和CoT在HotPotQA上的行为差异,我们随机抽取了50个ReAct和CoT的正确和错误轨迹(共200个示例),并手动标注了它们的成功和失败模式,如表2所示。一些关键观察如下:
-
幻觉是CoT的严重问题,导致其成功模式中的假阳性率远高于ReAct(14% vs. 6%),并构成了其主要失败模式(56%)。相比之下,ReAct的问题解决轨迹更加基于事实、可靠且可信,这得益于其对外部知识库的访问。
FPR反映模型在负类样本上的错误率。高FPR意味着模型容易将负类误判为正类,即“误报”较多。数值范围[0, 1],越低越好。FPR = 0表示没有假阳性,FPR = 1表示所有负类都被误判为正类。
-
虽然交替推理、行动和观察步骤提高了ReAct的可靠性和可信度,但这种结构约束也降低了其在构建推理步骤时的灵活性,导致其推理错误率高于CoT。我们注意到,ReAct有一个特定的频繁错误模式,即模型重复生成先前的思维和行动,我们将其归类为“推理错误”,因为模型未能推理出应采取的正确下一步行动并跳出循环。
-
对于ReAct,成功检索到有用的知识至关重要。无用的搜索占错误案例的23%,这会扰乱模型的推理,并使其难以恢复和重新表述思维。这可能是事实性与灵活性之间的预期权衡,这也促使我们提出了结合两种方法的策略。
ReAct + CoT-SC在提示LLMs时表现最佳
表1还显示,HotPotQA和FEVER上最佳的提示方法分别是ReAct → CoT-SC和CoT-SC → ReAct。此外,图2展示了不同方法在使用不同数量的CoT-SC样本时的表现。虽然两种ReAct + CoT-SC方法在各自的任务上具有优势,但它们在使用3-5个样本时显著且持续地优于CoT-SC,达到了使用21个样本时的CoT-SC性能。这些结果表明,正确结合模型内部知识和外部知识对于推理任务具有重要价值。
ReAct在微调时表现最佳
图3展示了在HotPotQA上提示/微调四种方法(Standard、CoT、Act、ReAct)的扩展效果。对于PaLM-8/62B,提示ReAct在四种方法中表现最差,因为从上下文示例中学习推理和行动较为困难。然而,当仅使用3000个示例进行微调时,ReAct成为四种方法中表现最好的方法,微调后的PaLM-8B ReAct优于所有PaLM-62B提示方法,而微调后的PaLM-62B ReAct优于所有540B提示方法。相比之下,微调Standard或CoT显著不如微调ReAct或Act,因为前者本质上教会模型记忆(可能是幻觉的)知识事实,而后者教会模型如何(推理并)行动以从Wikipedia访问信息,这是知识推理中更通用的技能。由于所有提示方法仍远未达到特定领域的最先进方法(表1),我们相信使用更多人工编写的数据进行微调可能是释放ReAct潜力的更好方式。
4. decision making tasks 决策任务
我们还在两个基于语言的交互式决策任务上测试了ReAct,分别是ALFWorld和WebShop。这两个任务都包含复杂的环境,要求代理在稀疏奖励的情况下进行长时间的行动,因此需要推理来有效地行动和探索。
ALFWorld
ALFWorld(图1(2))是一个合成的基于文本的游戏,旨在与具身任务基准ALFRED对齐。它包含6种类型的任务,代理需要通过文本行动(例如“去coffeetable 1”,“拿paper 2”,“使用desklamp 1”)在模拟家庭环境中导航和交互,以实现高层次目标(例如“在台灯下检查纸张”)。一个任务实例可能包含超过50个位置,并且专家策略可能需要超过50步才能解决,因此对代理的规划和子目标跟踪能力提出了挑战,同时也需要系统性的探索(例如逐个检查所有桌子以找到台灯)。特别是,ALFWorld中的一个挑战是需要确定常见家居物品的可能位置(例如台灯通常放在桌子、架子或梳妆台上),这使得该环境非常适合LLMs利用其预训练的常识知识。为了提示ReAct,我们为每种任务类型随机注释了三个轨迹,每个轨迹包括稀疏的思维,这些思维(1)分解目标,(2)跟踪子目标完成情况,(3)确定下一个子目标,(4)通过常识推理确定物品的位置以及如何处理它。我们在附录C.4中展示了用于ALFWorld的提示。根据Shridhar et al.(2020b),我们在任务特定的设置下评估了134个未见过的评估游戏。为了鲁棒性,我们通过从我们注释的3个轨迹中每个任务类型选择2个轨迹的排列组合,构建了6个提示。Act提示使用相同的轨迹构建,但没有思维——由于任务实例是从训练集中随机选择的,这既不偏向ReAct也不偏向Act,从而提供了一个公平且受控的比较,以测试稀疏思维的重要性。对于基线方法,我们使用了BUTLER,这是一个模仿学习代理,每个任务类型训练了10^5个专家轨迹。
WebShop
ReAct能否与嘈杂的真实世界语言环境交互以实现实际应用?我们研究了WebShop,这是一个最近提出的在线购物网站环境,包含118万种真实世界产品和12k条人类指令。与ALFWorld不同,WebShop包含大量结构化和非结构化文本(例如从Amazon爬取的产品标题、描述和选项),并要求代理根据用户指令(例如“我正在寻找一个带抽屉的床头柜。它应该有镍饰面,价格低于140美元”)通过网页交互(例如搜索“带抽屉的床头柜”,选择按钮如“颜色:现代镍白色”或“返回搜索”)购买产品。该任务通过平均得分(所选产品覆盖所需属性的百分比在所有情节中的平均值)和成功率(所选产品满足所有要求的情节百分比)在500条测试指令上进行评估。我们使用搜索、选择产品、选择选项和购买等行动构建了Act提示,而ReAct提示则额外通过推理确定要探索的内容、何时购买以及哪些产品选项与指令相关。见表6中的示例提示,以及附录中的表10中的模型预测。我们与一个模仿学习(IL)方法进行了比较,该方法使用1012条人类注释的轨迹进行训练,以及一个模仿+强化学习(IL + RL)方法,该方法额外使用了10587条训练指令进行训练。
结果
ReAct在ALFWorld(表3)和WebShop(表4)上均优于Act。在ALFWorld中,最佳的ReAct试验实现了71%的平均成功率,显著优于最佳的Act(45%)和BUTLER(37%)试验。即使是最差的ReAct试验(48%)也优于这两种方法的最佳试验。此外,ReAct相对于Act的优势在六个受控试验中是一致的,相对性能提升范围从33%到90%,平均为62%。可以在附录D.2.1和D.2.2中找到比较ReAct和Act的示例轨迹。
在WebShop中,一次性的Act提示已经与IL和IL+RL方法表现相当。通过额外的稀疏推理,ReAct实现了显著更好的性能,比之前的最佳成功率提高了10%。通过检查示例,我们发现ReAct更有可能通过推理弥合嘈杂的观察和行动之间的差距,从而识别出与指令相关的产品和选项(例如“对于‘节省空间的客厅脚凳’,该商品有选项‘39x18x18英寸’和‘蓝色’,似乎可以购买”)。然而,现有方法仍远未达到人类专家的性能(表4),人类专家进行了更多的产品探索和查询重新表述,这对于基于提示的方法仍然具有挑战性。
内部推理与外部反馈的价值(ALFWorld)
据我们所知,ReAct是第一个在闭环系统中将推理和行动结合使用LLM应用于交互式环境的演示。也许最接近的前期工作是Inner Monologue (IM),其中具身代理的行动由同名的“内心独白”驱动。然而,IM的“内心独白”仅限于环境状态的观察和代理需要完成的内容以实现目标。相比之下,ReAct中的决策推理轨迹是灵活且稀疏的,允许为不同任务诱导出多样化的推理类型(见第2节)。
为了展示ReAct和IM之间的差异,并强调内部推理与简单的外部反馈反应的重要性,我们使用由IM风格的密集外部反馈组成的思维模式进行了消融实验。如表3所示,ReAct显著优于IM风格的提示(ReAct-IM)(71 vs. 53总体成功率),在六项任务中的五项上具有一致的优势。从定性上看,我们观察到ReAct-IM经常在识别子目标何时完成或下一个子目标应该是什么时出错,这是由于缺乏高层次的目标分解。此外,许多ReAct-IM轨迹难以确定物品在ALFWorld环境中的可能位置,这是由于缺乏常识推理。这两个缺点都可以在ReAct范式中得到解决。更多关于ReAct-IM的细节见附录B.2。ReAct-IM的示例提示见附录C.4,示例轨迹见附录D.2.3。
附录B.2:ReAct-IM 的细节
ReAct-IM 的设计
ReAct-IM 是 ReAct 的一个变体,其思维部分被设计为类似于 Inner Monologue (IM) 的“内心独白”。具体来说,ReAct-IM 的思维主要集中在以下两个方面:
-
分解当前目标:ReAct-IM 会将高层次目标分解为子目标,并在每个子目标完成后更新思维。
-
环境反馈:ReAct-IM 会将环境的当前状态(如物体的位置、任务的完成情况)以文本形式传递给模型,作为其推理过程的一部分。
ReAct-IM 的局限性
ReAct-IM 的思维部分相对固定,主要集中在环境反馈和任务分解上,缺乏对复杂推理和高层次目标的支持。具体来说,ReAct-IM 的思维不包括以下内容:
-
高层次目标推理:ReAct-IM 无法进行抽象的高层次目标推理。
-
常识推理:ReAct-IM 无法利用预训练的常识知识来确定物品的位置或处理方式。
-
异常处理:ReAct-IM 无法动态调整计划以处理异常情况。
ReAct-IM 的实现
在实验中,ReAct-IM 使用与 ReAct 相同的轨迹进行提示,但其思维部分被重新注释为仅包含环境反馈和任务分解。具体来说,每个 ReAct-IM 轨迹包括以下思维:
-
分解当前目标。
-
跟踪当前子目标的完成情况。
-
确定下一步需要完成的子目标。
IM 的局限性:IM 的核心思想主要集中在环境反馈和任务分解上,缺乏对复杂推理和高层次目标的支持。单独使用 IM 可能无法充分展示 ReAct 的优势。
ReAct-IM 的对比性:通过将 IM 的核心思想嵌入到 ReAct 的框架中,可以更直接地对比 ReAct 和 IM 的差异,展示 ReAct 在推理灵活性和任务适应性方面的优势。
特性 ReAct ReAct-IM 思维内容 灵活的推理轨迹,包括目标分解、常识推理、异常处理等。 主要集中在环境反馈和任务分解上,类似于 IM 的“内心独白”。 推理灵活性 高度灵活,允许模型自由生成多种类型的推理。 相对固定,主要集中在环境反馈和任务分解上。 任务适应性 适用于多种任务类型,包括知识密集型推理和交互式决策。 主要用于具身任务,适应性较弱。 实验中的表现 在多个任务上显著优于 ReAct-IM。 在复杂推理和动态调整任务中表现较差。
附录D.2 ALFWorld轨迹
D.2.1 ReAct 轨迹
ReAct 能够正确地找到刀子,清洁它,然后将其放在台面上。
ReAct ALFWorld 轨迹 |
---|
你位于房间的中央。快速环顾四周,你看到一个柜子6、柜子5、柜子4、柜子3、柜子2、柜子1、咖啡机1、台面3、台面2、台面1、抽屉3、抽屉2、抽屉1、冰箱1、垃圾桶1、微波炉1、架子3、架子2、架子1、水槽1、炉灶4、炉灶3、炉灶2、炉灶1和烤面包机1。 |
你的任务是:将一个干净的刀子放在台面上。 |
> 思考:要解决这个任务,我需要找到一个刀子,清洁它,然后把它放在台面上。 |
OK。 |
> 思考:首先我需要找到一个刀子。刀子更可能出现在柜子(1-6)、抽屉(1-3)、台面(1-3)、冰箱(1)、垃圾桶(1)、架子(1-3)、水槽(1)、炉灶(1-4)和烤面包机(1)中。我可以逐个检查,从柜子1开始。 |
OK。 |
> 去柜子1 |
在柜子1上,你看到一个碗1。 |
> 去柜子2 |
柜子2是关闭的。 |
> 去柜子3 |
在柜子3上,你看到一个玻璃瓶1。 |
> 去柜子4 |
在柜子4上,你看到一个马克杯1。 |
> 去柜子5 |
柜子5是关闭的。 |
> 去柜子6 |
柜子6是关闭的。 |
> 去抽屉1 |
抽屉1是关闭的。 |
> 去抽屉2 |
抽屉2是关闭的。 |
> 去抽屉3 |
抽屉3是关闭的。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 去台面2 |
在台面2上,你看到一个杯子1、一个洗碗海绵1、一个玻璃瓶3、一个刀子1、一个盘子2、一个土豆3和一个雕像1。 |
> 思考:现在我找到了一个刀子(1)。接下来,我需要拿起它。 |
OK。 |
> 从台面2上拿起刀子1 |
你从台面2上拿起了刀子1。 |
> 思考:现在我拿起了一个刀子(1)。接下来,我需要去水槽(1)并清洁它。 |
OK。 |
> 去水槽1 |
在水槽1上,你看到一个苹果2、一个勺子2、一个勺子1和一个番茄3。 |
> 清洁刀子1 |
你用水槽1清洁了刀子1。 |
> 思考:现在我清洁了一个刀子(1)。接下来,我需要把它放在台面1上。 |
OK。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 把刀子1放在台面1上 |
你把刀子1放在台面1上。 |
D.2.2 Act 轨迹
Act 能够正确地找到刀子,但在清洁它之前尝试使用水槽,导致任务失败。
Act ALFWorld 轨迹 |
---|
你位于房间的中央。快速环顾四周,你看到一个柜子6、柜子5、柜子4、柜子3、柜子2、柜子1、咖啡机1、台面3、台面2、台面1、抽屉3、抽屉2、抽屉1、冰箱1、垃圾桶1、微波炉1、架子3、架子2、架子1、水槽1、炉灶4、炉灶3、炉灶2、炉灶1和烤面包机1。 |
你的任务是:将一个干净的刀子放在台面上。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 去台面2 |
在台面2上,你看到一个杯子1、一个洗碗海绵1、一个玻璃瓶3、一个刀子1、一个盘子2、一个土豆3和一个雕像1。 |
> 从台面2上拿起刀子1 |
你从台面2上拿起了刀子1。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 清洁刀子1 |
没有发生任何变化。 |
> 去台面3 |
在台面3上,你看到一个面包3、一个黄油刀2、一个手机1、一个信用卡1、一个叉子2、一个盆栽1、一个刀子2、一个铲子1、一个雕像3、一个番茄3、一个番茄2、一个番茄1和一个花瓶2。 |
> 从台面3上拿起刀子2 |
没有发生任何变化。 |
> 去台面2 |
在台面2上,你看到一个杯子1、一个洗碗海绵1、一个玻璃瓶3、一个盘子2、一个土豆3和一个雕像1。 |
> 从台面2上拿起刀子1 |
没有发生任何变化。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 清洁刀子1 |
没有发生任何变化。 |
D.2.3 ReAct-IM 轨迹
ReAct-IM 能够正确地找到刀子,但无法清洁它,导致任务失败。
ReAct-IM ALFWorld 轨迹 |
---|
你位于房间的中央。快速环顾四周,你看到一个柜子6、柜子5、柜子4、柜子3、柜子2、柜子1、咖啡机1、台面3、台面2、台面1、抽屉3、抽屉2、抽屉1、冰箱1、垃圾桶1、微波炉1、架子3、架子2、架子1、水槽1、炉灶4、炉灶3、炉灶2、炉灶1和烤面包机1。 |
你的任务是:将一个干净的刀子放在台面上。 |
> 思考:要解决这个任务,我需要找到一个刀子,清洁它,然后把它放在台面上。 |
OK。 |
> 思考:我需要找到一个刀子。 |
OK。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 思考:我需要找到一个刀子。 |
OK。 |
> 去台面2 |
在台面2上,你看到一个杯子1、一个洗碗海绵1、一个玻璃瓶3、一个刀子1、一个盘子2、一个土豆3和一个雕像1。 |
> 思考:我需要找到一个刀子。 |
OK。 |
> 从台面2上拿起刀子1 |
你从台面2上拿起了刀子1。 |
> 思考:我需要把这个刀子1放在台面1上。 |
OK。 |
> 去台面1 |
在台面1上,你看到一个莴苣2、一个马克杯2、一个胡椒瓶1和一个勺子2。 |
> 思考:我需要把这个刀子1放在台面1上。 |
OK。 |
> 把刀子1放在台面1上 |
你把刀子1放在台面1上。 |
> 思考:我需要把这个刀子1放在台面1上。 |
OK。 |
> 把刀子1放在台面1上 |
没有发生任何变化。 |
5. 相关工作
5.1 语言模型用于推理
或许最著名的使用LLMs进行推理的工作是链式思维(Chain-of-Thought, CoT),它揭示了LLMs在问题解决中制定自己的“思考过程”的能力。随后有几项后续工作,包括用于解决复杂任务的最少到最多提示(Least-to-Most Prompting)、零样本CoT(Zero-Shot-CoT)以及自洽推理(Self-Consistency Reasoning)。最近,Madaan & Yazdanbakhsh(2022)系统地研究了CoT的公式和结构,并观察到符号、模式和文本的存在对CoT的有效性至关重要。其他工作还扩展到了更复杂的推理架构,超越了简单的提示。例如,选择-推理(Selection-Inference)将推理过程分为“选择”和“推理”两个步骤。STaR通过微调模型自身生成的正确定解来引导推理过程。忠实推理(Faithful Reasoning)将多步推理分解为三个步骤,每个步骤由专用的语言模型执行。类似的方法如Scratchpad,它在中间计算步骤上微调语言模型,也展示了在多步计算问题上的改进。与这些方法相比,ReAct不仅仅进行孤立的、固定的推理,而是将模型行动及其相应的观察结果整合到一个连贯的输入流中,使模型能够更准确地进行推理,并解决超越推理的任务(例如交互式决策)。
5.2 语言模型用于决策
LLMs的强大能力使其能够执行超越语言生成的任务,利用LLMs作为决策策略模型变得越来越流行,尤其是在交互环境中。WebGPT使用语言模型与网页浏览器交互,导航网页,并从ELI5中推断复杂问题的答案。与ReAct相比,WebGPT没有显式建模思维和推理过程,而是依赖昂贵的人类反馈进行强化学习。在对话建模中,像BlenderBot和Sparrow这样的聊天机器人,以及任务导向的对话系统如SimpleTOD,也训练语言模型来决策API调用。与ReAct不同,它们没有显式考虑推理过程,并且依赖昂贵的数据集和人类反馈收集来进行策略学习。相比之下,ReAct以更廉价的方式学习策略,因为决策过程只需要语言描述的推理过程。
LLMs也越来越多地用于交互和具身环境中的规划和决策。或许与ReAct最相关的是SayCan和Inner Monologue,它们使用LLMs进行机器人行动规划和决策。在SayCan中,LLMs被提示直接预测机器人可以采取的可能行动,然后通过基于视觉环境的可承受性模型重新排序以进行最终预测。Inner Monologue通过添加同名的“内心独白”进一步改进,该独白被实现为来自环境的注入反馈。据我们所知,Inner Monologue是第一个展示这种闭环系统的工作,ReAct在此基础上进行了构建。然而,我们认为Inner Monologue并不真正包含内心思维——这一点在第4节中进行了详细阐述。我们还注意到,在交互式决策过程中利用语言作为语义丰富的输入在其他设置中也取得了成功。随着LLMs的进步,语言作为一种基本的认知机制将在交互和决策中发挥关键作用。此外,LLMs的进展还激发了像Reed et al.(2022)这样的多功能和通用代理的发展。
6. 结论
我们提出了 ReAct —— 一种简单而有效的方法,用于在大型语言模型中协同推理和行动。通过在多跳问答、事实核查和交互式决策任务上进行的一系列多样化实验,我们展示了 ReAct 在具有可解释决策轨迹的情况下,能够带来卓越的性能。尽管我们的方法简单,但具有大规模行动空间的复杂任务需要更多的演示才能很好地学习,这很容易超出上下文学习的输入长度限制。我们在 HotpotQA 上探索了微调方法,并取得了初步的有希望的结果,但从更多高质量的人工注释中学习将是进一步提高性能的理想选择。通过多任务训练扩展 ReAct,并将其与强化学习等互补范式结合,可能会产生更强大的代理,从而进一步释放大型语言模型在更多应用中的潜力。