论文阅读_生成式Agent

英文名称: Generative Agents: Interactive Simulacra of Human Behavior
中文名称: 生成代理:**人类行为的交互式模拟**
文章: http://arxiv.org/abs/2304.03442
代码: https://github.com/joonspk-research/generative_agents
作者: Joon Sung Park
机构: 斯坦福大学
日期: 2023-08-05 (预发表时间:2023.4)
引用次数: 231

摘要

论文建立了一个有 25 个机器人 (代理) 的虚拟小镇(沙箱环境),用户可以观察和干预代理的计划、分享新闻、建立关系和协调团体活动。用 GPT 工具模拟人类行为:起床,做早餐,去上班;作画,写作;形成意见、互相关注并发起对话;反思过去计划未来。

文中描述了一种架构,通过扩展大语言模型使用自然语言存储智能体的完整经历记录,随着时间的推移将这些记忆综合成更高层次的反思,并动态地检索它们以规划行为

论文还观察和评测了智能体作为个体和群体的行为,通过消融实验证明了代理架构的组成部分:观察、计划和反思,对于代理行为的可信度至关重要。

读后感

这篇文章非常具有启发性,很多点都可以引发进一步思考和研究,比如在产品设计方面:定制反映自己特点和经验的计划助手;在结构设计方面,提出三个组件:记忆、反思、计划 的架构,用于存储、合成和应用相关记忆,根据这些原则,应对各种复杂的场景。在具体实现方面还在附录中给出了一些可用的提示信息。

其中有两个实验结果很有意思,一个是:如果没有观察、计划和反思,仅有一般性的知识,模型性能将大打折扣;另一个是:”你会选择谁共度一小时“,如果不加反思,结果是最频繁交往的人,反思之后是深层价值观相似的人。

也可以把它看作RAG (检索增强生成) 的扩展:除了可以把本地知识喂给模型,还可以把人的行为、记忆组织起来喂给模型,让模型帮助人作一些预测和决策其应用领域相当广泛

之前听同事讲了一遍,自己又看了两遍,整理了一下,总计花了一天多的时间。下面对整个结构过了一遍,除了核心点以外,还摘录了我觉得重要的内容。

1. 引言

论文研究如何构建一个交互式的人工社会,以反映真实可信的人类行为。计算机驱动的代理根据过去的经验进行前后一致地行为对环境做出真实的反应。模拟可以在虚拟空间和社区中呈现真实的社会现象,训练人们如何处理罕见但困难的人际关系情境,测试社会科学理论……

本文中介绍的生成型代理,能够产生可信的个体和群体行为的模拟。在个体性方面,生成式代理对自身、其他代理和环境进行各种推理;他们制定反映自身特征和经验的日常计划,执行计划,在适当的时候进行反应和重新规划;当用户(人)改变它们的环境或用自然语言命令它们时,它们会做出响应。在社会性方面,研究了新的社会动态的出现,新关系的形成,信息扩散,以及代理之间的协调。

文中设计了一种架构,该架构存储、综合和应用相关的记忆,使用大型语言模型生成可信的行为,包括三个主要组件:记忆流、反思、规划。

大语言模型可以在单个时间点上模拟人类行为,而实际生活中,随着新的互动、冲突和事件随着时间的推移而出现和消失记忆不断增长,同时处理多个代理之间展开的级联社会动态则更为复杂。反思这些记忆以概括和得出更高层次的推论,并应用该推理来制定在当前和长期的代理行为中有意义的计划和反应

论文贡献如下:

做了什么:生成代理,模拟人类行为,动态地受到代理的不断变化的经验和环境的影响。

怎么做的:新颖的架构,使得生成性代理能够记忆、检索、反思、与其他代理互动,并在动态演化的情况下进行规划。架构利用了大语言模型强大的提示能力,并支持更长期的代理一致性,管理动态演化的记忆能力,并递归地产生更高层次的反思。

评估:两项评估,受控评估确定架构组件重要性,并识别由不正确的检索等引起的故障;全面评估用于评估代理的社会性行为。

讨论:讨论交互系统中生成代理的机会以及道德和社会风险。

2. 相关工作

交互的人工智能系统旨在将人类的洞察力和能力与计算工具相结合,以增强人类的能力。近年来,出现了一些基于语言和代理的人机交互案例,即通过自然语言进行交流。

在虚拟环境中,通常简化代理的行为,使其无法涵盖在真实世界中可能发生的各种情境;这些代理通常在对抗性游戏中表现较好,这些游戏有明确的奖励目标,算法可以针对这些目标进行优化;然而,它们尚未成功解决在开放世界(自然生活)中创建可信代理的挑战。

3. 生成代理的行为和互动

图 2:沙盒世界:根节点描述整个世界,子节点描述区域(例如房屋、咖啡馆、商店),叶节点描述对象(例如桌子、书架)。代理记住一个子图,反映他们所见到的世界,并维护这些部分的状态。

3.1 代理角色和通信

由 25 个代理组成社区,为每个代理的身份编写一个自然语言描述段落,包括他们的职业和与其他代理的关系,作为种子记忆。

3.1.1 代理间的交流

代理通过行动与世界互动,并通过自然语言与彼此交流。在每个时间步中,代理会输出一句描述他们当前行动的自然语言陈述,并使用表情符号显示在界面中。

3.1.2 用户控制

用户(工作人员)通过自然语言与代理进行交流,通过指定一个角色来让代理感知他们;用户还可以扮演代理的“内心声音” ,使代理有可能将该陈述视为指令。

3.2 环境交互

环境由手动生成。它包含一个小村庄常见的设施,包括咖啡馆、酒吧、公园、学校、宿舍、房屋和商店。还定义了使这些空间功能正常的子区域和物体,例如房屋中的厨房和厨房中的炉子(图 2)。

代理在 Smallville 中的移动方式类似于简单的视频游戏,进入和离开建筑物,导航地图,并接近其他代理。

用户可以作为一个代理进入沙盒世界进行操作。用户所扮演的代理可以是已经存在于世界中的代理,也可以是没有在 Smallville 中有过历史的外来访客;用户还可以通过以自然语言重写代理周围物体的状态来改变环境。

3.3 示例“一天的生活”

从单段描述开始,生成式代理开始计划他们的一天。随着时间流逝,他们的行为会随着这些代理之间和世界的互动而演变,建立记忆和关系,并协调共同的活动。

追踪系统在一天中对代理 John Lin 的输出展示生成式代理的行为(图 3)。

3.4 通过交互产生社会行为

生成代理可以交换信息、建立新的关系并协调共同活动。这些互动不是预先编程的。

3.4.1 信息传播

当代理注意到彼此时,它们可以进行对话,这样信息就可以从一个代理传播到另一个代理。

3.4.2 关系记忆

代理会随着时间的推移建立新的关系,并记住与其他代理的互动。

3.4.3 协调

生成型代理彼此协调,关系进一步自动延展。如:用户设置了举办派对的初始意图,传播消息、装饰、邀请对方、到达派对并在派对上相互交流的社交行为是由代理架构自动发起的。

4. 生成代理架构

为开放世界中的行为提供一个框架:这个框架可以与其他智能体进行交互,并对环境的变化做出反应。生成型智能体将其当前环境和过去的经验作为输入,并生成行为作为输出。具体方法是:它将大型语言模型 (gpt3.5-turbo) 与合成和检索相关信息的机制相结合。生成型智能体产生大量的事件和记忆,这些记忆必须被保留,架构的一个核心挑战是确保在需要时检索和合成智能体记忆中最相关的部分

4.1 记忆与检索

完整的记忆流可能会分散模型的注意力,而且无法适应有限的上下文窗口。

内存流维护了代理经验的全面记录。它是一个内存对象的列表,每个对象包含自然语言描述、创建时间戳和最近访问时间戳。内存流的最基本元素是观察,即代理直接感知到的事件。常见的观察包括代理自己执行的行为,或者代理感知到其他代理或非代理对象执行的行为。

架构实现了检索函数,它以代理当前情况作为输入,并返回内存流的一个子集,以传递给语言模型。检索函数的实现取决于代理在决定如何行动时需要考虑什么是重要的。记忆流包括大量与代理当前情境相关和不相关的观察。检索识别出应该传递给语言模型以调整其对情境的响应的子集。

重要性考虑如下因素:

  • 最近性:根据时间计算,为指数衰减函数。
  • 重要性:将平凡的记忆与核心记忆区分开来(调用语言模型实现)。
  • 相关性:将更高的分数分配给与当前情况相关的记忆对象(向量距离)。

4.2 反思

假设问题是:" 选择一个人陪你度过一个小时 ",如果只考虑观察记忆,代理会选择最频繁互动的人,通过反思则会选择有共同兴趣的人。

实现方法是:引入了第二种类型的记忆——反思。反思是由代理生成的更高层次、更抽象的思考。在检索发生时,反思与观察结果一起被包括在内。反思是定期生成的;当代理感知到的最新事件的重要性得分总和超过阈值时,生成反思,大约每天反思两到三次。

具体使用提示实现,形如”仅根据上述信息,可以回答关于这些陈述中的主题的三个最重要的高层次问题是什么?“,然后针对问题生成查询,并收集与每个问题相关的记忆(包括其他反思)。提示语言模型提取见解,并引用作为见解证据的特定记录。

反思包含对观察的反思和对反思的反思。代理会生成反思树:树的叶节点代表基本观察,非叶节点代表思考,随着树的层级越高,思考会变得更加抽象和高层。最终得出自我认知。

4.3 计划和反应

代理需要在更长的时间范围内进行规划,以确保他们的行动序列连贯可信。计划包括地点、开始时间和持续时间。

与反思一样,计划存储在记忆流中,并包含在检索过程中。代理在决定如何行动时可以同时考虑观察、反思和计划。代理可能会在需要时更改他们的计划。具体方法是自上而下逐步生成更详细的计划。

4.3.1 反应和更新计划

在每个时间步,智能体都感知周围的世界,并将这些感知到的观察结果存储在记忆流中。使用这些观察结果提示语言模型,智能体决定是否应该继续执行其现有计划,或做出调整。

4.3.2 对话

代理在彼此互动时进行对话,通过将代理的历史对话与他们对彼此的记忆联系起来来生成新对话。

5. 实现沙盒环境

Smallville 沙盒游戏环境使用 Phaserweb 游戏开发框架构建。服务器维护一个 JSON 数据结构,其中包含沙盒世界中每个代理的信息,包括当前的位置,动作描述以及他们正在与之交互的沙盒对象。

5.1 从结构化环境到自然语言再回到结构化环境

从结构化环境到自然语言,再回到结构化环境的转化过程,是一种双向的信息转化。通过将结构化数据转化为自然语言,可以更好地理解和处理信息。而通过将自然语言转化为结构化数据,可以更方便地整合和分析文本信息。

将沙盒环境区域和物体表示为树形数据结构,树中的边表示沙盒世界中的包含关系。代理在沙盒世界中导航时,他们会更新这棵树以反映新感知到的区域。递归地使用相同的过程来确定所选区域内最合适的子区域,直到达到代理环境树的叶节点。当代理在对象上执行动作时,提示语言模型询问对象的状态会发生什么变化。

6. 受控评估

6.1 评估程序

对智能体进行“面试”,以测试它们记忆过去经历的能力、基于经验规划未来行动的能力、对意外事件做出适当反应的能力以及反思自身表现以改进未来行动的能力。为了正确回答这些问题,智能体必须成功地检索和综合信息。

面试包括五个问题类别:维护自我知识、检索记忆、生成计划、反应和反思。附录 B 中包含了问题的完整列表和代理回答的样本。

招募 100 名参与者比较了由四种不同代理架构和一个由人类(普通人类行为水平,非专家)撰写的条件生成的面试回答,按照可信度从最可信到最不可信对条件进行排名。参与者可以访问代理记忆流中存储的所有信息。

6.2 条件

消融实验基于两天的实验数据,只在检索时进入消融(不加入反思/计划);如果重新实验,路径将不一致,从而无法比较。其中没有观察、没有反思、没有规划的条件代表了通过大型语言模型创建的代理的先前状态。

6.3 人类评估者

招募了 100 名评估者。

6.4 分析

使用 TrueSkill 评分计算每个条件的平均评分和标准差;然后应用 Kruskal-Wallis 检验对排名数据进行统计显著性分析,并使用 Dunn 检验确定条件之间的差异。最后通过 Holm-Bonferroni 方法调整了 Dunn 检验的多重比较 p 值。

6.5 结果

结果如下:

  • 消融:完整的架构优于其他条件,没有反思能力的消融架构是次优的;除了众包工人条件和完全消除基线之间的差异不显著外,所有条件之间的两两差异都是显著的。
  • 记忆:具有完整记忆模块的生成型代理能够回忆过去的经历,并以与其自我认知一致的方式回答问题;但记忆也有缺陷:有时无法正确地从记忆中检索到相关实例;有时,智能体会产生对他们知识的夸张幻觉;智能体还可能根据语言模型中的世界知识夸张他们的知识,比如混淆同一人名的不同人。
  • 反思:反思对于生成型代理是有优势的。

7. 全面评估

本部分将评估群体行为。

7.1 紧急社交行为

探究了三种紧急社交:信息扩散、关系形成和代理协调。使用采访过程进行评测:

  • 信息扩散:了解市长候选人身份的代理数量从一个增加到八个,了解 派对的代理数量从一个增加到十三个。
  • 每个代理对其他每个代理的了解,出现新的关系,网络密度从 0.167 增加到 0.74。
  • 代理的协调行为包括,代理需要听说事件,并选择在正确的时间和地点出现。受邀的 12 位代理中有 5 位来到了咖啡馆参加派对,7 位未能出席派对的代理,有三位提到了阻止他们参加派对的原因。

7.2 边界和错误

归纳分析以研究代理的边界条件和不规律行为。三种常见的不规律行为模式:

  • 合成越来越大的记忆集不仅在检索最相关的信息方面存在挑战,如:一些代理选择了不太典型的位置进行行动。
  • 对行为的错误分类导致的不稳定性,尤其当某些地点的物理规范很难用自然语言传达时。(不了解一些环境常识)
  • 代理比现实中更加礼貌和合作。

8. 讨论

8.1 生成代理的应用

  • 生成代理具有广泛的应用潜力,特别是在可以从长期经验中获益的行为模型的领域。
  • 创建更强大的人类行为模拟的可能性,同时也可以创造新的互动体验
  • 人本设计过程:代理充当人类的代理,并学习基于某人的生活模式可能展示的行为和反思。深入地了解他们的需求和偏好,从而实现更个性化和有效的技术体验

8.2 未来的工作和局限性

研究需要大量的时间和资源来模拟 25 个代理在两天内运行,耗费了数千美元的代币。

在改进方面,检索模块可以通过微调检索函数的相关性、新近性和重要性来提高在给定上下文中检索更相关信息的能力;可以提升架构的性能,使其更具成本效益;随着基础模型的进步,相信代理的性能将会提高。

生成型代理的鲁棒性仍然未知。它们可能容易受到提示攻击、记忆篡改(通过精心设计的对话使代理相信发生了从未发生过的事件)和幻觉。

8.3 道德和社会影响

  • 人们与生成主体形成准社会关系,比如用户过度依赖或情感依附于代理。
  • 错误产生可能造成伤害。
  • 生成式代理可能加剧与生成式人工智能相关的现有风险,如深度伪造、生成虚假信息和定制说服。
  • 开发者或设计师可能会使用生成代理并取代人类和系统利益相关者在设计过程中的角色。

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

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

相关文章

如何评估一个论坛或峰会值不值得参加?

现在的论坛和峰会非常多,且都宣传的非常高端,很多人为了不错过机会像赶场一样总在参会路上。但究竟什么样的论坛或峰会才值得一去呢? 评估一个论坛或峰会是否值得参加,需要考虑多个因素。 1、主题与你的兴趣或职业相关性&#xf…

5个AI绘图工具,强到离谱国内可用!

话不多说,先来看看AI生成的图片吧~ 1、AI-Chat(ChatGPT平替版) 传送门:点此访问手机端:AIChat手机版 传送门:点此访问PC端:AIChat PC版 支持“AI智能绘画”输入你想要的描述词或图片就能快速生…

【vue实战项目】通用管理系统:学生列表

本文为博主的vue实战小项目系列中的第五篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装token操作…

【Redis】前言--介绍redis的全局系统观

一.前言 学习是要形成自己的网状知识以及知识架构图,要不最终都还是碎片化的知识,不能达到提升的目的,只有掌握了全貌的知识才是全解,要不只是一知半解。这章会介绍redis的系统架构图,帮助认识redis的设计是什么样的&a…

线程池(用于处理Runnable任务或Callable任务)

一&#xff0c;线程池 二&#xff0c; 如何创建线程池 案例&#xff1a; //1,通过ThreadPoolExecuter创建一个线程池对象ExecutorService pool new ThreadPoolExecutor(3,5,8,TimeUnit.SECONDS,new LinkedBlockingQueue<>(4),Executors.defaultThreadFactory(),new Thr…

debian 12设置静态ip、dns

debian 12设置静态ip、dns 1、设置静态ip2、设置dns 1、设置静态ip 查看网卡名称是ens33 ip address编辑网卡配置文件 vi /etc/network/interfaces默认情况是这样的 在最后面添加下面内容 其中ens33是上步中查询到的网卡名称 auto ens33 iface ens33 inet static address…

cocos游戏引擎制作的滚动框地图防止误点操作的简单方法

本篇文章主要讲解&#xff0c;使用cocos creator 来解决在我们日常滚动框开发中&#xff0c;滚动和触摸存在冲突的情况&#xff0c;导致的误触行为的解决办法。 日期&#xff1a;2023年11月25日 具体事项 说明&#xff1a;在我们滚动滚动框时&#xff0c;会出现误点的情况&…

激活函数与其导数:神经网络中的关键元素

激活函数是神经网络中的重要组成部分&#xff0c;有力地推动了深度学习的发展。然而&#xff0c;仅仅了解和选择激活函数是不够的&#xff0c;我们还需要理解激活函数的导数。本文将详细介绍激活函数的概念、作用及其导数的重要性&#xff0c;并探究导数对神经网络训练的影响。…

Flutter之Graphic图表的简单示例

简介 Graphic是一个数据可视化语法和Flutter图表库。 官方github示例 我的gitee示例 网上可用资源很少&#xff0c;只有作者的几篇文章&#xff0c;并且没有特别详细的文档&#xff0c;使用的话还是需要一定的时间去调研&#xff0c;在此简单记录。 示例 以折线图为例&…

多线程(初阶四:synchronized关键字)

目录 一、加锁的目的 二、加锁和解锁 三、加锁后是否会出现线程安全问题 1、两个线程&#xff0c;针对不同对象加锁 2、一个线程加锁&#xff0c;一个线程不加锁 3、针对加锁操作的一些混淆理解 &#xff08;1&#xff09;多个线程调用同一个类的方法&#xff0c;对其方…

企业计算机中了locked勒索病毒怎么解锁,locked勒索病毒解密,数据恢复

科技的进步为企业的生产生活提供了极大便利&#xff0c;但随之而来的网络安全威胁也不断增加&#xff0c;近期云天数据恢复中心陆续接到很多企业的求助&#xff0c;企业的计算机服务器遭到了locked勒索病毒攻击&#xff0c;导致企业的所有业务无法正常开展&#xff0c;所有计算…

「Python编程基础」第4章:函数

文章目录 一、什么是函数&#xff1f;二、函数的基础构成&#xff01;三、函数的参数。位置参数关键字参数缺省参数不定长参数-位置参数不定长参数-关键字参数 四、函数的返回值。五、函数返回值的进阶玩法&#xff01;六、函数的说明文档。七、局部变量、全局变量和global关键…

区间预测 | Matlab实现BP-KDE的BP神经网络结合核密度估计多变量时序区间预测

区间预测 | Matlab实现BP-KDE的BP神经网络结合核密度估计多变量时序区间预测 目录 区间预测 | Matlab实现BP-KDE的BP神经网络结合核密度估计多变量时序区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.BP-KDE多变量时间序列区间预测&#xff0c;基于BP神经网络多…

数据查询,让表单之间“联动”起来!丨三叠云

数据查询 路径 表单设计 >> 字段属性 功能简介 「数据查询」增加触发「数据联动」功能。本次对「数据查询」字段的功能进行优化&#xff0c;这次升级包含「编辑关联数据」、「导入数据」「拷贝数据」&#xff0c;以提高数据操作时的便利。 适用场景&#xff1a; 销…

【Web】CmsEasy 漏洞复现

访问主页 到处点一点没啥发现 扫目录 访问/admin 账号密码都是admin admin,不知道为什么&#xff0c;这里就先当作是默认吧 &#xff08;其实都是信息检索&#xff0c;能在网上搜到就行hhh&#xff09; 登录成功 看到左边列表有模板&#xff0c;心里大概有数了哈 进行一波历…

国产航顺HK32F030M: 简易篮球计分器(便携计分器)

【自制】《基于航顺HKF030MF4P6手持比赛计分牌》&#xff08;便携计分器&#xff09; 1. 简介 便携篮球计分器是一种小型化设计的设备&#xff0c;主要用于记录和显示篮球比赛的得分和计时。以下是由Type-C充电电路TP5400/ASM1117电路、HK32F030MF4单片机最小系统、数码管显示…

142.【Nginx负载均衡-01】

Nginx_基础篇 (一)、Nginx 简介1.背景介绍(1).http和三大邮局协议(2).反向代理与正向代理 2.常见服务器对比(1).公司介绍(2).lls 服务器(3).Tomcat 服务器(4).Apache 服务器(5).Lighttpd 服务器(6).其他的服务器 3.Nginx的优点(1).速度更快、并发更高(2).配置简单&#xff0c;扩…

《微信小程序开发从入门到实战》学习二十九

3.4 开发参与投票页面 3.4.4 使用label组件扩大单击区域 radio组件的单击区域很小&#xff0c;只有文字左侧的圆圈可以点击&#xff0c;实际使用者一般会期望点击文字也可以选中选项&#xff0c;用label组件包含radio组件&#xff0c;就可以实现点击文字也可以选项。 label组…

接口自动化测试是个啥?如何开始?什么是框架?带你揭开神秘面纱

自动化测试 自动化测试&#xff0c;这几年行业内的热词&#xff0c;也是测试人员进阶的必备技能&#xff0c;更是软件测试未来发展的趋势。 特别是在敏捷模式下&#xff0c;产品迭代速度快&#xff0c;市场不断调整&#xff0c;客户需求不断变化&#xff0c;单纯的手工测试越…

新版PY系列离线烧录器,支持PY002A/002B/003/030/071等MCU各封装,不同 FLASH 大小型号

PY系列离线烧录器&#xff0c;目前支持PY32F002A/002B/002/003/030/071/072/040/403/303 各封装、不同 FLASH 大小型号。PY离线烧录器需要搭配上位机软件使用&#xff0c;上位机软件可以在芯岭技术官网上下载&#xff0c;还包括了离线烧录器的使用说明。PY离线烧录器使用MINI U…