大模型ReAct提示工程详解【2023】

普林斯顿大学的教授和谷歌的研究人员最近发表了一篇论文,描述了一种新颖的提示工程方法,该方法使大型语言模型(例如 ChatGPT)能够在模拟环境中智能地推理和行动。 这种 ReAct 方法模仿了人类在现实世界中的运作方式,即我们通过口头推理并采取行动来获取信息。 人们发现,与各个领域的其他提示工程(和模仿学习)方法相比,ReAct 表现良好。 这标志着朝着通用人工智能(AGI)和具体语言模型(像人类一样思考的机器人)迈出了重要一步。

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 

1、背景

在本节中,我将讨论大型语言模型、提示工程和思维链推理。

1.1 大型语言模型

大型语言模型 (LLM) 是一种机器学习 Transformer 模型,已在巨大的语料库或文本数据集(例如互联网上的大多数网页)上进行训练。 在训练过程中,需要大量时间(和/或 GPU)、能源和水(用于冷却),采用梯度下降来优化模型参数,使其能够很好地预测训练数据。

本质上,LLM学习在给定一系列先前单词的情况下预测最可能的下一个单词。 这可用于执行推理(查找模型生成某些文本的可能性)或文本生成,ChatGPT 等LLM用它来与人交谈。 一旦 LLM 完成训练,它就会被冻结,这意味着它的参数被保存,并且不会向其训练数据添加输入或重新训练 - 这样做是不可行的,正如我们从 Microsoft 的 Tay 聊天机器人成为纳粹分子中了解到的那样 ,无论如何,最好不要向用户学习。

值得注意的是,LLM仍然从他们的训练数据中学习到偏见,而 ChatGPT 背后的 OpenAI 必须添加保护措施——使用来自人类反馈的强化学习 (RLHF)——试图防止模型生成有问题的内容。 此外,由于LLM默认情况下只是根据他们所看到的内容生成最有可能的下一个单词,而不进行任何类型的事实检查或推理,因此他们很容易产生幻觉,或编造事实和推理错误(例如在做时) 简单的数学)。

自从 ChatGPT 的公开发布风靡全球以来,LLM 就一直风靡一时。 这些模型的新兴智能及其在我们生活的许多方面的应用使它们成为一种非常受欢迎的工具,每个公司都想从中分一杯羹。 除了聊天机器人、编码和写作助手之外,LLM还被用来创建与模拟环境(包括互联网)交互的代理。 ReAct 就是一个如何将LLM转变为此类代理的示例。

1.2 提示工程

如果你尝试过 ChatGPT,就会知道有时它会拒绝回答问题或回答不好,但如果你重新表述问题,可能会得到更好的结果。 这是提示工程的艺术——通过修改你的输入,让提示工程按照你想要的方式做出反应。

我们的想法是,LLM接受了如此多的人类生成数据的训练,以至于他们几乎可以被视为人类——而不是在特定问题领域训练新模型,而是可以尝试从现有的冻结模型中得出正确的响应。 LLM 通过提出一些事实来“唤起它的记忆”或告诉它一个新领域。 这称为上下文学习(in-context learning),主要有两种类型:零样本学习和少样本学习。 零样本学习为LLM提供了一个提示,其中可以在问题/命令之前包含一些背景信息,以帮助LLM找到良好的答案。 少样本学习为LLM提供了一些提示示例和理想的响应,然后提出了一个新的提示,LLM将以示例的形式做出响应。

提示工程是自然语言处理 (NLP) 的未来。 该领域正在从定制模型转向定制提示,因为LLM比任何人无需花费大量时间和精力就可以自己制作的东西要好得多。 当LLM与正确的提示工程技术相结合时,它通常可以做专业模型可以做的任何事情。

1.3 思维链推理

思想链推理是一种流行的提示工程技术,旨在解决推理错误。 它涉及向LLM提供一个或多个示例(少量学习),说明如何通过口头推理解决问题,然后为其提供一个不同的问题以这种方式解决。 这可以帮助解决推理错误,但它仍然会产生幻觉,而幻觉的“事实”可以通过推理传播,导致模型无论如何都得出错误的结论。

在下面的 ReAct 论文中的图片中,针对需要多个推理步骤才能弄清楚的问题,将标准提示(仅提出问题)与思维链 (CoT) 提示(尽管未显示附加输入)进行了比较 。

标准提示的LLM猜测是 iPod,这是不正确的。 有CoT提示的LLM有更令人信服的回应,但它仍然是错误的。 尽管推理无懈可击,LLM却幻觉 Apple Remote 最初是为与 Apple TV 配合使用而设计的(它实际上是为 Front Row 项目设计的),这导致其得出错误的结论。

Yao et al. (2023)

由于幻觉的问题,CoT 推理是不可靠的。 如果LLM要成为一个有用的工具,他们就不能左右编造事实,因为那样我们就永远不能相信他们,最好自己做研究。 ReAct 旨在通过允许LLM采取搜索维基百科等行动来解决这个问题,以便从中找到事实和理由。

2、方法

与思维链推理一样,ReAct 是一种提示工程方法,它使用小样本学习来教导模型如何解决问题。 CoT 应该模仿人类思考问题的方式,ReAct 也包含这种推理元素,但它更进一步,允许代理文本操作,使其也与其环境进行交互。

人类使用言语推理(说话或思考)来帮助我们制定策略和记住事情,但我们也可以采取行动来获取更多信息并实现我们的目标。 这是ReAct 的基础。 ReAct 提示包括带有操作的示例、通过采取这些操作获得的观察结果以及人类在该过程中各个步骤中转录的想法(推理策略)。

LLM学习模仿这种交叉思考和行动的方法,使其成为其环境中的代理。 下面是 ReAct 代理如何运行的说明,其中有一个以等宽字体显示的悲惨示例(按想法 -> 行动 -> 观察顺序)。

重要的是要记住,观察结果不是由 LLM 生成的,而是由环境生成的,环境是一个单独的模块,LLM 只能通过特定的文本操作与之交互。 因此,为了实现ReAct,你需要:

  • 一个环境,它执行文本操作(从一组可以根据环境的内部状态更改的潜在操作中)并返回文本观察。
  • 一个输出解析器框架,一旦代理编写了有效的操作,它就会停止生成文本,在环境中执行该操作,并返回观察结果(将其附加到迄今为止生成的文本并提示LLM)。
  • 人类生成的环境中混合思想、行动和观察的示例,用于小样本学习。

示例的数量及其细节由你决定。 ReAct 提示中使用的示例的开头如下所示。

Yao et al. (2023)

在这里,你可以看到想法、行动和观察都被清楚地标记为这样,并且这些行动使用特殊的格式 - 查询在括号中 - 这样代理将学习以这种方式编写它们,然后输出解析器可以 轻松提取查询。

3、结果

对于他们冻结的LLM,yao等人 使用PaLM-540B。 他们使用该LLM在两项知识密集型推理任务和两项决策任务上测试了 ReAct 提示。 我将依次讨论每一个。

3.1 知识密集型推理任务

此任务区域中使用的两个域是 HotPotQA(使用维基百科段落进行多跳问答)和 FEVER(事实验证)。 该代理能够使用以下操作与特意简单的维基百科 API 进行交互:

  • 搜索:按名称或最相似结果列表查找页面。
  • 查找:在页面中查找字符串。
  • 完成:以答案结束任务。

在这些领域中,ReAct 与以下技术进行了比较:

  • Standard:提示中不包含思考、行动或观察。
  • CoT:提示中不包含行动或观察。
  • CoT-SC(自洽):CoT 提示。 对LLM的一定数量的回复进行抽样,并选择大多数作为答案。
  • Act:提示中不包含思考。
  • ReAct -> CoT-SC:以 ReAct 方式启动,但如果开始不稳定,则切换到 CoT-SC。
  • CoT-SC -> ReAct:以 CoT-SC 启动,但如果开始不稳定,则切换到 ReAct。

成功是通过 HotPotQA 中 FEVER 和 EM 的准确性来衡量的。 下图显示了每个域中的结果作为 CoT-SC 采样响应数量的函数。

Yao et al. (2023)

ReAct 在 HotPotQA 中表现不佳,但在 FEVER 中表现优于 CoT。 ReAct 比 CoT 更不容易产生幻觉,但推理错误率更高。 尽管 ReAct 确实有这个缺点,但 ReAct -> CoT-SC 和 CoT-SC -> ReAct 方法是这组方法中最成功的。 下面是本文开头的同一个问题以及 ReAct 的回答,这是正确的。

Yao et al. (2023)

3.2 决策任务

此任务区域中使用的两个域是 ALFWorld 和 WebShop。 我将分别解释每个域。

ALFWorld 是一款具有现实环境的基于文本的游戏。 它具有用于在模拟世界中移动并与之交互的文本操作,例如“打开抽屉 1”。 智能体的目标可能是在房子里找到特定的物体,因此常识推理有助于了解通常会在哪里找到这样的物体。 ReAct 在此领域中比较的基线是:

  • Act:提示中不包含思考。
  • BUTLER:一种模仿学习方法。
  • ReAct-IM(内心独白):只能思考环境以及距离目标有多近。

成功的衡量标准是达到目标的试验的百分比。 ReAct 的表现优于基线。

WebShop 是一个模拟在线购物网站,其数据是从亚马逊爬取的。 这是一个具有挑战性的领域,因为它有大量用于浏览网站和搜索产品的操作。 目标是找到符合用户规格的商品。 ReAct 在此领域中比较的基线是:

  • Act:提示中不包含思考。
  • IL:一种模仿学习方法。
  • IL + RL:一种模仿和强化学习方法。

衡量成功的标准是所选项目与用户想要的隐藏项目的接近程度。 ReAct 的表现优于基线。

4、结束语

ReAct虽然由于其推理错误而本身并不完美,但它仍然是一种强大的提示工程方法,它克服了思想链推理的事实幻觉问题,并且还允许LLM成为可以与其环境交互的代理。 此外,它是一种非常可解释的方法,因为代理在其行动时输出其思维过程。

我相信 ReAct 是迈向通用人工智能 (AGI) 和具体语言模型(像人类一样思考的机器人)的一步。 如果机器人有一种方法可以根据熟悉的特征对外部环境进行建模并使用该模型创建提示,那么它就可以(至少尝试)在多种领域中自行行动,而无需人工制作的示例。 它还需要某种记忆,或者从经验中学习的能力,以使其变得更像人类。 目前尚不清楚 AGI 的创建是否会帮助或伤害人类,但具有常识知识的机器人,只要解决了推理错误和幻觉等错误,可能会对我们有很大帮助(作为消防员, 实例)。

LLM 代理已经商业化,并被用于各种任务,从创建网站到订购披萨。 还有非商业应用,比如毁灭人类。 我只希望这些工具也能发挥作用。 一个以找出如何解决世界问题为目标的智能体可能会很好。


原文链接:ReAct提示工程详解 - BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369670.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

欧洲的编程语言三巨头,只剩下一位了!

能把三位大牛的名字都叫出来的人恐怕不多吧: 这三位都是图灵奖获得者,他们的名字和发明散布在各种教科书中,从左到右,依次是: 尼克劳斯沃斯 (Niklaus Wirth) 瑞士人,一生发明了8种编程语言,其中…

CTF赛三层内网渗透

CTF赛三层内网渗透 前言 2019某CTF线下赛真题内网结合WEB攻防题库,涉及WEB攻击,内网代理路由等技术,每台服务器存在Flag,获取一个Flag对应一个积分,获取三个Flag结束。 第一关 Taget1_centos7 1、访问目标网页 发现…

AIGC 为何能火爆全网,赋能智能时代?

Hi,大家好,我是半亩花海。2023年,人工智能新浪潮涌起,AIGC 火爆全网,不断赋能各大行业。从短视频平台上火爆的“AI 绘画”,到智能聊天软件 ChatGPT,都引起了大家的广泛关注。那么 AIGC 到底是什…

浙政钉访接口:k8s+slb容器日志报错(:Temporary failure in name resolution。)

在此我只能说兄弟,浙政钉的扫码接口和用户详情返回这两个接口是不需要白名单的, 我们文明人先确定一件事就是,你代码本地能调用到浙政钉返回。ecs服务器curl浙政钉也通的: 这时候和你说要开通白名单的,请放开你的道德…

r0下进程保护

简介 SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这个表就是一个把 Ring3 的 Win32 API 和 Ring0 的内核 API 联系起来。SSDT 并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地…

如何强制关掉系统或应用程序?这里提供详细方法

总的来说,Windows相当可靠,但有时会挂断并崩溃。我们如何在最少麻烦的情况下重返工作或游戏?为此,我们需要强制退出操作系统。 在本教程中,我们将向你展示如何在最坏的情况下安全关闭或重新启动计算机。我们还将向你展示如何在不触摸鼠标的情况下强制关闭应用程序和快速关…

【51单片机】开发板和单片机的介绍(2)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

挖矿系列:细说Python、conda 和 pip 之间的关系

继续挖矿,挖金矿! 1. Python、conda 和 pip Python、conda 和 pip 是在现代数据科学和软件开发中常用的工具,它们各自有不同的作用,但相互之间存在密切的关系: Python:是一种解释型、面向对象的高级程序设…

【数据集】全国地级市-平均受教育年限-男、女数据集(2000-2020年)

平均受教育年限用以衡量地区的人力资本,指对一定时期、一定区域某一人口群体接受学历教育的年数总和的平均值。参考陈熠辉(2023)等人的计算方式,根据第五次人口普查、第六次人口普查、第七次人口普查结果整理了地级市的平均受教育…

CentOS下安装vlc

一、引言 vlc是一跨多媒体播放器,可以播放本地媒体文件和网络串流,帮助我们排查音视频开发过程中遇到的问题。大部分情况下,我们只需要在Windows系统下安装vlc就可以了。但有一种情况是需要在Linux下安装vlc的:我们的音视频拉流软…

2024美赛C题完整解题教程及代码 网球运动的势头

2024 MCM Problem C: Momentum in Tennis (网球运动的势头) 注:在网球运动中,"势头"通常指的是比赛中因一系列事件(如连续得分)而形成的动力或趋势,这可能对比赛结果产生重要影响。球…

打开率超90%的开发信标题,原来要这样写

写开发信时,邮件标题的撰写尤为重要,买家收到邮件的时候,在手机或其它移动设备上弹出来的信息就是邮件标题和正文第一句话。 好的标题能吸引买家打开邮件,开启高回复率的第一步,下面给大家介绍一下如何撰写高打开率的开…

Linux网络通信——TCP/OSI七层模型/TCP/IP(五层或四层模型)/HTTP报文传输原理

文章目录 消息的传输什么是OSI七层模型OSI七层模型的内容物理层(Physical Layer):数据链路层(Data Link Layer):网络层(Network Layer):传输层(Transport Lay…

vulhub中 Apache Airflow Celery 消息中间件命令执行漏洞复现(CVE-2020-11981)

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。 1.利用这个漏洞需要控…

css1字体属性

一.font-family(字体系列) 不同字体系统用,隔开; 多个字母的字体系统用“”; 二.font-size(字体大小)(有单位px)(默认字体16px) 三.font-weight&#xff08…

linux虚拟机升级g++编译器版本

原先的 更新你的软件包列表: sudo apt update 添加Ubuntu Toolchain PPA(Personal Package Archive),这是一个提供较新编译器版本的第三方软件源: sudo add-apt-repository ppa:ubuntu-toolchain-r/test 再次更新软件包…

gateway网关路由配置

搭建项目(略) gatewa配置文件 server:port: 9999 spring:application:name: gatewaycloud:nacos:discovery:server-addr: localhost:8848username: nacospassword: nacosgateway:routes:- id: api-service1uri: lb://user-login-api #服务名predicat…

Windows下MySQL的界面安装

华子目录 下载MySQL安装MySQL配置MySQL配置环境变量检验MySQL是否安装成功 下载MySQL 首先我们在MySQL的官方下载MySQL https://www.mysql.com 点击download,开始下载 安装MySQL 下载完成后,我们双击msi文件 再点击next 之后我们先勾选I acc…

Qt事件机制

文章目录 1 事件机制2 ignore 和 accept3 bool event(QEvent *event);4 bool eventFilter(QObject *watched, QEvent *event);5 总结 1 事件机制 事件传递图: 记录一下事件的传递顺序,主要围绕 QEventFilter, QEvent, QKeyEvent等事件展开&#xff1a…

N-142基于springboot,vue停车场管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本项目分为普通用户和管理员…