ReAct 大模型提示框架
你可能不熟悉 ReAct,这是一个旨在增强语言模型 (LLM) 决策能力的尖端框架。
通过使用新的观察结果更新 LLM 的上下文窗口并提示其重新评估信息,ReAct 促进了类似于人类思维过程的推理水平,超越了诸如思维链提示之类的旧技术。
在本文中,我们对 ReAct 进行了定性评估,并使用 Langchain 的代理模块对其进行了测试,以初始化零样本代理来解决信息检索问题。
ReAct in action
以上是论文《ReAct:语言模型中的协同推理和行动》中的一个例子。
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割
1、什么是 ReAct?
ReAct 模式是Reasoning and Acting(推理和行动)的缩写,是一个将AI模型中的推理过程与行动过程分开的框架。
ReAct 模式的核心是将观察结果提供给 LLM,使其能够更新其上下文窗口。该模型重新评估信息并根据这些见解采取行动以提高其推理能力。这个过程与思维链 (CoT) 提示等技术形成鲜明对比,其中推理步骤嵌入在单个提示中。
ReAct 框架通过提供处理复杂查询的结构化方法来提高 LLM 响应的质量和连贯性。LLM 可以独立分析信息并生成准确反映所提供信息的响应,而不是一次性处理查询。这种方法可以产生更明智和精确的输出。
Mario Fontana
2、AI 响应链
ReAct 和类似技术的一个关键特性是 AI 响应链(response chaining),而不是依赖于单个 AI 响应。
AI 响应链通过在提示中嵌入顺序步骤来增强 AI 推理,利用神经网络系统来提高组合创造力,从而实现细致入微和创新的响应。
Perplexity AI 是一个值得注意的实现,它根据替代查询聚合搜索结果以最大限度地提高相关性和广度,从而模拟全面的类人搜索过程并有意义地整合各种输入。我们在上一篇关于谷歌 AI 搜索引擎故障的文章中讨论了类似的主题,并将其微不足道的实现与 Perplexity AI 进行了比较。
Where is Google’s AI Search Engine?
开发人员的共同目标是找到一种方法,让 LLM 表现得更智能,减少幻觉,并通过连锁反应,我们可以刺激批判性思维系统。那是什么样子的呢?
3、一个例子
导入库和 API 密钥设置:
!pip install --upgrade openai
!pip install --upgrade langchain
!pip install --upgrade python-dotenv
!pip install google-search-results# import libraries
import openai
import os
from langchain.llms import OpenAI
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from dotenv import load_dotenv
load_dotenv()# load API keys; you will need to obtain these if you haven't yet
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
os.environ["SERPER_API_KEY"] = os.getenv("SERPER_API_KEY")
配置 AI 和 LLM
此示例在实施 ReAct 框架时使用零样本提示(无示例)。这意味着观察和想法仅基于指令,几乎没有或根本没有推理或相关示例来指导 AI。
你可以配置自己的模型,该模型采用少量样本和一些示例来鼓励 AI 以稍微更适合你的任务的方式思考。
llm = OpenAI(model_name="text-davinci-003" ,temperature=0)
tools = load_tools(["google-serper", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
运行链
执行后,你会注意到代理如何动态搜索和收集信息以提供连贯而详细的响应。
agent.run("What is Asycd and what do they do in the space of AI?")
输出:
Entering new AgentExecutor chain...Thought: I need to find out what Asycd is and what they do in the space of AI.Action: SearchAction Input: "What is Asycd and what do they do in AI?"Observation: Asycd is a company focused on using AI to revolutionize art creation and user interaction.
They leverage AI technologies to provide innovative tools that enhance the creative process
and offer personalized user experiences.Thought: I need more details about Asycd's specific activities and platforms related to AI.Action: SearchAction Input: "Asycd AI innovations and platforms"Observation: Asycd offers several AI-driven solutions including:An AI-based platform for generating unique art pieces.
Tools for artists to collaborate with AI to expand their creative boundaries.
User-centric AI applications that personalize and enhance user interactions with art and other creative content.
Thought: I now have a comprehensive understanding of Asycd's role in the AI space."Final Answer: Asycd is a company dedicated to transforming art creation through artificial intelligence. They offer a variety of AI-driven solutions such as an AI-based platform for generating unique artwork, collaborative tools for artists to push creative limits with AI, and user-centric applications that tailor and enrich user interactions with creative content.> Finished chain.
你可以逐步看到 AI 采取的流程操作:首先在 Google 上搜索用户提出的查询,看看是否可以通过直接搜索 Google 找到答案。
代理评估搜索结果,并有另一个想法,可能类似于“这些结果没有回答用户的查询,但它是一个有用的起点”。它可能会从搜索结果中挑选关键字,并在下一次搜索中使用这些关键字,这将是它的下一步操作。
最终,AI 找到有关 Asycd 的 AI 活动的正确信息,并利用这些信息制定对初始查询的最终响应。
4、替代方案
有几种替代提示框架旨在协调人类和人工智能的决策,类似于 ReAct:
- 思维链 (CoT) 提示:此框架鼓励 LLM 生成逐步推理轨迹或“思维链”以得出最终答案。它有助于使模型的推理过程更加透明和可解释,使其与类似人类的推理保持一致。
- 自一致性提示:这种方法提示 LLM 生成多个可能的解决方案,然后交叉检查它们的一致性,模仿人类如何复查其工作。它可以提高 LLM 输出的可靠性和连贯性。
- 递归奖励建模 (RRM):RRM 训练 LLM 以递归方式建模任务的奖励函数,使模型能够以更符合人类的方式推理任务的目标和约束。
- 辩论:该框架促使 LLM 就给定主题产生多种观点或论点,类似于人类辩论。它可以帮助提出不同的观点和考虑,促进更全面的决策。
- 迭代放大 (IA):IA 涉及通过让 LLM 批评和改进自己的响应来迭代地完善其输出,类似于人类通过自我反思和迭代来完善思维的方式。
- 合作 AI:这种方法涉及促使多个 LLM 协作和共享知识,模仿人类经常合作解决复杂问题的方式。
所有这些技术本质上都是代理性的,仅在提示配置以及 AI 响应的结构上有所不同。
5、结束语
研究 ReAct 非常有价值,它使我们能够探索各种创新方法来提高聊天机器人和人工智能工具的有效性。我们希望你发现这里分享的见解既有信息量又有启发性!
原文链接:ReAct提示框架 - BimAnt
相关文章:

ReAct 大模型提示框架
你可能不熟悉 ReAct,这是一个旨在增强语言模型 (LLM) 决策能力的尖端框架。 通过使用新的观察结果更新 LLM 的上下文窗口并提示其重新评估信息,ReAct 促进了类似于人类思维过程的推理水平,超越了诸如思维链提示之类的旧技术。 在本文中&…...

JavaEE:Lombok工具包的使用以及EditStarter插件的安装
Lombok是一个Java工具库,通过添加注解的方式,简化Java的开发。 目录 1、引入依赖 2、使用 3、原理解释 4、更多使用 5、更快捷的引入依赖 1、引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lomb…...

基于纹理和统计图像特征集成的计算机辅助乳腺癌检测
诊断通常使用组织病理学切片,可以确定组织是否处于导管原位癌(DCIS)阶段,其中癌细胞尚未扩散到周围乳腺组织,或浸润性导管癌(IDC)阶段,其中细胞已渗透到邻近组织。对于医生来说,检测IDC非常耗时且具有挑战性。因此&…...

Java基础 - 简介和配置环境变量
目录 一. 简介 二. 开发环境配置 下载JDK 配置环境变量 Java_Home配置, Path 配置 CLASSPATH 配置 三. 编辑器选择 1.JetBrains 2. Eclipse 3.vscode 下载vscode 安装 vscode插件 四. 总结 一. 简介 Java 是由 Sun Microsystems 公司(后被 Oracle 收…...

水域救援装备的详细简介_鼎跃安全
水域救援行动需要救援人员配备全面、专业的装备,以应对各种复杂的水域环境和救援任务。水域救援套装应运而生,它集合了水域救援所需的各类关键装备,为救援人员提供全方位的保护和辅助,确保数援行动的高效与安全。 水域救援头盔&am…...

二、BIO、NIO、直接内存与零拷贝
一、网络通信编程基础 1、Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口,由操作系统提供; Socket将复杂的TCP/IP协议处理和通信缓存管理都隐藏在接口后面,对用户来说就是使用简单的接口进行网络应用编程…...
生成式AI的发展方向:Chat vs Agent
一、整体介绍 生成式AI作为人工智能领域的重要分支,近年来取得了显著进展,并在多个领域展现出巨大潜力。其核心在于通过机器学习和深度学习算法,从大量数据中学习规律和特征,进而生成具有创新性和多样性的文本、图像、音频和视频…...
吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.9-2.10
目录 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)第二周:机器学习策略(2)(ML Strategy (2))2.9 什么是端到端的深度学习?(What is end-to-end deep learning?&#x…...

变频空调介绍
直流变频空调:只有压缩机是直流变频的,而室外机风电机和室内机风电机都是定频的。 全直流变频空调:它的压缩机是直流变频的,并且室外机风机和室内机风机都是直流变频的。因为大三部件一个不漏,所以就叫做全直流变频。…...

C语言实现二叉树以及二叉树的详细介绍
目录 1.树概念及结构 1.1树的概念 1.2树的相关概念 1.3树的表示 2.二叉树概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 3.二叉树顺序结构--特殊的二叉树--堆及其实现 3.1堆的概念及结构 3.2堆的实现 3.2.1堆的结构 3.2.2堆…...

VScode:前端项目中yarn包的安装和使用
一、首先打开PowerShell-管理员身份运行ISE 输入命令: set-ExecutionPolicy RemoteSigned 选择“全是”,表示允许在本地计算机上运行由本地用户创建的脚本,没有报错就行了 二、接着打开VScode集成终端,安装yarn插件 输入 npm ins…...
cmake configure_package_config_file指令详解
在 CMake 中,configure_package_config_file 命令用于生成包配置文件(Package Configuration File),这些文件用于指定如何使用和链接某个库或工具。通常情况下,这些文件用于支持 CMake 的 find_package 命令来查找和加…...
准备跳槽了(仍然底层为主,ue独立游戏为辅)
思考再三,准备跳槽了。 一、跳槽原因: 今年经济形势非常不好。那我为什么还要跳槽呢?因为干不下去了。公司是末位淘汰制,而我绩效垫底了。给我的整改措施中,部门经理让我三个月搞定60个bug,我觉得简直是送…...

汽车免拆诊断案例 | 卡罗拉急加速抖动故障排除
车型信息 2017年改款卡罗拉,排量1.2T,行驶里程48800公里。 故障现象 车辆不管在什么状态下,只要是平缓加速,都不会有抖动。车辆静止时,急加速时,也不会有抖动。但是车速达40公里/小时以上,急加…...
【JAVA】深入理解Hutool中的Pair、Triple和Tuple:组合数据的新方式,方法返回多个值,嘎嘎香,谁用谁知道,比原生好用更强大
Hutool 是一个开源的 Java 工具库,提供了丰富且实用的功能,旨在减少 Java 程序员在日常开发中重复造轮子的工作。在 Hutool 中,Pair、Triple 和 Tuple 是三种用于组合和存储不同数量相关联数据的类。以下是这三个类的简介: 1、添…...
modulepreload 对性能的影响
一、正面影响 减少加载时间: modulepreload 可以让浏览器提前下载模块脚本,减少页面加载时间,特别是对于依赖较多的复杂应用。这种预加载可以让浏览器在遇到 modulepreload 链接时立即开始下载,而不是等到实际需要时才下载提升用…...

问题:向上对齐对象的快捷键是: #学习方法#笔记
问题:向上对齐对象的快捷键是: A、T B、L C、R D、W 参考答案如图所示...
C# 4.List
comboBox使用的下拉框 Lsit 列表 1 创建List对象 List<string> list new List<string>(); 2 Add给list 添加元素 list.Add("吃饭"); list.Add("睡觉"); list.Add("打豆豆"); 3 删除一个元素 list.Remove("吃饭"); // 删…...

界面控件DevExpress Blazor UI v24.1 - 发布全新TreeList组件
DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…...

docker默认存储地址 var/lib/docker 满了,换个存储地址操作流程
1. 查看docker 存储地址 docker info如下 var/lib/docker2、查看内存大小 按需执行 df -h 找超过100M的大文件 find / -type f -size 100M -exec ls -lh {} \; df -Th /var/lib/docker 查找这个文件的容量 df -h 查找所有挂载点 du -hs /home/syy_temp/*1、df -h 2、sud…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...