论文阅读翻译之Reflexion - Language Agents with Verbal Reinforcement Learning

论文阅读翻译之Reflexion - Language Agents with Verbal Reinforcement Learning

关于

  • 首次发表日期:2024-07-15
  • 论文链接: https://arxiv.org/abs/2303.11366
  • arxiv论文PDF提交日期:10 Oct 2023
  • 主要使用KIMI和ChatGPT机翻,然后人工润色
  • 文章末尾加入了来自ChatGPT的解释,便于理解涉及的RL相关概念
  • 如有错误,敬请指出

摘要

大型语言模型(LLMs)越来越多地被用作目标驱动的代理(agent)与外部环境(如游戏、编译器、API)进行交互。然而,这些语言代理(language agents)要通过试错(trial-and-error)快速高效地学习仍然具有挑战性,因为传统的强化学习方法需要大量的训练样本和昂贵的模型微调。我们提出了Reflexion,这是一种通过语言反馈(linguistic feeback)来强化语言代理(language agetns)的新框架,而不是通过更新权重来强化。具体而言,Reflexion代理会对任务反馈信号进行口语式地(verbally)反思,然后将自己的反思的文本保存在情景记忆缓冲区中,以在后续试验中做出更好的决策。Reflexion足够灵活,可以结合各种类型(标量值或自由格式的语言)和来源(外部或内部模拟)的反馈信号,并在各种任务(顺序决策、编码、语言推理)中显著优于基线代理(baseline agent)。例如,Reflexion在HumanEval编码基准测试中达到了91%的pass@1准确率,超过了之前的最先进模型GPT-4的80%。我们还进行了使用不同反馈信号、反馈整合方法和代理类型的消融实验和分析研究,并提供了它们如何影响性能的见解。我们在 https://github.com/noahshinn024/reflexion 发布了所有代码、示意和数据集。

1. 引言

近期的工作,如ReAct、SayCan、Toolformer、HuggingGPT、generative agents和WebGPT,已经展示了在大型语言模型(LLM)核心之上构建的自主决策代理的可行性。这些方法使用LLM来生成文本和“动作”,这些可以用于API调用并在某个环境中执行。由于它们依赖于拥有大量参数的庞大模型(LLM),迄今为止,这些方法主要受限于使用上下文示例作为教导代理(teach agent)的方式,因为更传统的优化方案,如使用梯度下降法的强化学习,需要大量的计算资源和时间。

在本文中,我们提出了一种名为Reflexion的替代方法,该方法使用口语式强化帮助代理(agent)从过去的失败中学习。Reflexion将环境中的二进制反馈或标量反馈转化为文本摘要形式的口语式反馈,然后在下一回合中将其作为额外的上下文添加到LLM代理(agent)中。这种自我反思式的反馈充当了一种“语义”梯度信号,通过为代理(agent)提供一个具体的改进方向,帮助它从先前的错误中学习,从而在任务中表现得更好。这类似于人类如何在几次尝试中迭代地学习完成复杂任务——通过反思他们之前的失败,以便形成一个在下一次尝试中表现更好的改进的计划。例如,在图1中,一个Reflexion代理(agent)通过试验、犯错和自我反思,来学习优化其自身行为,以解决决策、编程和推理任务。

生成有用的反思性反馈具有挑战性,因为这需要很好地理解模型出错的地方(如信用分配问题),以及生成摘要(包含用于提升改进的可操作的见解)的能力。我们探讨了三种方法来实现这一目标——简单的二进制环境反馈、针对常见失败案例的预定义启发式方法,以及自我评估法(例如使用LLM进行的二分类(决策)或自我编写的单元测试(编程))。在所有实现中,评估信号都会被放大为自然语言表述的经验摘要,并可以存储在长期记忆中。

Reflexion相较于传统的强化学习方法(如基于策略或价值的学习)有几个优势:1) 它轻量且不需要对LLM进行微调,2) 与标量或向量奖励(scalar or vector rewards)相比,它允许更细致入微的反馈形式(例如,对行为或动作的针对性的改变),其中前者在进行精确的信用分配时面对挑战,3) 它允许对先前经验的情节记忆进行更明确和可解释的表达 4) 它为未来回合中的行动(action)提供了更明确的提示。同时,它确实有依赖于LLM自我评估能力(或启发式方法)的劣势,并且没有成功的正式保证。然而,随着LLM能力的提升,我们只期望这种范式会随着时间的推移而变得更好。

我们在以下方面进行实验:(1) 决策(decision-making)任务,以测试在长轨迹上的连续行动选择(action choices);(2) 推理(reasoning)任务,以测试知识密集型的单步生成改进;以及(3) 编程任务,教导代理(agent)如何有效地使用外部工具,如编译器和解释器。在所有三种类型的任务中,我们观察到Reflexion代理是更好的决策者、推理者和程序员。更具体地说,Reflexion代理在决策任务的AlfWorld任务上,通过12次迭代学习步骤,比强基线方法绝对提高了22%;在HotPotQA的推理问题上提高了20%,在HumanEval的Python编程任务上提高了多达11%。

总的来说,我们的贡献如下:

  • 我们提出了Reflexion,这是一种新的“口语式”强化学习范式,它将策略参数化为代理(agent)的记忆编码与LLM参数的选择。
  • 我们探索了LLM中自我反思的这种新兴特性,并实证表明自我反思对于在少量试验(a handful of trials)中学习复杂任务非常有用。
  • 我们引入了LeetcodeHardGym,一个代码生成RL gym,由40个具有挑战性的Leetcode问题(“高难度”)组成(19种编程语言)。
  • 我们展示了Reflexion在多个任务上相对于强基线方法的改进,并在各种代码生成基准测试中取得了SOTA的结果。

图1:
在这里插入图片描述

3 Reflexion:通过口语式反思进行强化学习

我们为Reflexion开发了一种模块化公式,利用了三种不同的模型:一个生成文本和动作(action)的Actor模型,记作 M a M_a Ma;一个对 M a M_a Ma生成的输出进行评分的Evaluator模型,记作 M e M_e Me;以及一个生成口语式强化提示以帮助Actor自我改进的Self-Reflection模型,记作 M s r M_{sr} Msr。我们详细描述了每个模型,并随后阐明了它们在Reflexion框架内的协同工作。

Actor Actor 基于一个大型语言模型(LLM),通过特定的提示生成必要的文本和动作,这些生成是基于状态观察的。类似于传统的基于策略的强化学习设置,我们在时间点 t t t 从当前策略 π θ \pi_\theta πθ 中采样一个动作或生成 a t a_t at,并从环境中接收一个观察 o t o_t ot。我们探索了各种Actor模型,包括Chain of Thought和ReAct。这些多样化的生成模型使我们能够在Reflexion框架内探索文本和动作生成的不同方面,从而提供有关其性能和有效性的宝贵见解。此外,我们还添加了一个记忆组件 m e m mem mem,为该智能体提供额外的上下文。这种改编受到了《Large Language Models can Implement Policy Iteration》 的启发,后者建议使用上下文学习的策略迭代方法。有关如何填充此组件的详细信息将在下文提供。

Evaluator Reflexion框架的Evaluator组件在评估Actor生成的输出质量中起着关键作用。它接受生成的轨迹(generated trajectory)作为输入,并计算一个反映其在给定任务环境中表现的奖励分数。定义适用于语义空间的有效的价值和奖励函数是困难的,因此我们探索了几种Evaluator模型的变体。对于推理(reasoning)任务,我们研究基于精确匹配(exact match, EM)评分的奖励函数,确保生成的输出与预期解决方案紧密对齐。在决策任务中,我们采用针对特定评估标准量身定制的预定义启发式函数。此外,我们还尝试使用LLM本身的不同实例(instantiation)作为Evaluator,为决策和编程任务生成奖励分数。这种Evaluator设计的多面方法(multi-faceted approach)使我们能够检验用于给生成输出打分的不同策略,提供了关于它们在一系列任务中的有效性和适用性的见解。

Self-reflection 作为LLM实例化的Self-Reflection模型在Reflexion框架中发挥关键作用,通过生成口语式的自我反思,为未来的试验提供宝贵的反馈。给定一个稀疏的奖励信号,比如二元成功状态(成功/失败),当前的轨迹,以及其持久记忆 m e m mem mem,情况下,Self-Reflection模型生成细致且具体的反馈。这种比标量奖励(scalar rewards)更具信息量的反馈随后存储在代理(agent)的记忆中( m e m mem mem)。例如,在一个多步决策任务中,当代理(agent)接收到失败信号时,它可以推断出特定动作 a i a_i ai 导致了后续的错误动作 a i + 1 a_{i+1} ai+1 a i + 2 a_{i+2} ai+2。代理(agent)随后可以口头表达应该采取不同的动作 a i ′ a_i^{\prime} ai,这将导致 a i + 1 ′ a_{i+1}^{\prime} ai+1 a i + 2 ′ a_{i+2}^{\prime} ai+2,并将这一经验存储在其记忆中。在后续的试验中,代理(agent)可以利用过去的经验,在时间点 t t t 通过选择动作 a i ′ a_i^{\prime} ai 来调整其决策方法。这种试验、犯错、自我反思和持久记忆的迭代过程使得代理(agent)能够通过利用信息丰富的反馈信号,在各种环境中迅速提升其决策能力。

Memory Reflexion过程的核心组成部分是短期记忆和长期记忆的概念。在推理时,Actor基于短期和长期记忆来决策,类似于人类记忆最近的细节的同时也回顾起长期记忆中提炼出的重要经验。在强化学习(RL)设置中,轨迹历史充当短期记忆,而来自Self-Reflection模型的输出则存储在长期记忆中。这两个记忆组件相互配合提供具体的上下文,此上下文同时受到多次试验中学到的经验教训的影响,这是Reflexion代理(agent)的一个关键优势,相对其他LLM动作选择的研究(LLM action choice works)。

图2:
在这里插入图片描述

Reflexion过程 Reflexion被形式化为图2中的迭代优化过程。在第一次试验中,Actor通过与环境互动生成一个轨迹 τ 0 \tau_0 τ0。Evaluator然后产生一个得分 r 0 r_0 r0,计算公式为 r t = M e ( τ 0 ) r_t = M_e(\tau_0) rt=Me(τ0) r t r_t rt只是第 t t t 次试验的标量奖励,随着任务特定的表现(task-specific performance)的提高而改善。在第一次试验后,为了将 r 0 r_0 r0 放大为可以被LLM用于改进的反馈形式,Self-Reflection模型分析 { τ 0 , r 0 } \{\tau_0, r_0\} {τ0,r0} 集合来生成一个摘要 s r 0 sr_0 sr0,存储在记忆体 m e m mem mem中。 s r t sr_t srt是第 t t t 次试验的口语化经验反馈。Actor、Evaluator和Self-Reflection模型通过一系列试验循环工作,直到Evaluator认为 τ t \tau_t τt 是正确的。正如Memory小节中所述,Reflexion的记忆组件对其有效性至关重要。在每次试验后, s r t sr_t srt被追加到mem中。在实践中,我们通过最大存储经验数 Ω \Omega Ω(通常设置为1-3)来限制mem,以符合LLM最大上下文的限制。

ChatGPT的解释:
在强化学习的上下文中, τ t = [ a 0 , o 0 , … , a i , o i ] \tau_t=\left[a_0, o_0, \ldots, a_i, o_i\right] τt=[a0,o0,,ai,oi] 表示一个轨迹(trajectory),其中各个元素的含义如下:

  • a i a_i ai: 在时间步 i i i 时刻代理(agent)选择的动作(Action)。
  • o i o_i oi: 在时间步 i i i 时刻代理(agent)观察到的环境状态(Observation)或者环境给出的反馈(Feedback)。

具体来说:

  • 如果 o i o_i oi 是环境状态,则它描述了智能体在执行动作 a i a_i ai 后观察到的环境当前的状态信息。这些信息可以包括位置、速度、感知数据等。
  • 如果 o i o_i oi 是环境给出的反馈,则它可以是奖励信号(Reward),表明代理(agent)执行动作 a i a_i ai 后环境的评估结果,用于调整智能体的策略和行为。

在强化学习中,轨迹 τ t \tau_t τt 是代理(agent)在与环境交互中的历史记录,记录了从初始状态到结束状态的所有动作和状态观察。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值