【LLM之Agent】ReAct论文阅读笔记
研究背景
论文介绍了 “ReAct” 范式,该范式旨在融合推理和行动的功能,通过让大型语言模型(LLMs)生成既包括言语推理轨迹又包括行动序列的输出,解决多种语言推理和决策任务。这种方法允许模型在与外部环境(如Wikipedia)交互时动态地进行推理和调整计划。
研究目标
ReAct的目标是改善LLMs中推理和行动生成的整合,以提升在多样化基准测试中的性能。它试图解决现有模型的局限性,这些模型通常将推理和行动生成分开处理,从而增加在需要这两种认知功能的任务中的效率。
相关工作
该方法与之前只侧重于推理的链式思考提示等方法形成对比。ReAct在整合基于行动的交互方面独树一帜,为涉及外部信息源的问题解决任务提供了更全面的解决方案。
方法论
ReAct采用一种新颖的提示策略,将推理和行动步骤交错使用,并利用如Wikipedia这样的外部API获取实时数据,以辅助决策过程。这种设置允许模型根据最新信息调整其响应,提高准确性和相关性。

ReAct框架结合了结构化提示和微调方法,在更少的数据样本上训练模型,同时实现更高的性能。它利用上下文学习和针对性微调,使模型适应特定任务,而不需要大量数据。
以在wiki上的HotPotQA数据为例:
设计动作空间
论文设计一个简单的维基百科web API三种类型的行动来支持交互式信息检索:
- search[entity],返回前5个句子从相应的实体维基页面如果存在,或者建议5类似实体从维基百科搜索引擎
- lookup[string],这将返回页面的下一个句子包含字符串,模拟Ctrl+F浏览器功能
- finish[answer],这将会用答案来完成当前的任务
这个动作空间大多只能根据确切的段落名称检索到一篇文章的一小部分,这明显比现有的词汇或神经检索器更弱。其目的是模拟人类将如何与维基百科互动,并迫使模型通过语言中的显式推理进行检索。
prompt
问题:科罗拉多造山带东部区域的海拔范围是多少?
行动 1:搜索【科罗拉多造山带】
观察 1:科罗拉多造山带是科罗拉多及周边地区的一次山脉构造活动。
行动 2:查找【东部区域】
观察 2(结果 1 / 1):东部区域延伸至高原平原,称为中部平原造山带。
行动 3:搜索【高原平原】
观察 3:高原平原指两个不同的地区之一:
行动 4:搜索【美国高原平原】
观察 4:高原平原是大平原的一个子区域。从东到西,高原平原的海拔从大约 1,800 英尺升至 7,000 英尺(550 到 2,130 米)。
行动 5:结束【1,800 至 7,000 英尺】
实验
实验设计
实验在四个不同的基准测试上进行:问题回答、事实验证、基于文本的游戏和网页导航。这些测试旨在评估模型在复杂的多组件环境中执行推理和行动生成的能力。
| 任务类型 | 任务数据集 | 备注 |
|---|---|---|
| 问题回答 | Hot-PotQA | 从英文维基百科收集的 QA 数据集,包含大约113K个群众来源的问题,这些问题需要两篇维基百科文章的引言段落来回答。数据集中的每个问题都有两个黄金段落,以及这些段落中的句子列表,众包工作者认为这些句子是回答问题所必需的支持事实。 |
| 事实验证 | FEVER | 一个针对文本来源进行事实提取和验证的公开数据集。FEVER(事实提取和验证)由185,445个声明组成,通过修改从维基百科中提取的句子,然后在不知道这些句子的情况下进行验证。声明被分为 Supported,Refuted,NotRnoughInfo,数据是 Json 格式。 |
| 基于文本的游戏 | ALFWorld | ALFWorld(Shridhar等人,2020b)(图1(2))是一个基于文本的合成游戏,旨在与具体化的阿尔弗雷德基准测试对齐(Shridhar等人,2020a)。它包括6种类型的任务,其中代理需要通过文本操作导航模拟家庭,并与之进行交互(例如去咖啡柜1,取纸2,使用桌面灯1)。 |
| 网页导航 | WebShop | WebShop是一个模拟的电子商务网站环境,拥有118万个真实世界的产品和12087条众包文本指令。在这种环境中,代理需要浏览多种类型的网页,并发出不同的操作来查找、自定义和购买给定说明的产品。WebShop提供了一些挑战,包括理解组合指令、查询(重新)公式、处理网页中的嘈杂文本以及执行战略探索。 |
实验结论
ReAct在所有测试领域中的性能均优于最先进的基线模型,特别是在传统仅行动模型中表现出色,并在从实时数据交互中受益的任务中显示出显著优势。实验还突出了ReAct提高模型可解释性和可信度的能力,使用户更容易理解并验证模型决策背后的推理。
比如在HotPotQA上的实验结果如下:

参考资料
- 论文
- 代码
相关文章:
【LLM之Agent】ReAct论文阅读笔记
研究背景 论文介绍了 “ReAct” 范式,该范式旨在融合推理和行动的功能,通过让大型语言模型(LLMs)生成既包括言语推理轨迹又包括行动序列的输出,解决多种语言推理和决策任务。这种方法允许模型在与外部环境(…...
LeetCode 125. 验证回文串
更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。 组队打卡,更多解法等你一起来参与哦! LeetCode 125. 验证回文串,难度简单。 双指针 解题思路: 遍历字符串,将所有大写字符转换为小写字符、并移除所…...
IT审计必看!对比旧版,CISA考试改版升级亮点和重点内容是什么?
官方通知,今年8月1日,CISA新版考纲正式上线,旧版在7月23日后就无法约考了。 艾威培训邀请了国内知名的IT审计CISA授课老师吴老师来为大家详细讲解CISA新版考纲的变化 目前第28th版教材只有英文版,中文版尚未发布。我们艾威经验丰…...
充电宝哪个牌子公认质量好?哪家充电宝好用?4款口碑好充电宝
在如今这个电子设备不离手的时代,充电宝成为了我们生活中的必备品。然而,面对市场上琳琅满目的充电宝品牌和型号,选择一款质量可靠、性能出色的充电宝并非易事。大家都在问:充电宝哪个牌子公认质量好?哪家充电宝好用&a…...
Python实现图像添加水印的方法
1. 简介 在日常图像处理中,为图片添加水印是一项常见任务。有多种方法和工具可供选择,而今天我们将专注于使用Python语言结合PIL库批量添加水印。 需要注意的是,所选用的图片格式不应为JPG或JPEG,因为这两种格式的图片不支持透明…...
MemFire Cloud: 一种全新定义后端即服务的解决方案
在这个快节奏的互联网时代,开发者们最希望的就是能够省时省力地完成项目,快速上线。然而,搭建服务、开发接口API、处理各种后端问题,往往让人头疼不已。别担心,现在有了MemFire Cloud,一款为懒人开发者量身…...
职业教育软件测试实验实训室建设应用案例
在信息化高速发展的今天,软件测试作为保障软件质量的关键环节,其重要性日益凸显。为满足职业教育对软件测试人才的培养需求,提高学生的实践能力和职业素养,唯众倾力打造了一款先进的软件测试实验实训室,并成功应用于多…...
如何判断一个js对象为数组类型
如何判断一个js对象为数组类型? 能想到的最常见的intanceof是吗?开始是这么认为,但是不是哈,看下面的解释,也没有太明白,暂且记住吧 综上,判断js对象为数组的两种方式 Array.isArray([]) // trueObject.prototype.toString.call([]) ‘[object Array]’ //true...
Nacos2.X 配置中心源码分析:客户端如何拉取配置、服务端配置发布客户端监听机制
文章目录 Nacos配置中心源码总流程图NacosClient源码分析获取配置注册监听器 NacosServer源码分析配置dump配置发布 Nacos配置中心源码 总流程图 Nacos2.1.0源码分析在线流程图 源码的版本为2.1.0 ,并在配置了下面两个启动参数,一个表示单机启动&#…...
phpstudy框架,window平台,如何开端口给局域网访问?
Windows平台上使用phpstudy框架开端口给同事访问,主要涉及到几个步骤:查看并确认本机IP地址、配置phpstudy及网站项目、开放防火墙端口以及确保同事能够通过局域网访问。以下是详细的步骤说明: 1. 查看并确认本机IP地址 首先,需…...
高性能Python网络框架实现网络应用详解
概要 Python作为一种广泛使用的编程语言,其简洁易读的语法和强大的生态系统,使得它在Web开发领域占据重要位置。高性能的网络框架是构建高效网络应用的关键因素之一。本文将介绍几个高性能的Python网络框架,详细描述它们的特点、使用场景及具体示例代码,帮助高效实现网络应…...
万字学习——DCU编程实战
参考资料 2.1 DCU软件栈(DCU ToolKit, DTK) DCU 开发与使用文档 (hpccube.com) DCU软件栈 DCU的软件栈—DCU Toolkit(DTK) HIP(Heterogeneous-Compute Interface for Portability)是AMD公司在2016年提出…...
Neo4j 图数据库 高级操作
Neo4j 图数据库 高级操作 文章目录 Neo4j 图数据库 高级操作1 批量添加节点、关系1.1 直接使用 UNWIND 批量创建关系1.2 使用 CSV 文件批量创建关系1.3 选择方法 2 索引2.1 创建单一属性索引2.2 创建组合属性索引2.3 创建全文索引2.4 列出所有索引2.5 删除索引2.6 注意事项 3 清…...
《RWKV》论文笔记
原文出处 [2305.13048] RWKV: Reinventing RNNs for the Transformer Era (arxiv.org) 原文笔记 What RWKV(RawKuv):Reinventing RNNs for the Transformer Era 本文贡献如下: 提出了 RWKV 网络架构,结合了RNNS 和Transformer 的优点,同…...
相机光学(二十九)——显色指数(Ra)
显指Ra是衡量光源显色性的数值,表示光源对物体颜色的还原能力。显色性是指光源对物体颜色的呈现能力,即光源照射在同一颜色的物体上时,所呈现的颜色特性。通常用显色指数(CRI)来表示光源的显色性,而显指Ra是…...
【Swoole 的生命周期,文件描述符,协程数量,以及默认值】
目录 Swoole 的生命周期 Swoole 文件描述符(FD)缓存 Swoole设置协程的数量 Swoole 默认值 Swoole 是一个基于 PHP 的高性能网络通信引擎,它采用 C 编写,提供了协程和高性能的网络编程支持。Swoole 支持多种网络服务器和客户端…...
“不要卷模型,要卷应用”之高考志愿填报智能体
摘要:李总的发言深刻洞察了当前人工智能领域的发展趋势与核心价值所在,具有高度的前瞻性和实践性。“大家不要卷模型,要卷应用”这一观点强调了在当前人工智能领域,应该更加注重技术的实际应用而非单纯的技术竞赛或模型优化。个性…...
k8s离线部署芋道源码后端
目录 概述实践Dockerfilek8s部署脚本 概述 本篇将对 k8s离线部署芋道源码后端 进行详细的说明,对如何构建 Dockerfile,如何整合 Nginx,如何整合 ingress 进行实践。 相关文章:[nacos在k8s上的集群安装实践] k8s离线部署芋道源码前…...
图论·Day01
P3371 P4779 P3371 【模板】单源最短路径(弱化版) 注意的点: 边有重复,选择最小边!对于SPFA算法容易出现重大BUG,没有负权值的边时不要使用!!! 70分代码 朴素板dijsk…...
hutool ExcelUtil 导出导入excel
引入依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.15</version></dependency>文件导入 public void savelist(String filepath,String keyname){ExcelReader reader Exce…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...
Selenium 查找页面元素的方式
Selenium 查找页面元素的方式 Selenium 提供了多种方法来查找网页中的元素,以下是主要的定位方式: 基本定位方式 通过ID定位 driver.find_element(By.ID, "element_id")通过Name定位 driver.find_element(By.NAME, "element_name"…...
MCP和Function Calling
MCP MCP(Model Context Protocol,模型上下文协议) ,2024年11月底,由 Anthropic 推出的一种开放标准,旨在统一大模型与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而…...
