Agent 应用于提示工程

如果Agent模仿了人类在现实世界中的操作方式,那么,能否应用于提示工程即Prompt Engingeering 呢?

从LLM到Prompt Engineering

大型语言模型(LLM)是一种基于Transformer的模型,已经在一个巨大的语料库或文本数据集上进行了训练,包括了互联网上的大多数网页。在训练期间,需要花费大量的时间(和/或图形处理器)、能量和水(用于冷却) ,梯度下降法被用来优化模型的参数,以便它能够很好地预测训练数据。

e89dad7a121164d75f394368f24d2717.png

本质上,LLM 学习根据前面的词序预测最可能的下一个词。这可以用来执行推理即查找模型生成某些文本的可能性,或者用来生成文本,像 ChatGPT 这样的 LLM 使用这些文本与人进行对话。一旦 LLM 完成了训练,意味着它的参数被保存,不会向训练数据或重新训练的数据中添加输入。值得注意的是,LLM 仍然会从训练数据中学到偏见,而 ChatGPT 背后的 OpenAI 公司不得不增加安全措施,使用来自人类反馈的强化学习(RLHF)以防止该模型产生有问题的内容。此外,由于 LLM 默认情况下只是根据他们所看到的内容生成最有可能的下一个单词,而没有进行任何事实核查或推理,因此它们容易产生幻觉,或者编造事实,以及推理错误。

自从 ChatGPT 公开发布以来,LLM 风靡全球。这些模型的新兴智能以及它们在我们生活中的各个方面的应用,使它们成为一种非常受欢迎的工具,每家公司都想从中分一杯羹。除了聊天机器人以及编码和写作助手,LLM 还被用来创建与包括互联网在内的模拟环境交互的Agent。

如果尝试过 ChatGPT,有时会发现它的回答很糟糕,但是如果重新措辞这个问题,可能会得到更好的结果。这就是提示工程的艺术,通过修改输入使 LLM 以您希望的方式作出响应。提示语的背后只是尝试通过提出一些事实来“唤醒LLM的记忆”,或者告诉它一个新的领域,然后从一个训练好的 LLM 那里得到适当的响应。这就是所谓的上下文学习,一般主要有两种类型: zero-shot和few-shot。zero-shot为 LLM 提供了一个提示,可以在问题/命令之前包含一些背景信息,以帮助 LLM 找到一个好的响应。few-shot给 LLM 提供了一些示例提示和可取的响应,然后提出一个新的提示,LLM 将以示例的格式响应这些提示。

提示工程可能是自然语言处理(NLP)的未来趋势之一。这个领域正在从定制模型转向定制提示,因为 LLM 比任何人在没有大量时间和精力的情况下自己制作的语言模型要好得多。当 LLM 与正确的提示工程技术配对时,通常情况下,它可以完成专用模型所能完成的任何工作。

6d2281c21e271209970cadf237f2ce63.jpeg

从CoT到Agent

思维链推理(CoT)是一种流行的提示工程技术,旨在对抗推理错误。它包括给 LLM 提供一个或多个例子,说明如何通过语言推理解决问题,然后给它一个不同的问题,以这种方式解决。这可以帮助克服推理的错误,但它仍然受到幻觉的影响以及幻觉的“事实”可以通过推理传播,导致模型得出错误的结论。

只提出一个问题的标准提示语被比作思维链(CoT)提示的输入 ,需要多步推理才能解决问题。由于幻觉的问题,使用 CoT 提示的 LLM 有更令人信服的响应,但它仍然有可能是错误的。如果 LLM 要成为一个有用的工具,如果不能左右它胡编乱造,我们就永远不能相信它们,最好还是自己做研究。而Agent似乎可以解决这个问题,允许 LLM 采取行动,比如搜索维基百科,以便从中找到事实和理由。

Agent 应用于提示工程示例——ReAct

与思维链推理一样,ReAct 也是一种提示工程方法,它使用少量学习来教模型如何解决问题。CoT 被认为是模仿人类如何思考问题,ReAct 也包括了这个推理元素,但它更进一步,允许Agent操作文本,让它与环境互动。人类使用语言推理来帮助我们制定策略并记住事情,但也可以采取行动来获得更多的信息并实现目标。这就是 ReAct 的基础。ReAct 提示包括行动的例子、通过行动获得的观察结果,以及人类在过程中各个步骤中转录的思想(推理策略)。LLM 学习模仿这种交叉思考和行动的方法,使其成为其环境中的Agent。

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

  1. 一种环境,它采取一个文本操作, 从一组可以根据环境的内部状态改变的潜在操作中返回一个文本观察。

  2. 一个输出解析器框架,一旦Agent编写了一个有效的操作,它就停止生成文本,在环境中执行该操作,并返回观察结果, 一般是将其追加到目前生成的文本中,并用该结果提示 LLM。

  3. 人工产生的示例,混合了思想,行动和观察,在环境中可以使用few-shot,例子的数量和细节取决于目标和开发者的设计,例如:

ba74f198e655f67d93adedb82142ee80.png

这里,思想、动作和观察都被清楚地标记如上,而且动作使用了一种特殊的格式,查询放在括号中,这样Agent就可以学习以这种方式编写任务,然后输出解析器就可以轻松地提取查询。

Yao 等人(2023)使用了 PalM-540B,用这个 LLM 在两个知识密集型推理任务和两个决策任务上测试了 基于ReAct 的提示工程效果。

知识密集型推理任务

在这个任务领域中使用的两个域是 HotPotQA 和 FEVER,前者是使用 Wikipedia 段落进行多跳问答,后者是事实验证。Agent可以使用以下操作与Wikipedia API 进行交互:

  • Search: 根据名称或大多数相似结果列表查找页面。

  • 查找: 在页中查找字符串。

  • 以答案结束任务。

在 HotPotQA 和 FEVER 这两个评估领域中, ReAct 与如下提示工程 技术进行了比较,结果是通过 FEVER 的准确性和 HotPotQA 中 EM 来评估的。

5ef93d472d5963d797bb64f0807a5139.png

其中:

  • 标准Prompt: 没有思想,行动,或观察。

  • CoT: 没有及时的行动或观察。

  • CoT-SC (自我一致性) : 从 LLM 中抽取一定数量的回答,并选择大多数作为回答。

  • 动作: 没有思维的prompt。

  • ReAct ->CoT-SC: 开始时是ReAct,然后转换为 CoT-SC。

  • CoT-SC-> ReAct: 开始时是 CoT-SC,然后切换到 ReAct。

ReAct 在 HotPotQA 中表现不佳,但在 FEVER 中表现优于 CoT。ReAct 比 CoT 更不容易产生幻觉,但是有更高的推理错误率。尽管 ReAct 确实有这个缺点,但是 ReAct-> CoT-SC 和 CoT-SC-> ReAct 方法是其中最成功的。

决策任务

测试ReAct 的两个决策任务是 ALFWorld 和 WebShop。

ALFWorld 是一个基于文本的游戏,具有真实的环境。它具有用于在模拟世界中移动和交互的文本操作,例如“打开抽屉1”给代理人的一个目标可能是在房子里找到一个特定的物体,因此常识推理有助于知道这样一个物体通常在哪里被发现。衡量成功的标准是达到目标的试验的百分比。

WebShop 是一个模拟在线购物网站,数据来自亚马逊。这是一个具有挑战性的领域,因为它有大量的行动导航网站和搜索产品。目标是找到一个符合用户规范的项目。衡量成功的标准是所选项目与用户心目中的隐藏项目有多接近。

从论文中的评估结果来看,ReAct 的表现明显优于基线。

ReAct 虽然由于其推理错误而并不完善,但仍然是一个强有力的提示工程方法,它克服了思维链推理的事实幻觉问题,并且允许 LLM 成为一个可以与其环境相互作用的Agent。此外,它具有可解释性,因为Agent在行动时输出其思维过程。

260095659565ca3adf679a00050c150c.jpeg

小结

作为Agent 应用于提示工程的一种具体实现,ReAct 迈出通往通用人工智能和具象语言模型的一步。如果一个机器人有一种基于熟悉的特征对外部环境进行建模并使用该模型创建提示的方法,那么它至少可以尝试在各种领域独立行动,而不需要人工制作的示例。它还需要某种记忆,或者从它的经历中学习的能力,具有常识性知识的机器人,只要能够解决诸如推理错误和幻觉之类的问题,就可能对我们有很大的帮助。

BTW,拥有了大模型就可以拥有好的产品么? 产品经理的贡献往往仍然是不可或缺的,以智能语音产品为例, 你可能需要这样的一本案头手册(笔者的最新译作),帮助自己更好的完成产品设计。

【参考资料】

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

品牌加盟商做信息展示预约小程序的效果如何

很多行业都有中部或头部品牌,对实体品牌企业来说想要快速高效发展,除了多地直营店外还需要招募加盟商进而提升生意营收。 因此线上渠道变得尤为重要,除了网站外,小程序是连接多平台生态很好的工具,随时打开、直接触达…

python hashlib模块及实例

hashlib 模块密码加密密码撞库密码加盐 一,hashlib模块 hashlib模块是用来为字符串进行加密的模块,通过该作用就可以为用户的密码进行加密。 通过模块中的hash算法可以为任意长度的字符串加密成长度相同的一串hash值。该hash算法得到的hash值有一下几个…

HNU-数据库系统-讨论课1

第一次小班讨论课安排如下: 主题: 大数据管理及前沿技术讨论 目的:让学生了解大数据管理的相关理论、技术和系统。 内容: (1)大数据概念、应用、技术的相关知识。 (2)AI4DB (3)DB4AI &…

vue中electron与vue通信(fs.existsSync is not a function解决方案)

electron向vue发送消息 dist/main.js (整个文件配置在另一条博客里) win new BrowserWindow({width:1920,height:1080,webPreferences: {// 是否启用Node integrationnodeIntegration: true, // Electron 5.0.0 版本之后它将被默认false// 是否在独立 JavaScript 环境中运行…

【强化学习】13 —— Actor-Critic 算法

文章目录 REINFORCE 存在的问题Actor-CriticA2C: Advantageous Actor-Critic代码实践结果 参考 REINFORCE 存在的问题 基于片段式数据的任务 通常情况下,任务需要有终止状态,REINFORCE才能直接计算累计折扣奖励 低数据利用效率 实际中&#…

react条件渲染

目录 前言 1. 使用if语句 2. 使用三元表达式 3. 使用逻辑与操作符 列表渲染 最佳实践和注意事项 1. 使用合适的条件判断 2. 提取重复的逻辑 3. 使用适当的key属性 总结 前言 在React中,条件渲染指的是根据某个条件来决定是否渲染特定的组件或元素。这在构…

KanTts最小安装-ubuntu

为什么选它? 克隆有很多,为什么选它,它是中国人做的,阿里达摩院,5分钟音频数据集就够了。 国内做的有什么好处,因为大家都是中国人,说的是中国话,技术最大的难题不是基础&#xff…

2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2023年【道路运输企业主要负责人】考试技巧及道路运输企业主要负责人复审模拟考试,包含道路运输企业主要负责人考试技巧答案和解析及道路运输企业主要负责人复审模拟考试练习。安全生产模拟考试一点通结合…

前端JavaScript

文章目录 一、JavaScript概述JS简介1.ECMAScript和JavaScript的关系2.ECMAScript的历史3.什么是javas?4.JavaScript的作用? 三者之间的作用JS基础1.注释语法2.引入js的多种方式3.结束符号 变量与常量变量1.JavaScript声明2.var与let的区别常量 基本数据类…

Mysql系列 -索引模型数据结构

索引就是排好序的数据结构,可以帮助我们快速的查找到数据,那么底层的数据到底是如何存储的呢? 为什么InnoDB 用的是Btree 存储结构? 大家可以看看这个可视化的网站 数据结构和算法的可视化工具 可以看到数据结构里面有链表&…

如何确认目标期刊被SCI或EI收录?

原创内容,仅供参考,欢迎大家批评指正! 目录 通过Web of Science查询SCI期刊1. 登录Web of Science2. 查找目标期刊3. 查看期刊信息 通过Scopus查询EI期刊1. 登录Scopus2. 查找目标期刊3. 查看期刊信息 参考 通过Web of Science查询SCI期刊 1…

学习c++的第二天

目录 数据类型 基本数据类型 typedef 声明 枚举类型 类型转换 变量类型 变量定义 变量声明 左值(Lvalues)和右值(Rvalues) 变量作用域 数据类型 基本数据类型 C 为程序员提供了种类丰富的内置数据类型和用户自定义的数…

相册里的视频怎么提取音频?帮你整理了几个必备的!

有的时候视频中的音频包含重要信息,如对话、旁白、音乐等。提取音频不仅可以节省存储空间,还方便对这些信息进行单独处理和利用。那么如何提取音频呢?下面介绍了3种方法~ 方法一:直接使用手机相册自带功能 1、打开手机相册&#…

C语言重点突破(五) 动态内存管理

前言 动态内存管理是指在一个程序运行期间动态地分配、释放和管理内存空间的过程。在应用程序中,当程序需要使用变量或对象时,需要在内存中分配一段空间,并在使用完毕后释放该空间,以提高程序的效率和性能。本文意在介绍常用动态…

PostGreSQL:JSON|JSONB数据类型

JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)JSON 是轻量级的文本数据交换格式JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许…

Android WMS——WMS窗口添加(十)

Android 的 WMS(Window Manager Service)是一个关键组件,负责管理窗口的创建、显示、布局和交互等。Window 的操作有两大部分,一部分是 WindowManager 来处理,一部分是 WMS 来处理,如下图所示: …

Android渲染流程

目录 缓冲区的不同生命周期代表当前缓冲区的状态: 多个源 ViewRootImpl: Android4.0: Android5.0: Android应用程序调用SurfaceFliger将测量,布局,绘制好的Surface借助GPU渲染显示到屏幕上。 一个Acti…

搜维尔科技:Varjo在心理学、医学研究、技术、工程学等领域都在使用

该软件用于心理学、医学研究、可用性、品牌和营销等领域。vajio头显组合到了运动8.0平台中,提供了在高保真虚拟环境中进行的行为研究,否则这些环境的成本太高,不切实际,甚至无法在现实世界中再现。 在心理学、医学研究、可用性、技术、工程学、市场营销等领域工作的学术和商业研…

【编程语言发展史】C语言的诞生及其影响

目录 一、C语言的历史背景 二、C语言的设计思想 三、C语言的语法特点 四、C语言的应用领域 五、C语言的影响 六、总结 C语言是一种高级计算机编程语言,它的诞生和发展对计算机科学和软件工程领域产生了深远的影响。本文将详细介绍C语言的诞生及其影响&#xf…

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制)

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制) 目录 分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制)分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matla…