阅读:REACT: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS(在语言模型中协同推理与行动)
原文地址:https://arxiv.org/pdf/2210.03629
摘要
尽管大型语言模型(LLMs)在语言理解和交互决策任务上展现了令人印象深刻的性能,但它们的推理能力(如思维链提示)和行动能力(如行动计划生成)主要被作为独立主题研究。本文探索了使用LLMs以交错方式同时生成推理轨迹和特定任务行动的方法,从而在两者之间实现更大的协同效应:推理轨迹帮助模型引导、跟踪和更新行动计划以及处理异常情况,而行动则允许模型与外部信息源(如知识库或环境)交互并收集额外信息。我们将这种方法命名为ReAct,并将其应用于多种语言和决策任务,证明了它相较于最先进的基线方法具有更好的效果,同时提高了人类可解释性和可信度。具体而言,在问答(HotpotQA)和事实验证(Fever)任务上,ReAct通过与简单的维基百科API交互,克服了思维链推理中普遍存在的幻觉和错误传播问题,并生成了比无推理轨迹基线更具可解释性的类人任务解决轨迹。此外,在两个交互式决策基准测试(ALFWorld和WebShop)上,ReAct分别以34%和10%的绝对成功率超过了模仿学习和强化学习方法,仅需一两个上下文示例进行提示。
1 引言
人类智能的一个独特特征是能够无缝结合任务导向的行动和语言推理(或内部言语),这被理论认为在人类认知中扮演重要角色,能够实现自我调节或策略制定并维持工作记忆。考虑在厨房做菜的例子。在任何两个特定行动之间,我们可能会用语言进行推理,以跟踪进度("现在所有东西都切好了,我应该把水烧开"),处理异常情况或根据情况调整计划("我没有盐,所以让我用酱油和胡椒代替"),并意识到何时需要外部信息("我该如何准备面团?让我在互联网上搜索")。我们也可能采取行动(打开食谱,打开冰箱,检查材料)来支持推理并回答问题("我现在能做什么菜?")。这种"行动"和"推理"之间的紧密协同使人类能够快速学习新任务并进行强健的决策或推理,即使在前所未见的情况下或面对信息不确定性时也是如此。
最近的研究结果暗示了在自主系统中结合语言推理和交互式决策的可能性。一方面,经过适当提示的大型语言模型已经表现出能够进行多步推理轨迹的能力。然而,这种"思维链"推理是一个静态的黑盒,模型使用自己的内部表示生成想法而不与外部世界连接,限制了它反应式推理或更新知识的能力,可能导致事实幻觉和错误传播。另一方面,近期工作探索了使用预训练语言模型在交互环境中进行规划和行动,重点是通过语言先验预测行动。然而,这些方法并不使用语言模型对高级目标进行抽象推理或维持工作记忆来支持行动。
本文提出了ReAct,这是一种将推理和行动与语言模型结合起来解决多样化语言推理和决策任务的通用范式。ReAct提示LLMs以交错方式生成与任务相关的语言推理轨迹和行动,使模型能够进行动态推理创建、维护和调整行动计划(推理以行动),同时与外部环境交互,将额外信息纳入推理过程(行动以推理)。
论文导读
研究背景与问题
- 大型语言模型(LLMs)的推理能力(如思维链CoT)和行动能力(如动作计划生成)通常被作为独立研究领域
- 思维链推理是静态黑盒,容易产生幻觉和错误传播
- 行动生成模型通常缺乏抽象推理能力和工作记忆支持
创新点
- 提出ReAct范式:结合交错式的推理轨迹和行动生成
- 实现"推理以行动"(使用推理来指导行动计划)和"行动以推理"(通过环境交互获取信息辅助推理)的双向协同
主要方法
- 通过提示工程让LLMs交错生成推理思考和环境交互动作
- 推理轨迹帮助模型制定计划、跟踪进度和处理异常
- 行动允许模型与外部环境(如知识库)交互获取额外信息
实验结果
- 在4个不同基准测试上进行评估:HotpotQA、Fever、ALFWorld、WebShop
- 在问答和事实验证任务上,通过与维基百科API交互克服了幻觉问题
- 在交互决策任务上,仅需1-2个示例就大幅超越了需大量训练数据的模仿学习和强化学习方法
- 提高了模型可解释性和可信度
研究意义
- 证明推理和行动的结合能产生协同效应,超越单独使用任一方法
- 为解决LLM幻觉问题提供了新思路
- 开创了更接近人类思维方式的AI系统设计范式
2 ReAct:协同推理+行动
考虑智能体与环境交互来解决任务的一般设置。在时间步t,智能体从环境中接收观察值ot ∈ O,并根据某种策略π(at|ct)采取行动at ∈ A,其中ct = (o1, a1, · · · , ot−1, at−1, ot)是智能体的上下文。当映射ct 7→ at高度隐式且需要大量计算时,学习策略是具有挑战性的。例如,图1(1c)中显示的智能体无法生成正确的最终行动(Act 4)来完成问答任务,因为这需要对轨迹上下文(问题、行动1-3、观察1-3)进行复杂推理。类似地,图1(2a)中显示的智能体无法从上下文中理解洗手盆1不包含胡椒瓶1,因此持续产生虚假行动。
ReAct的核心思想很简单:我们将智能体的行动空间扩展为ˆ = A ∪ L,其中L是语言空间。语言空间中的行动âˆt ∈ L,我们称之为思考或推理轨迹,不会影响外部环境,因此不会产生观察反馈。相反,思考âˆt旨在通过对当前上下文ct进行推理来组合有用信息,并更新上下文ct+1 = (ct, âˆt)以支持未来的推理或行动。如图1所示,可能存在各种类型的有用思考,例如分解任务目标并创建行动计划(2b, Act 1; 1d, Thought 1),注入与任务解决相关的常识知识(2b, Act 1),从观察中提取重要部分(1d, Thought 2, 4),跟踪进度并转换行动计划(2b, Act 8),处理异常并调整行动计划(1d, Thought 3)等等。
然而,由于语言空间L是无限的,在这个扩展的行动空间中学习是困难的,需要强大的语言先验。在本文中,我们主要关注使用冻结的大型语言模型PaLM-540B的设置,通过少样本上下文示例提示来生成特定领域的行动和自由形式的语言思考来解决任务(图1(1d),(2b))。每个上下文示例都是解决任务实例的人类行动、思考和环境观察轨迹(见附录C)。对于推理至关重要的任务(图1(1)),我们交替生成思考和行动,使任务解决轨迹由多个思考-行动-观察步骤组成。相比之下,对于可能涉及大量行动的决策任务(图1(2)),思考只需要在轨迹的最相关位置稀疏出现,因此我们让语言模型自己决定思考和行动的异步出现。
由于决策和推理能力被整合到大型语言模型中,ReAct享有几个独特特征:
A) 直观易设计: 设计ReAct提示很直接,因为人类标注者只需在他们采取的行动之上用语言写下他们的思考。本文中没有使用临时格式选择、思考设计或示例选择。我们在第3节和第4节中详细介绍了每个任务的提示设计。
B) 通用且灵活: 由于灵活的思考空间和思考-行动出现格式,ReAct适用于具有不同行动空间和推理需求的多样化任务,包括但不限于问答、事实验证、文本游戏和网页导航。
C) 高性能且鲁棒: ReAct仅从一到六个上下文示例中学习,就表现出对新任务实例的强泛化能力,在不同领域中持续超越仅有推理或行动的基线。我们还在第3节中展示了启用微调时的额外好处,以及在第4节中展示了ReAct性能对提示选择的鲁棒性。
D) 与人类对齐且可控: ReAct承诺一个可解释的顺序决策和推理过程,人类可以轻松检查推理和事实正确性。此外,人类还可以通过思考编辑来控制或纠正智能体行为,如第4节图5所示。
导读
核心概念的简单解释
1. 基础符号理解
让我用一个简单的例子来解释这些符号:
想象你是一个在厨房做菜的机器人:- ot:你在时刻t看到的东西(比如"桌上有胡萝卜和刀")
- at:你在时刻t采取的行动(比如"拿起刀")
- ct:你的"记忆",包含之前看到的和做过的所有事情
- π(at|ct):你的"决策规则",根据记忆来决定下一步做什么
2. 传统方法的问题
问题场景: 传统AI就像一个"闷头做事"的机器人
传统机器人做菜:
时刻1:看到胡萝卜 → 直接切胡萝卜
时刻2:看到锅 → 直接放锅
时刻3:看到火 → 直接开火
...
问题在哪?
- 没有思考过程,容易出错
- 不知道为什么要这样做
- 遇到意外情况(比如没有盐)就不知道怎么办
3. ReAct的创新解决方案
核心思想:给机器人一个"会说话的大脑"
原来的行动空间: A = {切菜, 开火, 放盐, ...}
ReAct扩展后: Â = A ∪ L
- A:还是原来的物理行动
- L:新增的"思考行动"(用语言表达想法)
具体例子:ReAct机器人做菜
智能机器人做菜过程:时刻1:观察到胡萝卜和刀思考:"我需要做胡萝卜汤,首先要切胡萝卜"行动:拿起刀时刻2:观察到胡萝卜被切好了思考:"切好了,现在需要准备锅和水"行动:拿锅装水时刻3:观察到没有盐思考:"糟糕没有盐,我可以用酱油代替"行动:去找酱油时刻4:观察到找到了酱油思考:"很好,现在可以开始煮了"行动:开火煮汤
4. 两种不同的应用模式
模式1:推理密集型任务(如问答)
特点: 思考和行动严格交替出现
问题:北京的人口是多少?思考1:"我需要查找北京的人口信息"
行动1:搜索"北京人口"
观察1:找到Wikipedia页面
思考2:"我看到了2021年的数据,显示是2189万"
行动2:提取关键信息
观察2:确认数据准确性
思考3:"这个数据看起来是最新的官方数据"
行动3:给出答案"2189万人"
模式2:行动密集型任务(如游戏)
特点: 思考只在关键时刻出现
文字冒险游戏:行动1:向北走
行动2:拿起钥匙
行动3:开门
思考:"我现在有钥匙了,应该去找宝箱"
行动4:向东走
行动5:向东走
行动6:打开宝箱
思考:"太好了!找到宝藏了,任务完成"
5. ReAct的四大优势(用例子说明)
A) 直观易设计
传统方法:需要复杂的程序设计
ReAct方法:人类直接写下思考过程就行人类标注者只需要这样写:
"我觉得应该先切菜" → 切菜
"现在需要开火了" → 开火
B) 通用灵活
同一个ReAct系统可以:
- 回答问题:"思考 → 搜索 → 思考 → 回答"
- 玩游戏:"行动 → 行动 → 思考 → 行动"
- 购物:"思考 → 浏览 → 思考 → 购买"
C) 性能优秀
对比实验结果:
- 传统方法:需要看10000个例子才学会
- ReAct方法:只需要看1-6个例子就学会,而且做得更好
D) 可解释可控
传统AI:不知道为什么这样做
ReAct AI:人类:"你为什么选择酱油?"AI:"因为我思考了没有盐,酱油可以提供咸味"人类还可以中途纠正:人类:"不对,应该用胡椒"AI:"好的,我改用胡椒"
关键理解要点
- ReAct = 给AI一个会思考的大脑
- 思考不影响环境,但帮助做更好的决策
- 就像人类一样:做事的时候会在心里想"为什么这样做"
- 不同任务可以灵活调整思考和行动的比例
第3节详细导读:知识密集型推理任务
翻译
3 知识密集型推理任务
我们从知识密集型推理任务开始,如多跳问答和事实验证。如图1(1d)所示,通过与维基百科API交互,ReAct能够检索信息以支持推理,同时也使用推理来确定接下来要检索什么,展示了推理和行动的协同效应。
3.1 实验设置
领域 我们考虑两个具有挑战性的知识检索和推理数据集:(1) HotPotQA,一个多跳问答基准,需要对两个或更多维基百科段落进行推理,(2) FEVER,一个事实验证基准,其中每个声明被标注为SUPPORTS、REFUTES或NOT ENOUGH INFO,基于是否存在维基百科段落来验证该声明。在这项工作中,我们在两个任务中都采用仅问题设置,模型只接收问题/声明作为输入,无法访问支持段落,必须依赖其内部知识或通过与外部环境交互来检索知识以支持推理。
行动空间 我们设计了一个简单的维基百科网络API,包含三种类型的行动来支持交互式信息检索:(1) search[entity],如果存在则返回相应实体维基页面的前5句,否则从维基百科搜索引擎建议前5个相似实体,(2) lookup[string],返回页面中包含字符串的下一句,模拟浏览器中的Ctrl+F功能,(3) finish[answer],用答案完成当前任务。我们注意到这个行动空间大多只能基于确切的段落名称检索段落的一小部分,这比最先进的词汇或神经检索器要弱得多。目的是模拟人类如何与维基百科交互,并强制模型通过语言中的明确推理来检索。
3.2 方法
ReAct提示 对于HotpotQA和Fever,我们从训练集中随机选择6个和3个案例,并手动组成ReAct格式轨迹作为提示中的少样本示例。类似于图1(d),每个轨迹由多个思考-行动-观察步骤组成(即密集思考),其中自由形式的思考用于各种目的。具体而言,我们使用思考的组合来分解问题、从维基百科观察中提取信息、执行常识或算术推理、指导搜索重新表述,以及综合最终答案。
基线方法 我们系统地消融ReAct轨迹来构建多个基线的提示:(a) 标准提示,移除所有思考、行动、观察;(b) 思维链提示(CoT),移除行动和观察,作为仅推理基线;(c) 仅行动提示(Act),移除思考。
结合内部和外部知识 我们观察到ReAct展示的问题解决过程更加事实和有根据,而CoT在制定推理结构方面更准确,但容易遭受虚假事实或思考的困扰。因此我们提出结合ReAct和CoT-SC。
微调 考虑到大规模手动标注推理轨迹和行动的挑战,我们考虑类似引导方法,使用ReAct生成的3000个具有正确答案的轨迹来微调较小的语言模型。
详细导读
1. 实验任务的本质
HotpotQA(多跳问答)
问题例子:"谁是《阿凡达》导演的妻子?"需要的推理步骤:
1. 搜索"阿凡达" → 找到导演是詹姆斯·卡梅隆
2. 搜索"詹姆斯·卡梅隆" → 找到他的妻子信息
3. 综合信息给出答案为什么叫"多跳"?因为需要从一个信息"跳"到另一个信息
FEVER(事实验证)
声明例子:"爱因斯坦于1879年出生在德国"验证过程:
1. 搜索"爱因斯坦" → 查看出生信息
2. 确认出生年份和地点
3. 判断:SUPPORTS(支持)/ REFUTES(反驳)/ NOT ENOUGH INFO(信息不足)
2. 简化的维基百科API设计
作者设计了一个故意"简化"的搜索工具,只有3个功能:
1. search[实体名] - 就像在维基百科搜索框输入内容- 返回前5句话,或者推荐相似条目2. lookup[关键词]- 就像按Ctrl+F查找关键词- 在当前页面找到包含关键词的下一句3. finish[答案]- 完成任务,给出最终答案
为什么要故意简化?
- 模拟人类使用维基百科的真实过程
- 强迫AI必须通过推理来决定搜索什么
- 避免AI"偷懒"直接获取大量信息
3. ReAct的具体工作流程
示例:ReAct回答"《阿凡达》导演的妻子是谁?"
Thought 1: "我需要先找到《阿凡达》的导演是谁"
Action 1: search[阿凡达]
Observation 1: "《阿凡达》是2009年的科幻电影,由詹姆斯·卡梅隆执导..."Thought 2: "好的,导演是詹姆斯·卡梅隆,现在我需要找他的妻子信息"
Action 2: search[詹姆斯·卡梅隆]
Observation 2: "詹姆斯·卡梅隆是加拿大导演,出生于1954年..."Thought 3: "我需要具体查找他的婚姻信息"
Action 3: lookup[妻子]
Observation 3: "卡梅隆于2000年与苏茜·艾米斯结婚..."Thought 4: "找到了,他的妻子是苏茜·艾米斯"
Action 4: finish[苏茜·艾米斯]
4. 对比不同方法
标准提示(Standard)
问题:《阿凡达》导演的妻子是谁?
回答:苏茜·艾米斯
(直接回答,可能不准确,因为没有外部信息支持)
思维链(CoT)
问题:《阿凡达》导演的妻子是谁?
思考:《阿凡达》的导演是詹姆斯·卡梅隆,他的妻子是...
回答:苏茜·艾米斯
(有推理过程,但可能基于错误的内部知识)
仅行动(Act)
问题:《阿凡达》导演的妻子是谁?
Action 1: search[阿凡达]
Action 2: search[詹姆斯·卡梅隆]
Action 3: lookup[妻子]
Action 4: finish[苏茜·艾米斯]
(有搜索行为,但没有推理解释为什么这样搜索)
ReAct(思考+行动)
结合了思考和行动,既有清晰的推理过程,又有事实验证
5. 内外部知识结合策略
这是一个很聪明的设计:
情况A:ReAct遇到困难时 → 切换到CoT
- ReAct在7步内没找到答案 → 用CoT的内部知识试试情况B:CoT不确定时 → 切换到ReAct
- CoT的多个答案不一致 → 用ReAct去外部验证
就像人类解题:
- 先用记忆中的知识(CoT)
- 记忆不确定时去查资料(ReAct)
- 查资料遇到困难时再回到直觉判断(CoT)
6. 微调方法的巧思
问题:人工标注推理轨迹太费时间
解决:让大模型自己生成训练数据
1. 用大模型(PaLM-540B)生成3000个正确的ReAct轨迹
2. 用这些数据训练小模型(PaLM-8B/62B)
3. 小模型学会了ReAct的推理和行动模式
这种方法的优势是能够批量生成高质量的训练数据,避免了人工标注的成本。
第3.3节详细导读:实验结果与观察
翻译
3.3 结果与观察
ReAct持续优于Act 表1显示了使用PaLM-540B作为基础模型在不同提示方法下的HotpotQA和Fever结果。我们注意到ReAct在两个任务上都优于Act,证明了推理指导行动的价值,特别是在综合最终答案方面,如图1(1c-d)所示。微调结果也证实了推理轨迹对更明智行动的益处。
ReAct vs. CoT 另一方面,ReAct在Fever上优于CoT(60.9 vs. 56.3),在HotpotQA上略落后于CoT(27.4 vs. 29.4)。Fever的SUPPORTS/REFUTES声明可能只有细微差别,因此采取行动检索准确和最新的知识至关重要。为了更好地理解ReAct和CoT在HotpotQA上的行为差异,我们从ReAct和CoT中随机抽样了50个具有正确和错误答案的轨迹,并在表2中手动标注了它们的成功和失败模式。一些关键观察如下:
A) 幻觉是CoT的严重问题,导致其假阳性率远高于ReAct(14% vs. 6%),并构成其主要失败模式(56%)。相比之下,ReAct的问题解决轨迹更加有根据、事实驱动且可信,这得益于对外部知识库的访问。
B) 虽然交错推理、行动和观察步骤提高了ReAct的有根据性和可信度,但这种结构约束也降低了其制定推理步骤的灵活性,导致比CoT更高的推理错误率。我们注意到有一个ReAct特有的频繁错误模式,模型重复生成先前的思考和行动,我们将其归类为"推理错误"的一部分。
C) 对于ReAct,通过搜索成功检索信息性知识是关键的。非信息性搜索占错误案例的23%,会破坏模型推理并使其难以恢复和重新制定思考。
ReAct + CoT-SC在提示LLMs方面表现最佳 如表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上提示/微调四种方法的规模效应。使用PaLM-8/62B时,提示ReAct在四种方法中表现最差,因为很难从上下文示例中学习推理和行动。然而,当仅用3000个示例进行微调时,ReAct成为四种方法中最好的,PaLM-8B微调ReAct优于所有PaLM-62B提示方法,PaLM-62B微调ReAct优于所有540B提示方法。
详细导读
1. 核心发现解读
ReAct > Act:推理的重要性
实际表现对比:
Act(只行动): "搜索阿凡达 → 搜索导演 → 搜索妻子 → 回答"问题:不知道为什么这样搜索,容易搜错方向ReAct(推理+行动): "我需要找导演 → 搜索阿凡达 → 我找到了卡梅隆 → 搜索卡梅隆..."优势:每一步都有明确的推理指导
ReAct vs CoT:各有优劣
Fever任务:ReAct胜出 (60.9% vs 56.3%)
- 原因:事实验证需要准确的最新信息
- CoT容易用过时或错误的内部知识HotpotQA任务:CoT略胜 (29.4% vs 27.4%)
- 原因:多跳推理需要灵活的逻辑链条
- ReAct的结构化步骤反而限制了推理灵活性
2. 深度错误分析(表2的关键洞察)
A) 幻觉问题对比
CoT的幻觉问题:
- 假阳性率:14%(说对了但理由是编的)
- 主要失败原因:56%都是因为幻觉示例:
问题:"爱因斯坦何时获得诺贝尔奖?"
CoT可能回答:"1905年因相对论获奖"(实际是1921年因光电效应)ReAct的优势:
- 假阳性率:只有6%
- 通过外部验证避免了大部分幻觉
B) 灵活性 vs 准确性的权衡
ReAct的结构限制:
思考 → 行动 → 观察 → 思考 → 行动...这种固定模式有时会:
- 限制复杂推理的展开
- 导致重复循环(陷入思维死循环)示例问题模式:
Thought: "我需要搜索X"
Action: search[X]
Observation: "没找到有用信息"
Thought: "我需要搜索X" ← 开始重复
Action: search[X]
...
C) 搜索质量的关键作用
ReAct成功的关键:有效搜索
- 23%的失败来自"搜索到无用信息"
- 一旦搜索失败,很难恢复例子:
好的搜索:"search[阿凡达电影]" → 找到导演信息
差的搜索:"search[蓝色外星人]" → 找到无关信息
3. 组合策略的智慧
最佳实践:ReAct + CoT组合
HotpotQA:ReAct → CoT-SC
- 先用ReAct搜索事实
- 搜索失败时切换到CoT的内部推理Fever:CoT-SC → ReAct
- 先用CoT快速判断
- 不确定时用ReAct验证事实
效率提升显著
传统CoT-SC:需要21个样本才能达到好效果
ReAct组合:只需要3-5个样本就达到同样效果这意味着:
- 计算成本大幅降低
- 推理速度显著提升
4. 微调实验的惊人发现
小模型 + ReAct微调 > 大模型 + 提示
令人震惊的结果:
PaLM-8B + ReAct微调 > PaLM-62B + 所有提示方法
PaLM-62B + ReAct微调 > PaLM-540B + 所有提示方法这说明什么?
- 学会"如何思考和行动"比"记住更多知识"更重要
- ReAct的思维模式是可以有效学习的技能
为什么微调ReAct这么有效?
Standard/CoT微调:教模型记住答案
- 容易过拟合
- 泛化能力差
- 可能记住错误信息ReAct/Act微调:教模型学习技能
- 学会如何搜索
- 学会如何推理
- 技能可以泛化到新问题
5. 实践启示
何时使用ReAct?
适合场景:
✓ 需要事实验证的任务
✓ 需要最新信息的问题
✓ 需要可解释性的应用
✓ 有外部知识库可用不太适合场景:
✗ 纯逻辑推理问题
✗ 需要极快响应的场景
✗ 外部信息源不可靠
优化建议:
1. 设计好的搜索API(避免无用搜索)
2. 结合多种方法(不要只用一种)
3. 考虑微调(小模型+微调可能比大模型+提示更好)
4. 监控幻觉问题(特别是在没有外部验证时)
第4节详细导读:决策任务
翻译
4 决策任务
我们还在两个基于语言的交互式决策任务ALFWorld和WebShop上测试了ReAct,这两个任务都具有复杂的环境,需要智能体在长期行动中处理稀疏奖励,证明了推理以有效行动和探索的必要性。
ALFWorld ALFWorld是一个合成的基于文本的游戏,旨在与具身ALFRED基准保持一致。它包括6种类型的任务,智能体需要通过文本行动在模拟家庭中导航和交互来实现高级目标(例如在台灯下检查纸张)。任务实例可能有50多个位置,专家策略需要50多步才能解决,因此挑战智能体规划和跟踪子目标,以及系统性探索。ALFWorld的一个特殊挑战是需要确定常见家居用品的可能位置,使这个环境非常适合LLMs利用其预训练的常识知识。
WebShop ReAct能否在噪声真实世界语言环境中进行实际应用的交互?我们研究了WebShop,这是一个最近提出的在线购物网站环境,包含118万个真实世界产品和1.2万个人类指令。与ALFWorld不同,WebShop包含高度多样化的结构化和非结构化文本,需要智能体根据用户指令通过网络交互购买产品。
结果 ReAct在ALFWorld和WebShop上都优于Act。在ALFWorld上,最佳ReAct试验的平均成功率达到71%,显著优于最佳Act(45%)和BUTLER(37%)试验。在WebShop上,一次性Act提示已经与IL和IL+RL方法相当。通过额外的稀疏推理,ReAct实现了显著更好的性能,比之前最佳成功率绝对提升10%。
内部推理vs外部反馈的价值 据我们所知,ReAct是首次在封闭循环系统中将LLM应用于交互环境的推理和行动结合演示。或许最接近的先前工作是Inner Monologue(IM),其中具身智能体的行动由"内心独白"驱动。然而,IM的"内心独白"仅限于对环境状态的观察。相比之下,ReAct用于决策的推理轨迹是灵活和稀疏的。ReAct显著优于IM风格提示(71 vs. 53整体成功率)。
详细导读
1. 两个任务的本质区别
ALFWorld:模拟家庭环境的文字游戏
任务示例:"在台灯下检查纸张"具体挑战:
- 房子有50+个房间/位置
- 需要50+步骤才能完成
- 需要常识推理(台灯通常在哪里?)典型解决过程:
1. 分解目标:找到纸张 + 找到台灯 + 在台灯下检查
2. 推理位置:台灯可能在书桌、书架或梳妆台上
3. 系统探索:逐个检查所有可能位置
4. 跟踪进度:记住已经检查过的地方
WebShop:真实购物网站环境
任务示例:"寻找带抽屉的床头柜,镍制表面,价格低于$140"复杂性:
- 118万真实商品
- 多样化的商品描述文本
- 需要理解购物需求并匹配产品属性典型解决过程:
1. 搜索相关商品:"nightstand drawers"
2. 筛选属性:选择颜色"modern-nickel-white"
3. 检查价格:确认低于$140
4. 决策购买:确认所有要求都满足
2. ReAct在两个任务中的具体表现
ALFWorld:稀疏思考的关键作用
ReAct的思考模式包括:1. 目标分解:Thought: "我需要找到纸张和台灯,然后在台灯下检查纸张"2. 子目标跟踪:Thought: "我已经找到了纸张,现在需要找台灯"3. 下一步规划:Thought: "我应该去书房找台灯"4. 常识推理:Thought: "台灯通常在书桌上,我应该检查所有书桌"
具体对比结果:
ReAct最佳: 71% 成功率
Act最佳: 45% 成功率
BUTLER(专门训练): 37% 成功率更惊人的是:ReAct最差试验(48%)都比其他方法最佳试验要好!
相对提升:33%-90%,平均62%
WebShop:推理桥接观察与行动
ReAct的优势体现在:示例推理:
"对于'客厅空间节省奥托曼长凳',这个商品有选项'39x18x18英寸'和'蓝色',看起来很适合购买。"这种推理帮助:
- 理解复杂的商品描述
- 匹配用户需求与商品属性
- 做出更准确的购买决策
结果:
绝对成功率提升10%(这在电商领域是巨大的提升)
但距离人类专家还有差距(人类会做更多商品探索)
3. 深度分析:内部推理 vs 外部反馈
Inner Monologue (IM) vs ReAct的关键区别
Inner Monologue的限制:
IM思考模式:
"我看到了一个桌子"
"我需要完成找台灯的任务"
"桌子上没有台灯"特点:
- 只是对环境的简单描述
- 缺乏高层次的目标分解
- 没有常识推理
ReAct的优势:
ReAct思考模式:
"我的目标是在台灯下检查纸张,我需要先找到这两样东西"
"台灯通常在书桌、书架或梳妆台上"
"我已经检查了客厅的书桌,现在应该去书房"特点:
- 高层次的策略规划
- 丰富的常识推理
- 灵活的目标分解
对比实验结果
ReAct: 71% 成功率
ReAct-IM: 53% 成功率ReAct在6个任务中的5个都显著优于IM风格
失败原因分析:
ReAct-IM常见错误:
1. 不知道何时子目标完成了
2. 不知道下一个子目标应该是什么
3. 不知道物品可能在哪里(缺乏常识)这些问题ReAct都能很好解决
4. 关键洞察与实践启示
ReAct为什么在决策任务中这么有效?
1. 长期规划能力
传统方法:一步一步盲目行动
ReAct:先规划整体策略再执行就像GPS导航:
- 差的导航:每个路口才告诉你往哪转
- 好的导航:先规划整条路线,然后分步执行
2. 状态跟踪能力
在复杂环境中,ReAct能够:
- 记住已经做过什么
- 知道当前处于哪个阶段
- 决定下一步应该做什么就像购物清单:
- 没有清单:容易忘记要买什么,重复购买
- 有清单:清楚知道还缺什么,避免遗漏
3. 常识推理能力
ReAct利用LLM的预训练知识:
- 知道台灯通常在哪里
- 理解商品描述的含义
- 能够匹配需求和产品特征
实际应用价值
为什么这些结果很重要?
1. 少样本学习:只需要1-3个示例就能工作- 传统IL方法:需要成千上万个训练样本- ReAct:几个示例就够了2. 泛化能力强:在未见过的任务上表现优秀- 证明了推理+行动的通用性3. 实用性强:在真实购物网站上有效- 不只是玩具问题,有真实商业价值
局限性与未来方向:
当前限制:
- 仍然距离人类专家有差距
- 在非常复杂的探索任务上可能不够
- 需要良好设计的提示改进方向:
- 更好的探索策略
- 更强的学习能力
- 与其他方法的结合
第5-6节详细导读:相关工作与结论
翻译
5 相关工作
推理语言模型 使用LLMs进行推理最著名的工作是思维链(CoT),它揭示了LLMs为问题解决制定自己"思维过程"的能力。几项后续工作包括用于解决复杂任务的从少到多提示、零样本CoT,以及自一致性推理。最近,有工作系统地研究了CoT的制定和结构,并观察到符号、模式和文本的存在对CoT的有效性至关重要。其他工作也扩展到超越简单提示的更复杂推理架构。例如Selection-Inference将推理过程分为"选择"和"推理"两步。STaR通过在模型自身生成的正确理由上微调模型来引导推理过程。与这些方法相比,ReAct不仅执行孤立的固定推理,还将模型行动及其相应观察整合到一个连贯的输入流中,使模型能够更准确地推理并处理推理之外的任务。
决策语言模型 LLMs的强大能力使它们能够执行语言生成之外的任务,利用LLMs作为决策策略模型变得越来越流行。WebGPT使用LM与网络浏览器交互,浏览网页,并从复杂问题中推断答案。与ReAct相比,WebGPT没有明确建模思维和推理过程,而是依赖昂贵的人类反馈进行强化学习。与ReAct不同,它们也没有明确考虑推理过程,并且依赖昂贵的数据集和人类反馈收集进行策略学习。相比之下,ReAct以更便宜的方式学习策略,因为决策过程只需要推理过程的语言描述。
LLMs也越来越多地被用于交互式和具身环境中的规划和决策。在这方面与ReAct最相关的可能是SayCan和Inner Monologue,它们使用LLMs进行机器人行动规划和决策。在SayCan中,LLMs被提示直接预测机器人可以采取的可能行动。Inner Monologue通过添加"内心独白"进行了进一步改进,这是作为来自环境的注入反馈实现的。据我们所知,Inner Monologue是第一个展示这种闭环系统的工作,ReAct建立在此基础上。然而,我们认为Inner Monologue并不真正包含内在思想。
6 结论
我们提出了ReAct——一种在大型语言模型中协同推理和行动的简单而有效的方法。通过在多跳问答、事实检查和交互式决策任务上的多样化实验,我们表明ReAct以可解释的决策轨迹带来了卓越的性能。尽管我们方法的简单性,具有大型行动空间的复杂任务需要更多演示才能很好地学习,这不幸地可能容易超出上下文学习的输入长度限制。我们在HotpotQA上探索了微调方法,取得了初步的有希望结果,但从更多高质量人类标注中学习将是进一步提高性能的需求。通过多任务训练扩展ReAct并将其与强化学习等互补范式结合可能产生更强的智能体,进一步释放LLMs在更多应用中的潜力。
最精炼的总结是:ReAct是一种巧妙的提示工程技术,通过在上下文中累积思考和行动的历史,让现有的大模型表现出推理+行动的能力,而无需任何额外训练!