Reflexion: Language Agents with Verbal Reinforcement Learning
Reflexion: Language Agents with Verbal Reinforcement Learning
https://arxiv.org/pdf/2303.11366
https://github.com/noahshinn024/reflexion
https://zhuanlan.zhihu.com/p/659486595
这篇文章主要研究如何通过自我反思来增强语言模型的强化学习能力,本文提出了一种名为Reflexion的替代方法,该方法使用口头强化来帮助agent从之前的失败中学习。 Reflexion将环境中的二进制或标量反馈转换为文本摘要形式的口头反馈,然后将其作为下一个episode中LLM agent的附加上下文添加。这种自我反思的反馈通过提供具体的改进方向来充当“语义”梯度信号,帮助它从以前的错误中学习以更好地完成任务。
Reflexion具有以下优点:
- 轻量化,不需要微调语言模型。
- 支持细致的反馈形式,不仅有标量奖励。
- 具有明确的记忆机制,可以积累经验episode,为后续episode提供更明确的行动提示。
- 引入自我反思步骤,可以识别错误并自我推理如何改进。
Reflexion包含三个模块:Actor(行动者)、Evaluator(评估器)和Self-Reflection
(自我反思)。
Actor
Actor是建立在大型语言模型(LLM)之上的,它专门通过特定Prompt生成所需的文本和动作,这些Prompt是基于状态观察条件的。类似于传统基于策略的RL设置,从当前策略πθ在时间t采样一个动作或生成at,并从环境ot中接收一个观察值。
文章探索了各种Actor模型,包括Chain of Thought
和ReAct。这些不同的生成模型使我们能够在Reflexion框架内探索文本和动作生成的不同方面,提供有关其性能和有效性的宝贵见解。
此外,我们还添加了一个内存组件mem,为该Agent提供了额外的上下文信息。
Evaluator
Evaluator组件主要是在评估Actor生成的输出质量方面发挥着至关重要的作用。它将生成的轨迹<s0,a0,s1,a1,.....,sn,an>作为输入,并计算反映其在给定任务上表现的奖励分数。对于不同的任务使用了不同的需要设计不同语义空间的有效价值和奖励函数。
对于推理任务,探索基于精确匹配(EM)评分的奖励函数,确保生成的输出与预期解决方案紧密对齐。
在决策任务中,我们使用预定义的启发式函数,这些函数适用于特定的评估标准。
此外,我们尝试使用LLM的不同实例本身作为Evaluator,为决策和编程任务生成奖励。
这种多方面的Evaluator设计方法使我们能够检查评分生成输出的不同策略,提供有关它们在各种任务中的有效性和适用性的见解。
Self-reflection
Self-Reflection在Reflexion框架中发挥着至关重要的作用,通过生成口头自我反思为未来的试验提供有价值的反馈。鉴于稀疏的奖励信号,如二进制成功状态(成功/失败)、当前轨迹及其持久性内存mem,自我反思模型生成微妙而具体的反馈。这种比标量奖励更具信息量的反馈随后存储在内存(mem)中。
例如,在多步决策任务中,当agent收到失败信号时,它可以推断出特定动作ai导致了后续的不正确动作ai+1和ai+2。然后Agent可以口头表述应该采取不同的动作a'i,这将导致a'i+1,a'i+2。在后续的试验中,Agent可以利用过去的经验,在时间t通过选择动作a'i来调整其决策方法。
这种试验、错误、自我反思和持久内存的迭代过程使Agent能够利用信息丰富的反馈信号,在各种环境中快速提高其决策能力。
Memory
Reflexion过程的核心组件是短期和长期记忆的概念。在推理时,Actor基于短期和长期记忆做出决策,类似于人类记住细节,同时从长期记忆中回想起重要的经验。在RL设置中,轨迹历史记录用作短期记忆,而来自Self-Reflection模型的输出则存储在长期记忆中。这两个记忆组件共同提供特定的上下文信息,并受到在多次试验中学到的教训的影响,这是Reflexion代理相对于其他LLM行动选择工作的一个关键优势。
https://shirintahmasebi.github.io/agents/2024/reflexion/
Reflexion Process:
- Generation of Initial Trajectory: The LLM (Actor) interacts with the environment to generate an initial trajectory
and reward to generate a verbal summary
- is stored in the agent’s memory. In subsequent trials, this memory provides context and guidance to the LLM, helping it to avoid past mistakes and make better decisions.
- Iterative Improvement: The process of generating trajectories, evaluating them, creating self-reflections, and updating memory continues iteratively. The agent leverages the accumulated memory to improve its performance over time.
The whole process along with the psudo-code of the alogrithm is as follows:
- .
- Evaluation: The Evaluator assesses the trajectory and produces a reward
- .
- Self-Reflection: The Self-Reflection model uses the trajectory
- . This summary captures the agent’s reflections on its performance, highlighting what went wrong and suggesting improvements.
- Updating Memory: The reflective summary