ReAct 提示框架(react框架用什么工具)
ccwgpt 2024-09-14 00:27 51 浏览 0 评论
你可能不熟悉 ReAct,这是一个旨在增强语言模型 (LLM) 决策能力的尖端框架。
通过使用新的观察结果更新 LLM 的上下文窗口并提示其重新评估信息,ReAct 促进了类似于人类思维过程的推理水平,超越了诸如思维链提示之类的旧技术。
在本文中,我们对 ReAct 进行了定性评估,并使用 Langchain 的代理模块对其进行了测试,以初始化零样本代理来解决信息检索问题。
以上是论文《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 可以独立分析信息并生成准确反映所提供信息的响应,而不是一次性处理查询。这种方法可以产生更明智和精确的输出。
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: Search
Action 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: Search
Action 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
相关推荐
- Spring框架基础知识-第四节内容(Spring基础配置)
-
Spring基础配置Spring框架本身有四大原则:(1)使用POJO进行轻量级和最小侵入式开发。(2)通过依赖注入和基于接口编程实现松耦合。(3)通过AOP和默认习惯进行声明式编程。(4)使...
- SpringBoot项目开发实战销售管理系统——项目框架搭建!
-
项目框架搭建在完成项目的分析和数据库设计后,一般由架构师完成项目框架的搭建,包括项目依赖的添加、项目的配置和项目日志的配置,完成后再开始业务代码的编写。技术栈的搭建新建一个SpringBoot项目,...
- 从零到一:独立运行若依框架系统并进行本地二次开发
-
####一、环境准备1.**基础环境**:-JDK1.8+(推荐JDK17)-Maven3.6+-MySQL5.7+(推荐8.0)-Redis5.0+-Node.js16...
- 单片机时间片轮询程序架构(单片机如何实现精准的时间周期)
-
时间片轮询法有很多时候都是与操作系统一起被提到,也就是说很多时候是操作系统中使用了这一方法:STM32单片机开发中的RTOS。下文将参考别人的代码,演示建立的一个时间片轮询架构程序的...
- Netty主要组件和服务器启动源码分析
-
1.Netty服务端启动代码publicclassNettyServer{publicstaticvoidmain(String[]args)throwsInterrup...
- 前端定时任务的神库!快把它加到你的项目中去!
-
我们常会遇到定时刷新数据、轮询接口、发送提醒等场景,我们常会遇到定时刷新数据、轮询接口、发送提醒等场景。为什么选择cron库?定时任务开发痛点原生setInterval的时间误差累积难以实现复杂的...
- 如何正确实现一个后台(定时)任务(后台定时任务怎么实现)
-
相信大家都知道如何在.NET中执行后台(定时)任务。首先我们会选择实现IHostedService接口或者继承BackgroundService来实现后台任务。然后注册到容器内,然后注册到容...
- 秒杀传统的Linux Crontab,这款开源的定时任务管理系统绝了!
-
Gocron是一款开源的定时任务管理系统,基于Go语言开发,旨在替代传统的LinuxCrontab。它通过Web界面提供直观的任务管理功能,支持精确到秒的Crontab时间表达式,并具备任务重试、超...
- Python 定时任务:schedule 自动执行脚本太方便。
-
2025年了,还在为Python定时任务头疼?轻量级需求搞什么Celery,schedule三行代码就搞定。这库把定时任务简化到像说人话,但新手直接抄文档容易踩坑。文档只会告诉你怎么设置每10分钟执行...
- SpringBoot扩展——定时任务!(基于springboot的校园宿舍管理系统的设计与实现)
-
定时任务项目开发中会涉及很多需要定时执行的代码,如每日凌晨对前一日的数据进行汇总,或者系统缓存的清理、对每日的数据进行分析和总结等需求,这些都是定时任务。单体系统和分布式系统的分布式任务有很大的区别,...
- 适合普通开发者和产品经理的PHP应用模板开发AI的SaaS应用框架
-
简单到傻!Liang_SaaS适合普通开发者和产品经理的PHP应用模板开发AI的SaaS应用框架,利用Php开发AI的SaaS应用框架,是一个强大的内容管理仪表板模板,基于Bootstrap和...
- 非常实用的15款开源PHP类库(php开源管理系统)
-
PHP库给开发者提供了一个标准接口,它帮助开发者在PHP里充分利用面向对象编程。这些库为特定类型的内置功能提供了一个标准的API,允许类可以与PHP引擎进行无缝的交互。此外,开发者使用这些类库还可以简...
- 蜂神榜苹果商店也凑热闹:“520”我爱玩家!
-
各位看官,今天被朋友圈各类“520”刷屏呢?有没有给你亲爱的家人一份“520”模式的红包呢?苹果商店也给了玩家一个“520”模式的惊喜---再一次提供了多款“1元”价格的游戏!并且此次降价的游戏品质都...
- 变成气球的猫咪《气球》十一正式推出
-
墨西哥游戏公司NoodlecakeGames曾开发过《致命框架》、《阿尔托冒险》等优秀佳作,而它旗下的最新游戏《气球》(TheBalloons)在十一的时候就要和大家见面了。游戏中,玩家要操控娃娃...
- 星座超游爱:狮子遇挑战,处女手抓牢~
-
teemo跟大家讲了三期太阳星座,也许有很多不热心的小伙伴并不知道是什么东西,今天就小科普一番~在出生的那一天,太阳所落的那个星座,就是每个人的太阳星座,而这恰好就是大家的性格中心,是权势驱力、人格的...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- Spring框架基础知识-第四节内容(Spring基础配置)
- SpringBoot项目开发实战销售管理系统——项目框架搭建!
- 从零到一:独立运行若依框架系统并进行本地二次开发
- 单片机时间片轮询程序架构(单片机如何实现精准的时间周期)
- Netty主要组件和服务器启动源码分析
- 前端定时任务的神库!快把它加到你的项目中去!
- 如何正确实现一个后台(定时)任务(后台定时任务怎么实现)
- 秒杀传统的Linux Crontab,这款开源的定时任务管理系统绝了!
- Python 定时任务:schedule 自动执行脚本太方便。
- SpringBoot扩展——定时任务!(基于springboot的校园宿舍管理系统的设计与实现)
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- ppt框架 (48)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)