当前位置: 首页 > news >正文

论文阅读_反思模型_Reflexion

英文名称: Reflexion: Language Agents with Verbal Reinforcement Learning
中文名称: 反思:具有言语强化学习的语言智能体
文章: http://arxiv.org/abs/2303.11366
代码: https://github.com/noahshinn/reflexion
作者: Noah Shinn (Northeastern University)
日期: 2023-10-10

读后感

论文提出了一种强化学习方法。传统的调优主要是通过训练调整网络参数,而文中提出的方法则是“分析”错误,形成反思的“文字”并保存,在之后的决策中,将其作为上下文以帮助决策。

它利用大模型及其周边方法构造了角色的行为、对结果的评价、当不能达成目标时,利用大模型来反思执行过程中具体哪一步出了问题,并将其作为反思存储。这样就构造了基于当前环境的短期存储,和基于反思的长期存储,结合二者使模型在未来做出更好的决策。

可将其视为把之前在棋类游戏中的强化学习扩展到了角色扮演游戏之中。之前的虚拟世界是棋盘,而现在的智能体置身于一个游戏世界;之前的行为是多步棋的组合,现在是多个行为的组合;之前是根据最终输赢为每一步计算奖励值,现在是利用大模型反思出每一步的对错……

这个方法很巧妙,当然也是因为现在有了各种大模型,链式思维的方法,才能支持该方法的实现。

摘要

对于语言代理来说,通过传统的强化学习方法进行试错学习需要大量的训练样本和昂贵的模型微调。论文提出了 Reflexion 框架 ,通过语言反馈而不是更新权重来强化语言代理。Reflexion 足够灵活,可以整合各种类型和来源的反馈信号,实验证明,它在各种任务中取得显著改进。

1. 引言

Reflexion 将环境中的反馈转化为文本摘要,然后将其作为附加上下文添加到下一轮的 LLM 代理中,从以前的错误中学习,以在未来任务中表现更好。这类似于人类如何通过反思以往的失败来形成改进,以便以少量尝试的方式完成复杂任务。

与传统方法相比,Reflexion 具有以下优点:

  • 更为轻量,不需要对 LLM 进行微调
  • 相比于难以进行准确信用分配的标量或向量奖励,它允许更细致的反馈
  • 允许更明确和可解释的情节性记忆形式
  • 为未来的决策提供了更明确的行动提示

其缺点是:

  • 依赖于 LLM 的自我评估能力(或启发式方法)
  • 无法保证成功

文章贡献如下:

• 提出了 Reflexion,一种新的基于语言的强化学习范式,结合了智能体的记忆与 LLM 参数的选择,以优化策略。

• 探索了 LLM 中自我反思的性质,证明自我反思对于少量数据的复杂任务非常有用。

• 引入了包含 40 个具有挑战性的 Leetcode 问题(“困难级别”)的代码生成,涵盖了 19 种编程语言。

• 展示了 Reflexion 在多个任务上相对于强基线方法的改进。

2. 相关工作

略…

3. 方法

  • Actor:角色,使用 LLM 实现,它基于可观察的状态,利用提示生成文本和动作。类似强化学习中的基于策略的方法,在时间步 t,从策略 πθ 中采样一个动作 at,它探索了各种 Actor 模型,包括 COT 和 ReAct,从而丰富了探索空间。
  • Evaluator:评估器,用于评估 Actor 输出的质量。将生成的轨迹作为输入,计算在给定任务上下文中的奖励分数。对于推理任务,探索基于精确匹配(EM)评分的奖励函数;对于决策任务,采用根据特定评估标准的预定义启发式函数;还使用 LLM 的不同实例作为评估器,为决策和编程任务生成奖励。
  • Self-reflection:自我反思,使用 LLM 实现,用于生成基于语言的反思。在给出稀疏奖励信号,如二元状态(成功/失败),当前轨迹及其持久记忆内存。自我反思模型会生成细致入微且具体的反馈,这种反馈相比标量奖励提供更多信息,然后被存储在代理的内存 (mem) 中。如在多步决策任务中,当智能体收到失败信号时,它可以推断出特定动作 ai 导致了后续错误动作 ai+1 和 ai+2。然后,智能体可以用语言声明它应该采取不同的动作 a’ i,这将导致 a’ i+1 和 a’ i+2,并将该经验存储在其记忆中。在随后的试验中,智能体可以利用其过去的经验,通过选择动作 a’ i 来调整其在时间 t 的决策方法。这种尝试、错误、自我反思和持久记忆的迭代过程使智能体能够利用信息反馈信号快速提高其在各种环境中的决策能力。
  • Memory:内存组件,为 Agent 提供额外的上下文。它提供短期记忆和长期记忆。在推理时,Actor 根据短期和长期记忆做出决定,在强化学习设置中,轨迹历史充当短期记忆,而自我反思模型的输出则存储在长期记忆中。这是反思 Agent 相对于其他 LLM 的关键优势。类似于人类记住近期细节的方式,同时也回忆从长期记忆中提炼出的重要经验
  • The Reflexion process:反思过程,如算法 -1 所示的迭代优化过程。在第一次试验中,Actor 通过与环境交互产生轨迹 τ0。然后评估器产生一个分数 r0;rt 是标量奖励;为了放大 r0 ,自我反思模型分析 {τ0, r0} 集合以生成存储在内存 mem 中的摘要 sr0。srt 是对试验 t 的语言反馈。 Actor、Evaluator 和 Self-Reflection 模型通过循环试验协同工作,直到 Evaluator 认为 τt 是正确的。每次试验后 t、srt 都会附加存入 mem。在实践中,通过存储经验的最大数量 Ω(通常设置为 1-3)来限制 mem,从而不超过 LLM 的上下文限制。

4. 实验

4.1 顺序决策制定:ALFWorld

在 AlfWorld 常见家庭环境中的多步任务中,反思使性能提高了 22%。

4.2 推理:HotpotQA

HotPotQA 是一个基于维基百科的数据集,包含 113k 个问题和答案对,代理解析内容并在多个支持文档上进行推理。

论文实现了一个反思 + 思维链的 Agent,它可以使用维基百科 API 检索相关上下文,并使用逐步显式思考推断答案。加入反思在该任务中提升了 20%,

4.3 编程

在 MBPP、HumanEval 和 LeetcodeHardGym 上评估了基准和 Reflexion 方法在 Python 和 Rust 代码编写方面的表现。除了 MBPP Python 1,Reflexion 在所有测试中表现优于所有基准准确性,

相关文章:

论文阅读_反思模型_Reflexion

英文名称: Reflexion: Language Agents with Verbal Reinforcement Learning 中文名称: 反思:具有言语强化学习的语言智能体 文章: http://arxiv.org/abs/2303.11366 代码: https://github.com/noahshinn/reflexion 作者: Noah Shinn (Northeastern University) 日期…...

Redis 数据结构:高频面试题及解析

概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性&…...

蓝桥杯小白赛第一场(1~6)(期望DP)

1、模拟 2、贪心 3、前缀和 4、猜结论 5、双指针 6、期望DP&#xff08;公式有问题已更改&#xff09; 1. 蘑菇炸弹 思路&#xff1a;一个简单的暴力模拟。 #include <bits/stdc.h> using namespace std; int main() {int n;cin >> n;vector<int>a(n…...

房贷背后数学陷阱-蒙特卡洛算法Monte Carlo揭秘断供为何越来越多(硬核收藏)

前几天写了法拍房相关文章&#xff0c;发现国内断供的房屋越来越多。 中国法拍房数量统计预测模型_2023年法拍房数据竟是 2023年中国法拍房用户画像和数据分析 今早花了2个小时&#xff0c;写了蒙特卡洛算法模拟预测按揭贷款断供概率。 先给大家介绍按揭贷款的常用数据。不同…...

spingboot项目实战之若依框架创建新模块

前言 目前的脚手架系统很多&#xff0c;比较早接触诺依框架&#xff0c;以若依框架为参考如何创建新模块 步骤 1. 下载诺依框架&#xff0c;依照参考说明一步步&#xff0c;能做到系统运行起来。 2. 准备好mysql文件&#xff0c;创建新数据库表 3. 数据库管理工具navicat…...

智能优化算法应用:基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.飞蛾扑火算法4.实验参数设定5.算法结果6.…...

3分钟,掌握“曲面屏显示屏”

在3分钟内掌握“曲面屏显示屏”的概念和特点&#xff0c;可以按照以下步骤进行&#xff1a; 一、了解曲面屏显示屏的基本概念 曲面屏显示屏是一种采用柔性塑料的显示屏&#xff0c;主要通过OLED面板来实现。相比直面屏幕&#xff0c;曲面屏幕弹性更好&#xff0c;不易破碎。此外…...

光栅化渲染:光栅化算法实现

光栅化是将图元转换为二维图像的过程。 该图像的每个点都包含颜色和深度等信息。 因此&#xff0c;对图元进行光栅化由两部分组成。 第一个是确定窗口坐标中整数网格的哪些方格被图元占据。 第二个是为每个这样的方块分配颜色和深度值。 &#xff08;OpenGL 规范&#xff09; N…...

Python-Opencv图像处理的小坑

1.背景 最近在做一点图像处理的事情&#xff0c;在做处理时的cv2遇到一些小坑&#xff0c;希望大家遇到的相关的问题可以注意&#xff01;&#xff01; 2. cv2.imwrite保存图像 cv2.imwrite(filename, img, [params]) filename&#xff1a;需要写入的文件名&#xff0c;包括路…...

[LCTF 2018]bestphp‘s revenge

文章目录 前置知识call_user_func()函数session反序列化PHP原生类SoapClient 解题步骤 前置知识 call_user_func()函数 把第一个参数作为回调函数调用 eg:通过函数的方式回调 <?php function barber($type){echo "you wanted a $type haircut, no problem\n";}c…...

HTML中常用表单元素使用(详解!)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中常用表单元素使用以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题可以在评论区留言 …...

掌握C++模板的艺术:类型参数、默认值和自动推导

掌握C模板的艺术:类型参数、默认值和自动推导 模板参数 类型模板参数 在 Grid 示例中&#xff0c;Grid 模板有一个模板参数&#xff1a;存储在网格中的类型。编写类模板时&#xff0c;您需要在尖括号内指定参数列表&#xff0c;例如&#xff1a; template <typename T&g…...

Unity_使用FairyGUI搭建登录页面

Unity_使用FairyGUI搭建登录页面 1. 使用FairyGUI准备一个UI界面&#xff0c;例如&#xff1a;以下登录 2. 发布导出&#xff08;发布路径设置为Unity的Asset下任何路径&#xff09; 3. Unity编辑器安装FairyGUI包资源&#xff08;在资源商店找见并存储为我的资源&#xff0c;…...

百岁时代即将来临,原知因成为消费新潮流

什么叫长寿时代?泰康保险首席执行官陈东升指出&#xff1a;长寿时代&#xff0c;就是百岁人生即将来临&#xff0c;人人带病长期生存。而在这个时代&#xff0c;人类最大的变化在于“生命尺度的改变”&#xff0c;比如过去20岁是年轻人&#xff0c;40岁中年人&#xff0c;60岁…...

16:00的面试,16:07就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到六月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40…...

VUE宝典之el-dialog使用

文章目录 &#x1f341;前言&#x1f341;el-dialog简介&#x1f341;el-dialog属性&#x1f341;el-dialog示例&#x1f341;父子组件值传递示例 &#x1f341;前言 el-dialog是Element UI库中的一个重要组件&#xff0c;用于在Vue应用程序中创建弹出框。它提供了一组实用的属…...

Cocos Creator:坐标系

Cocos Creator&#xff1a;坐标系 坐标系节点位置坐标转换v3.8 实现原理&#xff08;不想了解可以直接跳过&#xff09;简单示例&#xff1a;&#xff08;干货or解决方案在这里&#xff01;&#xff09; 锚点缩放和旋转 总结心得 在 Cocos Creator 3.8 中&#xff0c;节点坐标系…...

logback日志框架使用

依赖引入 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version> </dependency> 使用logback日志框架只需要引入以上即可&#xff0c;(我们平时使用较多的Slf4j…...

【八】python装饰器模式

文章目录 8.1 装饰器模式简介8.2 装饰器模式作用8.3 装饰器模式构成8.3.1 装饰器模式包含以下几个核心角色&#xff1a;8.3.2 UML类图 8.4 装饰器模式python代码实现8.4.1 基本装饰器的使用8.4.2 多个装饰器的执行顺序8.4.3 带返回值的装饰器的使用8.4.4 装饰器模式-关联类模式…...

Unity-小工具-LookAt

Unity-小工具-LookAt &#x1f959;介绍 &#x1f959;介绍 &#x1f4a1;通过扩展方法调用 gameObject.LookAtTarget&#xff0c;让物体转向目标位置 &#x1f4a1;gameObject.StopLookat 停止更新 &#x1f4a1;可以在调用时传入自动停止标记&#xff0c;等转向目标位置后自…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python&#xff5c;GIF 解析与构建&#xff08;5&#xff09;&#xff1a;手搓截屏和帧率控制 一、引言 二、技术实现&#xff1a;手搓截屏模块 2.1 核心原理 2.2 代码解析&#xff1a;ScreenshotData类 2.2.1 截图函数&#xff1a;capture_screen 三、技术实现&…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容&#xff1a;参考网站&#xff1a; PID算法控制 PID即&#xff1a;Proportional&#xff08;比例&#xff09;、Integral&#xff08;积分&…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心&#xff0c;JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例&#xff1a; 1. onclick - 点击事件 当元素被单击时触发&#xff08;左键点击&#xff09; button.onclick function() {alert("按钮被点击了&#xff01;&…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...