【Prompt Engineering:自我反思(Reflexion)】

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 自我反思(Reflexion)是一种通过语言反馈强化基于语言的智能体的新范式,无需微调模型即可提升其在决策、推理和编程等任务中的表现。该框架包括参与者(生成动作)、评估者(评分)和自我反思(生成反馈)三个部分,利用大语言模型生成具体反馈,帮助智能体从错误中快速学习,显著提高了多种任务的性能。

 自我反思(Reflexion)

自我反思是一个通过语言反馈来强化基于语言的智能体的框架。根据 Shinn et al. (2023)(opens in a new tab),“自我反思是一种‘口头’强化的新范例,它将策略参数化为智能体的记忆编码与 LLM 的参数选择配对。”

在高层次上,自我反思将来自环境的反馈(自由形式的语言或者标量)转换为语言反馈,也被称作 self-reflection,为下一轮中 LLM 智能体提供上下文。这有助于智能体快速有效地从之前的错误中学习,进而提升许多高级任务的性能。 image.gif 编辑

如上图所示,自我反思由三个不同的模型组成:

  • 参与者(Actor):根据状态观测量生成文本和动作。参与者在环境中采取行动并接受观察结果,从而形成轨迹。链式思考(CoT)(opens in a new tab)ReAct(opens in a new tab) 被用作参与者模型。此外,还添加了记忆组件为智能体提供额外的上下文信息。
  • 评估者(Evaluator):对参与者的输出进行评价。具体来说,它将生成的轨迹(也被称作短期记忆)作为输入并输出奖励分数。根据人物的不同,使用不同的奖励函数(决策任务使用LLM和基于规则的启发式奖励)。
  • 自我反思(Self-Reflection):生成语言强化线索来帮助参与者实现自我完善。这个角色由大语言模型承担,能够为未来的试验提供宝贵的反馈。自我反思模型利用奖励信号、当前轨迹和其持久记忆生成具体且相关的反馈,并存储在记忆组件中。智能体利用这些经验(存储在长期记忆中)来快速改进决策。

总的来说,自我反思的关键步骤是a)定义任务,b)生成轨迹,c)评估,d)执行自我反思,e)生成下一条轨迹。下图展示了自我反思的智能体学习迭代优化其行为来解决决策、编程和推理等各种人物的例子。自我反思(Refelxion)通过引入自我评估、自我反思和记忆组件来拓展 ReAct 框架。 image.gif 编辑

结果

实验结果表明,自我反思能够显著提高 AlfWorld 上的决策任务、HotPotQA 中的问题推理以及在 HumanEval 上的 Python 编程任务性能。

在序列决策 (AlfWorld) 任务上进行评估时,ReAct + Reflexion 用启发式和 GPT 的自我评估进行二元分类,完成了 130/134 项任务,显着优于 ReAct。 image.gif 编辑

在仅仅几个学习步骤中,自我反思显著优于所有基线方法。仅对于推理以及添加由最近轨迹组成的情景记忆时,Reflexion + CoT 的性能分别优于仅 CoT 和具有情景记忆的 CoT。 image.gif 编辑

如下表所示,在 MBPP、HumanEval 和 Leetcode Hard 上编写 Python 和 Rust 代码时,Reflexion 通常优于之前的 SOTA 方法。 image.gif 编辑

何时自我反思?

自我反思最适合以下情况:

  1. 智能体需要从尝试和错误中学习:自我反思旨在通过反思过去的错误并将这些知识纳入未来的决策来帮助智能体提高表现。这非常适合智能体需要通过反复试验来学习的任务,例如决策、推理和编程。
  2. 传统的强化学习方法失效:传统的强化学习(RL)方法通常需要大量的训练数据和昂贵的模型微调。自我反思提供了一种轻量级替代方案,不需要微调底层语言模型,从而使其在数据和计算资源方面更加高效。
  3. 需要细致入微的反馈:自我反思利用语言反馈,这比传统强化学习中使用的标量奖励更加细致和具体。这让智能体能够更好地了解自己的错误,并在后续的试验中做出更有针对性的改进。
  4. 可解释性和直接记忆很重要:与传统的强化学习方法相比,自我反思提供了一种更可解释、更直接的情景记忆形式。智能体的自我反思存储在其记忆组件中,让分析和理解其学习过程变得更加简单。

自我反思在以下任务中是有效的:

  • 序列决策:自我反思提高了智能体在 AlfWorld 任务中的表现,涉及在各种环境中导航并完成多步目标。
  • 推理:自我反思提高了 HotPotQA 上智能体的性能,HotPotQA 是一个需要对多个文档进行推理的问答数据集。
  • 编程:自我反思的智能体在 HumanEval 和 MBPP 等基准测试上编写出了更好的代码,在某些情况下实现 SOTA 结果。

以下是自我反思的一些限制:

  • 依赖自我评估能力:反思依赖于智能体准确评估其表现并产生有用反思的能力。这可能是具有挑战性的,尤其是对于复杂的任务,但随着模型功能的不断改进,预计自我反思会随着时间的推移而变得更好。
  • 长期记忆限制:自我反思使用最大容量的滑动窗口,但对于更复杂的任务,使用向量嵌入或 SQL 数据库等高级结构可能会更有利。
  • 代码生成限制:测试驱动开发在指定准确的输入输出映射方面存在限制(例如,受硬件影响的非确定性生成器函数和函数输出)。

图像来源:Reflexion: Language Agents with Verbal Reinforcement Learning

相关文章
|
搜索推荐 流计算 索引
图文检索
图文检索简介
图文检索
|
机器学习/深度学习 人工智能 自然语言处理
【Prompt Engineering提示工程技术:思维树 (ToT)、检索增强生成 (RAG)、自动推理并使用工具 (ART)】
思维树(ToT)框架,旨在解决复杂任务,通过构建一棵思维树,利用语言模型生成并评估中间步骤,结合搜索算法(如广度优先搜索)进行系统探索。ToT在不同任务中需定义思维步骤及候选数量,如“算24游戏”需三分步骤,每步评估可行性。实验表明,ToT显著优于其他提示方法。此外,ToT框架可结合强化学习不断进化,提升解决复杂问题的能力。
615 1
【Prompt Engineering提示工程技术:思维树 (ToT)、检索增强生成 (RAG)、自动推理并使用工具 (ART)】
|
自然语言处理 Python
【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】
Diao等人(2023)提出了一种名为Active-Prompt的新方法,通过自适应提示来优化大型语言模型(LLMs)在特定任务中的表现。此方法通过不确定性评估选择需标注的问题,利用少量人工标注的思维链(CoT)示例逐步优化模型,提高其解决问题的能力。相比固定范例,Active-Prompt能够更有效地针对不同任务调整提示,从而提升模型性能。
499 7
【Prompt Engineering提示:Active-Prompt、方向性刺激提示、PAL(程序辅助语言模型)】
|
10月前
|
人工智能 算法 前端开发
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
OmAgent 是 Om AI 与浙江大学联合开源的多模态语言代理框架,支持多设备连接、高效模型集成,助力开发者快速构建复杂的多模态代理应用。
758 72
OmAgent:轻松构建在终端设备上运行的 AI 应用,赋能手机、穿戴设备、摄像头等多种设备
|
8月前
|
人工智能 监控 前端开发
主流多智能体框架设计原理
本文描述了关于智能体(Agents)和多智能体系统(Multi-Agent Systems, MAS)的详尽介绍,涵盖了从定义、分类到具体实现框架的多个方面。
主流多智能体框架设计原理
|
9月前
|
人工智能 算法 搜索推荐
CoAT: 基于蒙特卡洛树搜索和关联记忆的大模型推理能力优化框架
研究者提出了一种新的关联思维链(CoAT)方法,通过整合蒙特卡洛树搜索(MCTS)和关联记忆机制,提升大语言模型(LLMs)的推理能力。CoAT框架优化了MCTS算法,增强了结构化推理和动态知识整合,适用于复杂推理、多跳问答和代码生成等任务。实验结果显示,CoAT在精确匹配和F1分数上表现优异,超越了多个基线模型。然而,该方法在计算资源消耗和实时推理速度方面仍有改进空间。
687 5
CoAT: 基于蒙特卡洛树搜索和关联记忆的大模型推理能力优化框架
|
数据挖掘
【Chain-of-Thought Prompting】链式思考(CoT)提示、零样本 COT 提示、自动思维链(Auto-CoT)
链式思考(CoT)提示是一种通过中间推理步骤实现复杂推理能力的方法,由Wei等人(2022)引入。它能够与少样本提示结合,提高任务处理效果。通过逐步推理,即使是大型语言模型也能展示出更强的推理能力。例如,在解决数学问题或逻辑判断上,CoT提示能显著提升正确率,尤其是在缺乏大量训练数据的情况下。
827 7
【Chain-of-Thought Prompting】链式思考(CoT)提示、零样本 COT 提示、自动思维链(Auto-CoT)
|
搜索推荐 UED
【Prompt Engineering:自我一致性、生成知识提示、链式提示】
自我一致性是提示工程技术之一,旨在改进链式思维提示中的解码方法。通过少样本CoT采样多个推理路径并选择最一致的答案,有助于提升涉及算术和常识推理任务的性能。例如,在解决年龄相关问题时,通过多次采样并挑选多数答案来提高准确性。此外,生成知识提示技术可预先生成相关信息辅助模型做出更准确预测,进一步优化模型表现。链式提示则通过将复杂任务分解为多个子任务来逐步处理,从而提高模型的透明度和可靠性,便于定位和改进问题。
506 0
【Prompt Engineering:自我一致性、生成知识提示、链式提示】
|
存储 编解码 算法
微帧科技:综合多项指标评价视频质量,才能更接近主观感受
视频质量评价指标如PSNR、SSIM和VMAF是衡量画面质量的重要工具,但不应成为视频工作者的唯一目标。微帧致力于优化画质,提升观看体验,强调综合评估指标,以实现最接近人眼主观感受的效果。本文探讨了PSNR avg.MSE与PSNR avg.log的区别,以及VMAF的优势与不足。
|
人工智能 自然语言处理 机器人
【Prompt Engineering 提示词工程指南】​文本概括、信息提取、问答、文本分类、对话、代码生成、推理​
本文介绍了使用提示词与大语言模型(LLM)交互的基础知识。通过调整参数如温度(Temperature)、最高概率词元(Top_p)、最大长度(Max Length)及停止序列(Stop Sequences),可以优化模型输出。温度参数影响结果的随机性;Top_p 控制结果的多样性;最大长度限制输出长度;停止序列确保输出符合预期结构。此外,频率惩罚(Frequency Penalty)和存在惩罚(Presence Penalty)可减少重复词汇,提升输出质量。提示词需包含明确指令、上下文信息、输入数据及输出指示,以引导模型生成理想的文本。设计提示词时应注重具体性、避免歧义,并关注模型的具体行为
1447 1
【Prompt Engineering 提示词工程指南】​文本概括、信息提取、问答、文本分类、对话、代码生成、推理​