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…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...