今天来看一篇来自普林斯顿、Google Brain等人发表在2023 ICLR上的经典智能体工作–ReAct。
项目地址:https://github.com/ysymyth/ReAct?tab=readme-ov-file
研究动机:现有的大语言模型虽然在语言理解和互动决策方面表现出色,但它们的推理能力和行动能力通常被分开研究。目前,在语言模型用于推理方面,最著名的工作是链式思维(Chain-of-Thought, CoT),它揭示了大型语言模型能够为解决问题制定自己的“思考程序”。然而,CoT和其他类似的方法主要集中在孤立的、固定的推理上,而没有将模型的行为及其相应的观察结果整合进一个连贯的输入流中。
于是提出ReAct,一种基于prompt的新范式,旨在综合语言模型中的推理和行动,以实现通用的任务解决。
ReAct提示LLMs以交替方式生成与任务相关的语言推理轨迹和行动,从而使模型能够进行动态推理,以创建、维护和调整行动的高层次计划(推理以行动),同时与外部环境(如维基百科)交互,将额外信息纳入推理中(行动以推理)。
先来直观的看下ReAct与其他几种提示方法的对比结果,下图展示了四种不同的提示方法在解决任务时的对比,这些方法分别是:标准提示、仅推理(Chain-of-thought, CoT)、仅行动(Act-only),以及结合推理和行动的ReAct方法。具体来说:
-
在HotpotQA问题解答中,ReAct方法通过交替生成思考和行动,构建了一个更易于理解的任务解决路径。不仅克服了链式思维推理中常见的幻觉和错误传播问题,而且通过与简单的Wikipedia API交互,使得模型能够基于外部信息进行更准确的回答。
-
对于ALFWorld游戏中的复杂环境互动决策任务,ReAct方法相较于仅行动的方法显示出了优势。在这个环境中,智能体需要通过文本动作来导航和与模拟的家庭环境互动以完成高级目标。例如,在一个场景中,智能体需要检查所有可能的位置(如桌子、架子或衣柜)来找到某个物品(如台灯)。ReAct允许语言模型利用其预训练的常识知识,确定常见家庭物品可能出现的位置。
一、方法介绍
简单来说,ReAct的核心就是通过推理与行动的协同,结合灵活的思维生成和与外部环境的交互,实现更高效、更可靠的任务解决。
图1可以看到,一个符合ReAct的行动流程里,包含多次Thought-Act-Obs的迭代,也就是思考-行动-观察/分析的反复过程。
-
Thought(思考):反映了LLM大模型的思考过程,这体现出了LLM的“大脑“的作用。LLM根据输入或者外部环境反馈生成本次迭代需要完成的行动。比如:
“苹果遥控器最初用来设计控制Front Row媒体中心应用,那么我下面需要去搜索下Front Row这个应用…“
-
Act(行动):根据思考的结果采取的具体行动,这个具体的行动最终体现到某个外部工具的使用,实现与外部环境的交互并获得结果。比如:
“使用Google搜索引擎API接口搜索Front Row“
-
Obs(观察):从外部行动获取到的反馈信息,用于LLM做出下一步的行动决策。比如:
“无法搜索到Front Row,近似的信息包括Front Row (Software)…”
通过这样的循环过程,最终完成任务。
工作原理
ReAct通过扩展智能体的行动空间为,其中 L 是语言空间,
代表语言空间中的一个行动,称为思维或推理轨迹。这类行动不会影响外部环境,因此不会有来自环境的反馈。相反,思维
通过当前上下文
进行推理,以组合有用信息,并更新上下文
,来帮助智能体进行内部思考,从而支持后续的推理或行动。这允许智能体分解任务目标、创建行动计划、注入常识知识、跟踪进展、处理异常等。
如图1所示,可能存在多种有用的思维,例如分解任务目标并创建行动计划(图1(2b),行动1;图1(1d),思维1),注入与任务解决相关的常识知识(图1(2b),行动1),从观察中提取重要部分(图1(1d),思维2,4),跟踪进展并转换行动计划(图1(2b),行动8),处理异常情况并调整行动计划(图1(1d),思维3)等。
应用与优势
ReAct不需要微调模型参数,通过少量样本上下文示例提示来生成特定领域的行动和自由形式的语言思维,对于独立开发者非常友好。对于主要依赖推理的任务,ReAct交替生成思维和行动,形成由多个思维-行动-观察(Thought-Act-Obs)步骤组成的任务解决路径。而对于可能涉及大量行动的决策任务,ReAct让语言模型决定何时生成思维,使得思维仅在最相关的地方出现。
ReAct的特点:
-
直观且易于设计:设计ReAct提示非常简单,人类标注者只需在行动基础上添加自己的思考过程。
-
通用且灵活:由于思维空间的灵活性和思维-行动出现格式的多样性,ReAct适用于具有不同行动空间和推理需求的多样化任务,包括问答、事实验证、文本游戏和网页导航。
-
性能优越且稳健:即使只从少量上下文示例中学习,也能超越仅推理或仅行动的方法。
-
与人类一致且可控:提供可解释的决策过程,允许人类实时检查和纠正智能体的行为。
二、知识密集型推理任务
在知识密集型推理任务中,ReAct展示了如何通过结合推理和行动来提升模型的表现。具体来说,ReAct通过与维基百科API交互,能够检索信息以支持推理,并使用推理来确定下一步检索的内容,从而实现推理与行动的协同作用。
实验设置
数据集选择:
-
HotPotQA:一个多跳问答基准,要求推理跨越两个或更多个维基百科段落。
-
FEVER:一个事实验证基准,每个声明根据是否存在支持性的维基百科段落标注为支持(SUPPORTS)、反驳(REFUTES)或信息不足(NOT ENOUGH INFO)。
在这两个任务中,模型仅接收问题/声明作为输入,无法访问支持段落,必须依赖其内部知识或通过与外部环境交互来检索知识以支持推理。
行动空间设计:
为了支持交互式信息检索,设计了一个简单的维基百科网页API,包含以下三种类型的行动:
-
search[entity]:如果存在相应实体的维基百科页面,则返回前5句话;否则建议搜索引擎中的前5个相似实体。
-
lookup[string]:返回包含字符串的页面中的下一句,模拟浏览器中的Ctrl+F功能。
-
finish[answer]:以答案结束当前任务。
基线对比:
为了评估ReAct的有效性,构建了多个基线提示:标准提示(Standard):移除所有思维、行动和观察。链式思维提示(CoT):移除行动和观察,作为仅推理的基线。自一致性基线(CoT-SC):通过采样多条CoT轨迹并采用多数答案。仅行动提示(Act):移除ReAct轨迹中的思维,类似于WebGPT。
结合内部和外部知识:实验观察到ReAct的问题解决过程更加事实化和具体化,而CoT在构建推理结构方面更准确但容易受到幻觉的影响。因此,提出了结合ReAct和CoT-SC的方法:(1)ReAct → CoT-SC:当ReAct未能在给定步骤内返回答案时,回退到CoT-SC。(2)CoT-SC → ReAct:当内部知识不足以自信地支持任务时,回退到ReAct。
微调:由于手动大规模标注推理轨迹和行动具有挑战性,使用自举方法,通过3000条由ReAct生成的正确答案轨迹微调较小的语言模型(PaLM-8/62B),以解码基于输入问题/声明的条件轨迹。
结果
ReAct vs. Act
表1展示了使用PaLM-540B作为基础模型的HotpotQA和FEVER结果,采用不同的提示方法。从表中可以看出:ReAct在两个任务上都优于Act,尤其是在综合最终答案时表现出色(如图1(1c-d)所示)。这表明了推理指导行动的价值,以及交替生成思维、行动和观察步骤的重要性。微调结果显示,推理轨迹对更明智行动有显著益处。
ReAct vs. CoT
尽管ReAct在某些方面表现出色,但它与链式思维(CoT)之间的对比揭示了一些有趣的模式:
-
FEVER上的表现:ReAct在FEVER上明显优于CoT(60.9% vs. 56.3%),这可能是因为FEVER的任务特性——SUPPORTS/REFUTES声明通常只在细微之处有所不同。在这种情况下,通过行动检索准确且最新的知识显得尤为重要。
-
HotpotQA上的表现:在HotpotQA上,ReAct略逊于CoT(27.4% vs. 29.4%)。为了更好地理解两者的行为差异,研究者们随机抽取了50条正确和错误的轨迹(由EM判断),并手动标注了它们的成功和失败模式(共200个示例),结果如下:
幻觉问题:CoT的一个严重问题是幻觉,导致其假阳性率远高于ReAct(14% vs. 6%),并且成为其主要失败模式(56%)。相比之下,ReAct的问题解决轨迹更加基于事实、可信,得益于对外部知识库的访问。
结构约束的影响:尽管交替推理、行动和观察步骤提高了ReAct的基于事实性和可信度,但这种结构也降低了其在构建推理步骤时的灵活性,导致其推理错误率高于CoT。一个常见的错误模式是模型重复生成之前的思维和行动,未能跳出循环,我们将其归类为“推理错误”。
搜索质量的重要性:对于ReAct,通过搜索检索到有用的知识至关重要。非信息性搜索(占错误案例的23%)会破坏模型的推理,使其难以恢复并重新构建思维。这可能是事实性和灵活性之间的预期权衡,促使作者提出了结合两种方法的策略。
-
Success (成功,定义:正确推理轨迹和事实):表示模型生成了正确的推理轨迹并使用了正确的事实来回答问题。ReAct在这方面表现显著优于CoT,成功率分别为94%和86%。
-
False Positive (假阳性,定义:幻觉的推理轨迹或事实):指模型生成了幻觉的推理轨迹或事实,导致不正确的答案。ReAct的假阳性率较低,为6%,而CoT的假阳性率为14%,表明CoT更容易产生幻觉。
-
Reasoning error (推理错误,定义:错误的推理轨迹(包括未能从重复步骤中恢复)):当模型未能正确推导出解决问题的路径时发生。ReAct的推理错误率较高,为47%,而CoT仅为16%。这可能是因为交替生成推理、行动和观察步骤提高了基于事实性和可信度,但也降低了构建推理步骤时的灵活性,导致模型有时会陷入重复的循环中无法跳出。
-
Search result error (搜索结果错误,定义:搜索结果为空或不包含有用信息):当模型通过API检索到的信息不足以支持其推理时发生。对于ReAct来说,这种错误占到了所有错误案例的23%,强调了有效搜索的重要性。
-
Hallucination (幻觉,定义:幻觉的推理轨迹或事实):当模型生成了与实际情况不符的事实或推理时发生。CoT的幻觉问题非常严重,占据了56%的错误案例,而ReAct则完全避免了这种情况,幻觉率为0%。
-
Label ambiguity (标签模糊性,定义:预测正确但未精确匹配标签):当模型预测的答案正确但未能精确匹配给定标签时发生。这种情况在ReAct和CoT中都存在,分别占29%和28%。
-
Table 2
ReAct + CoT-SC对llm的提示效果最好
表1还显示,在HotpotQA和FEVER上的最佳提示方法是ReAct → CoT-SC和CoT-SC → ReAct。此外,图2展示了不同方法在使用不同数量的CoT-SC样本时的表现。虽然两种ReAct + CoT-SC方法在每个任务上各有优势,但它们在不同样本数量下始终显著且一致地优于单独的CoT-SC,仅需3-5个样本即可达到使用21个样本的CoT-SC性能。这些结果强调了在推理任务中适当结合内部和外部知识的价值。
微调效果
图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,因为前者本质上是在教模型记忆(可能是幻觉的)知识事实,而后者则是在教模型如何(推理并)通过维基百科访问信息,这是一种更通用的知识推理技能。由于所有提示方法仍远未达到特定领域的最先进水平(表1),我们相信使用更多人工编写的数据进行微调可能是释放ReAct潜力的更好方式。
三、决策任务
在决策任务中,研究者们测试了ReAct在两个基于语言的交互式决策任务上的表现:ALFWorld 和 WebShop。这两个任务都具有复杂的环境,要求代理在稀疏奖励的情况下进行长时间的操作,这需要推理来有效地进行行动和探索。
ALFWorld
ALFWorld( 是一个合成文本游戏,旨在与具身ALFRED基准(Shridhar et al., 2020a)对齐。它包括六种类型的任务,每个任务要求代理通过导航和与模拟家庭环境进行文本交互来实现高层次目标(例如,检查台灯下的纸张)。具体特征如下:
-
复杂性:一个任务实例可能包含超过50个位置,并且需要专家策略进行超过50步才能解决。
-
挑战:要求代理进行子目标规划和跟踪,并系统地进行探索(例如,逐一检查所有桌子以寻找台灯)。
-
常识知识:内置挑战是确定常见家庭物品的可能位置(例如,台灯可能位于桌子、架子或梳妆台上),使得LLMs能够利用其预训练的常识知识。
实验设置:
提示设计:为了提示ReAct,研究者随机从训练集中为每种任务类型标注了三个轨迹,每个轨迹包含稀疏的思维,用于分解目标、跟踪子目标完成情况、确定下一个子目标,以及通过常识推理确定物品的位置及处理方法。
评估:按照Shridhar等人的方法,在特定任务设置下对134个未见过的评估游戏进行评估。为了提高鲁棒性,通过每种任务类型的2个标注轨迹的排列组合构建了6个提示。
基线对比:使用BUTLER作为基线,这是一个模仿学习代理,每种任务类型在10510^5105个专家轨迹上进行训练。
结果:ReAct显著优于仅行动的Act。最佳的ReAct试验达到了71%的平均成功率,显著优于最佳的Act(45%)和BUTLER(37%)试验。即使是最差的ReAct试验(48%)也击败了这两种方法的最佳试验。ReAct相对于Act的优势在六个受控试验中是一致的,相对性能提升范围从33%到90%,平均为62%。
WebShop
WebShop是一个在线购物网站环境,包含1.18万个真实世界的产品和1.2万个人类指令。该环境的特点是大量结构化和非结构化的文本(如产品标题、描述和选项),并要求代理根据用户指令(如“我正在寻找一个带抽屉的床头柜。它应该有镍色表面,价格低于140美元”)通过网页交互(如搜索“床头柜抽屉”,选择按钮如“颜色:现代镍白”或“返回搜索”)购买产品。
评估标准:通过平均得分(所选产品覆盖的所有期望属性的百分比平均值)和成功率(所选产品满足所有要求的百分比)在500个测试指令上进行评估。
实验设置:
使用行动提示,包括搜索、选择产品、选择选项和购买,而ReAct提示还通过推理来确定要探索的内容、何时购买以及哪些产品选项与指令相关。
对比了一个模仿学习(IL)方法和一个模仿+强化学习(IL + RL)方法,后者在10,587个训练指令上进行了额外训练。
结果:单次提示的Act已经与IL和IL+RL方法表现相当。通过额外的稀疏推理,ReAct显著提升了性能,成功率比之前最佳的成功率提高了10%。定性来看,ReAct更有可能通过推理弥合嘈杂观察与行动之间的差距,从而识别出与指令相关的产品和选项。
内部推理与外部反馈的价值
为了展示ReAct与先前工作(如Inner Monologue,IM)的区别,并强调内部推理与简单对外部反馈反应的重要性,研究者们进行了一项消融实验,使用了一种由IM风格的密集外部反馈组成的思维模式。结果显示:
ReAct vs. ReAct-IM:ReAct显著优于IM风格的提示(ReAct-IM)(53% vs. 53%的总体成功率),在六个任务中的五个上具有一致的优势。ReAct-IM在识别子目标何时完成或下一个子目标应是什么时经常出错,这是由于缺乏高层次目标分解;此外,许多ReAct-IM轨迹在确定物品在ALFWorld环境中的可能位置时遇到困难,这是由于缺乏常识推理。这些缺点都可以在ReAct范式中得到解决。
四、总结
ReAct提供了一种强大的框架,通过结合推理和行动来增强语言模型在复杂任务中的表现。它不仅提高了模型解决问题的效率和准确性,还增加了其行为的透明度和可控性。非常友好的AI应用方法,下一期更新对ReAct的实现,一个极简的智能体代码实现。
五、如何系统学习掌握AI大模型?
AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份
全面的AI大模型学习资源
,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享
!
1. 成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
2. 大模型经典PDF书籍
书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。(书籍含电子版PDF)
3. 大模型视频教程
对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识。
4. 2024行业报告
行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
5. 大模型项目实战
学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。
6. 大模型面试题
面试不仅是技术的较量,更需要充分的准备。
在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以
微信扫描下方CSDN官方认证二维码
,免费领取【保证100%免费
】