论文阅读_生成式Agent

news2024/12/22 22:02:28
英文名称: 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 道德和社会影响

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

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

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

相关文章

FireAlpacaforMac/win中文版—专业绘图软件释放你的创造力!

FireAlpaca是一款专业绘图软件,适用于Mac和Windows操作系统。无论你是初学者还是专业绘画师,FireAlpaca都能为你提供一个简单、强大的绘画平台,释放你的创造力。 首先,FireAlpaca拥有丰富的绘画工具和功能。它提供了各种绘画笔刷…

土壤多参数自动监测站实时守护农业的根基

WX-GSSQ10 随着科技的不断发展,农业领域也开始享受到技术进步带来的红利。其中,土壤多参数自动监测站的出现,为农业的精准管理和高效发展提供了强有力的支持。它像一位永不疲倦的哨兵,24小时全天候监测着土壤的状况,为…

LabVIEW当鼠标悬停在图形曲线上时显示坐标

LabVIEW当鼠标悬停在图形曲线上时显示坐标 在波形图上显示波形数据后,当鼠标放在波形图的曲线上时,如何自动显示对应点的坐标? 1. 创建事件结构,选择“波形图”作为“事件源”,选择“鼠标移动”作为“事件”&a…

深入解析:如何开发抖音票务小程序

当下,开发抖音票务小程序成为了吸引年轻用户群体的一种创新方式。本文将深入解析如何开发抖音票务小程序,探讨关键步骤和技术要点。 1.确定需求和功能 考虑到抖音的用户特点,可以加入与短视频相关的票务功能,如在线购票、观影记录…

中间件渗透测试-Server2131(解析+环境)

B-10:中间件渗透测试 需要环境的加qq 任务环境说明: 服务器场景:Server2131(关闭链接) 服务器场景操作系统:Linux Flag值格式:Flag{Xxxx123},括…

【后端卷前端】

为啥现在对后端要求这么高?为啥不要求前端会后端呢? 可能是后端人太多了,要求后端需要会前端的框架(vue react angular ), 这不我为了适应市场的需求来系统的学习vue了: 生成一个基础的vue项目 创建vue项目 vue create projectname 创建vitevue npm init vitelatest p…

STM32 启动文件分析

STM32 启动文件分析 基于STM32F103VET6芯片的 startup_stm32f10x_hd.s 启动文件分析 设置栈,将栈的大小Stack_Size设置为0x00004900(18688/102418KB),即局部变量不能大于18KB。(EQU等值指令,将0x0000490…

「Verilog学习笔记」数据累加输出

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 在data_out准备好,valid_b拉高时,如果下游的ready_b为低,表示下游此时不能接收本模块的数据,那么,将会拉低ready…

UWB实时定位系统源码,历史活动轨迹显示,视频联动,电子围栏

UWB实时定位系统源码,工厂企业人员安全定位,UWB源码 行业背景 工业企业多存在很多有毒有害、高危高压等生产环境,带电设备众多,容易发生安全事故;人员只能凭记忆遵守各项生产安全规范,如某些危险区域范围、…

OpenCV简介及安装

前言 因为最近想做图像处理、人脸检测/识别之类的相关开发,所以就开始补OpenCV的相关知识,便开个专栏用于记录学习历程和在学习过程中遇到的一些值得注意的重点和坑。 学习过程基本上也是面向官方文档和Google。 简介 OpenCV(开源的计算机视觉库)是基于…

Python编程之魂之运算符的优先级教程

文章目录 前言优先级概述相同优先级结合性运算符优先级一览表运算符优先级重点说明结语关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资…

中职网安-Linux操作系统渗透测-Server2130(环境加qq)

B-9:Linux操作系统渗透测 任务环境说明:  服务器场景:Server2130  服务器场景操作系统:Linux(关闭链接) 1.通过本地PC中渗透测试平台Kali对靶机场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中Apache服务对应的版本信息字符串作为Flag值提交; 2.…

救命~终于找到一款好看又舒适的家居服了

暖乎乎的软糯家居服 简直不要太好看太舒服了 双层舒棉绒舒适又暖和 防风收口设计,时尚与实用性兼具 经典版型不挑人穿 居家外出都可哦!!

03 _ 系统设计目标(一):如何提升系统性能?

提到互联网系统设计,可能听到最多的词就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。这里将整体探讨下高并发系统设计的目标,然后在此基础上,探讨下:如何提升系…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

哈希——位图、布隆过滤器

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 目录 👉🏻位图概念bitset &#x1f4…

曲线拟合:走进数据建模中的艺术与科学

在现代科学和工程领域,曲线拟合是一项重要的数据分析技术,它可以通过数学模型来近似描述实际数据中的复杂关系。本文将详细介绍曲线拟合的基本概念、方法和应用领域,并探究其在数据建模中的艺术与科学。 第一节:曲线拟合的基本概…

UML建模图文详解教程08——部署图

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:《UML面向对象分析、建模与设计(第2版)》吕云翔,赵天宇 著 部署图概述 部署图(deployment diagram)也被译作配置…

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

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

Java LCR 089 打家劫舍

题目链接&#xff1a;打家劫舍 定义一个数组 dp&#xff0c;其中 dp[i] 表示从第 0 间房子到第 i 间房子&#xff08;包括第 i 间&#xff09;能够偷窃到的最高金额。 对于第 i 间房子有两种选择&#xff0c;偷或不偷&#xff1a; 偷就不能偷第 i - 1 间房子&#xff1a; dp[i]…