目录
「Generative Agents」行为及其交互
架构
实验及评估
首页 科技周边 人工智能 爆火论文打造《西部世界》雏形:25个AI智能体,在虚拟小镇自由成长

爆火论文打造《西部世界》雏形:25个AI智能体,在虚拟小镇自由成长

Apr 12, 2023 am 09:04 AM
游戏 ai

我们能否创造一个世界?在那个世界里,机器人能够像人类一样生活、工作、社交,去复刻人类社会的方方面面。

这种想象,曾在影视作品《西部世界》的设定中被完美地还原出来:众多预装了故事情节的机器人被投放到一个主题公园内,它们可以像人类一样行事,记得自己看到的东西、遇到的人、说过的话。每天,机器人都会被重置,回到它们的核心故事情节中。

图片

《西部世界》剧照,左边人物为预装了故事情节的机器人。

再把想象力扩张一下:放在今天,如果我们想把 ChatGPT 这样的大语言模型变成西部世界的主人,又会怎么做?

在最近爆火的一篇论文中,研究者们成功地构建了一个「虚拟小镇」,25 个 AI 智能体在小镇上生存,它们不仅能够从事复杂的行为(比如举办情人节派对),而且这些行为比人类角色的扮演更加真实。

  • 论文链接:https://arxiv.org/pdf/2304.03442v1.pdf
  • Demo 地址:https://reverie.herokuapp.com/arXiv_Demo/

从《模拟人生》这样的沙盒游戏到认知模型、虚拟环境等应用,四十多年来,研究者们一直设想去创建能够实现可信人类行为的智能体。在这些设想中,由计算驱动的智能体的行为会与其过往经验一致,并对环境做出可信的反应。这种人类行为的模拟可以用现实社会现象填充虚拟空间和社区,训练「人们」去处理罕见但困难的人际关系、测试社会科学理论、制作理论和可用性测试的人类处理器模型、提供泛在计算应用和社交机器人动力,还能为在开放世界(Open World)中驾驭复杂人类关系的 NPC 角色奠定基础。

但人类行为的空间是巨大而复杂的。尽管在大型语言模型可以模拟单个时间点上的可信人类行为,但要想确保长期一致性,通用智能体需要一个架构来管理不断增长的记忆,因为新的互动、冲突和事件随着时间推移而出现和消退,同时还要处理多个智能体之间展开的级联社会动态。

如果一种方法能够在很长一段时间内检索相关的事件和互动,对这些记忆进行反思,并归纳和得出更高层次的推论,并应用这种推理来创建对当下和长期智能体行为有意义的计划和反应,那么距离梦想实现就不远了。

这篇新论文介绍了「Generative Agents」(生成式智能体),一种利用生成模型来模拟可信人类行为的智能体,并证明它们能产生可信的个人和突发群体行为的模拟:

  • 能够对自己、其他智能体和环境进行广泛的推断;
  • 能够创建反映自身特点和经验的日常计划,执行这些计划,做出反应,并在适当的时候重新计划;
  • 能够在终端用户改变环境或用自然语言命令它们时做出反应。

图片

「Generative Agents」背后是一个新的智能体架构,能够存储、合成和应用相关的记忆,使用大型语言模型生成可信的行为。

举个例子,「Generative Agents」如果看到它们的早餐正在燃烧,会关掉炉子;如果浴室有人,会在外面等待;如果遇到想交谈的另一个智能体,会停下来聊天。一个充满「Generative Agents」的社会是以新兴的社会动态为标志的,在这个社会中,新的关系被形成,信息被扩散,并在智能体之间产生协调。

具体而言,研究者在这篇论文中公布了几点重要细节: 

  • Generative Agents,是对人类行为的可信模拟,它以智能体不断变化的经验和环境为条件进行动态调整;
  • 一个新颖的架构,使 Generative Agents 有可能记住、检索、反思、与其他智能体互动,并通过动态演变的环境进行规划。该架构利用了大型语言模型的强大 prompt 能力,并对这些能力进行了补充,以支持智能体的长期一致性、管理动态演变的记忆能力,以及递归地产生更多的世代;
  • 两项评估(对照评估和端到端评估),确定架构各组成部分的重要性的因果关系,以及确定因记忆检索不当等原因而产生的故障;
  • 讨论了交互系统中 Generative Agents 的机会和伦理及社会风险。研究者认为应该对这些智能体进行调整,减轻用户形成寄生社会关系的风险,对其进行记录以减轻由 deepfake 和定制说服所带来的风险,并在设计过程中以补充而非取代人类利益相关者的方式进行应用。

文章一经发布,就引起了全网的热议。本就看好「AutoGPT」方向的 Karpathy 连连赞叹,认为「Generative Agents」比之前玩概念的「Open World」高了不是一点半点:

图片

更有研究者断言,这项研究的发布,意味着「大型语言模型实现了新的里程碑式进展」:

「Generative Agents」行为及其交互

为了使「Generative Agents」更加具体化,该研究将它们实例化为沙盒世界中的角色。

25 个智能体居住在名为 Smallville 的小镇,每个智能体由一个简单的化身表示。所有的角色都可以:

  • 与别人和环境交流;
  • 记住并回忆它们所做的和观察到的事情;
  • 反思这些观察结果;
  • 制定每天的计划。

图片

研究者用自然语言描述了每个智能体的身份,包括它们的职业以及与其他智能体的关系,并将这些信息作为种子记忆。举例来说,智能体 John Lin 有如下描述(本文截取了一段):

「John Lin 是一名药店店主,他乐于助人。他一直在寻找使客户更容易获得药物的方法。John Lin 的妻子是大学教授 Mei Lin ,它们和学习音乐理论的儿子 Eddy Lin 住在一起;John Lin 非常爱它的家人;John Lin 认识隔壁的老夫妇 Sam Moore 和 Jennifer Moore 好几年了……」

身份设定好之后,接着就是智能体如何与世界交互了。

在沙盒的每个 step 内,智能体都输出一个自然语言语句,以描述它们当前的动作,例如语句「Isabella Rodriguez 正在写日记」、「Isabella Rodriguez 正在查看邮件」等。然后这些自然语言被转化为影响沙盒世界的具体动作。动作以一组表情符号的形式显示在沙盒界面上,这些表情符号提供了动作的抽象表征。

为了实现这一点,该研究采用了一种语言模型,可以将动作转换为一组表情符号,这些表情符号出现在每个智能体化身上方的对话框中。例如,「Isabella Rodriguez 正在写日记」显示为 ,「Isabella Rodriguez 正在查看邮件」显示为 。 除此以外,通过单击智能体头像可以访问完整的自然语言描述。

智能体之间用自然语言进行交流,假如智能体意识到在其周围有其他智能体,它们会思考要不要走过去进行聊天。例如 Isabella Rodriguez 和 Tom Moreno 就即将到来的选举进行了对话:

图片

除此以外,用户还可以指定智能体扮演什么角色,例如,指定其中一个智能体为记者,你就可以向该智能体咨询新闻方面的内容。

智能体与环境的交互

Smallville 小镇有许多公共场景,包括咖啡馆、酒吧、公园、学校、宿舍、房屋和商店。此外,每个公共场景还包括自身具有的功能以及对象,例如房子中有厨房、厨房中有炉子 (图 2)。在智能体的生活空间中还有床、桌子、衣柜、架子,以及浴室和厨房。

图片

智能体可以在 Smallville 内随处走动,进入或离开一座建筑,导航前行,甚至去接近另一个智能体。智能体的移动由 Generative Agents 的架构和沙盒游戏引擎控制:当模型指示智能体移动到某个位置时,该研究会计算其在 Smallville 环境中到达目的地的步行路径,然后智能体开始移动。

此外,用户和智能体还可以影响该环境下其他物体的状态,例如,当智能体睡觉时床是被占用的,当智能体用完早餐冰箱可能是空的。最终用户还可以通过自然语言重写智能体环境。例如用户在 Isabella 进入浴室时将淋浴器状态设置为漏水,之后 Isabella 会从客厅找到工具并尝试修复漏水问题。

智能体一天的生活

从一段描述开始,智能体开始计划一天的生活。随着时间在沙盒世界中的流逝,智能体的行为随着彼此之间的交互以及与世界的互动、自身建立的记忆等逐渐改变。下图为药店店主 John Lin 一天的行为。

图片

在这个家庭中,John Lin 早上七点第一个起床,然后刷牙、洗澡、穿衣服、吃早餐,接着在客厅的餐桌旁浏览新闻。早上 8 点,John Lin 的儿子 Eddy 也跟着起床准备上课。他临出门时和 John 进行对话,内容为:

图片

Eddy 出发后不久,他的妈妈 Mei 也醒了过来,Mei 问起儿子,John 回忆起它们刚刚的对话,然后有了下面对话

图片

社交能力

除此以外,「Generative Agents」还表现出社会行为的涌现。通过相互交互,「Generative Agents」在 Smallville 环境下交换信息,形成新的关系。这些社会行为是自然产生的,而不是预先设定好的。例如当智能体注意到对方的存在时,可能会进行一场对话,对话信息可以在智能体之间传播。

让我们看几个例子:

信息传播。当智能体注意到对方,它们可能会进行对话。当这样做时,信息可以从智能体传播到另一智能体。例如,在 Sam 和 Tom 在杂货店的对话中,Sam 告诉了 Tom 他在当地选举中的候选资格:

图片

图片

当天晚些时候,在 Sam 离开后,从另一个渠道听到消息的 Tom 和 John 讨论了 Sam 赢得选举的机会:

图片

渐渐地,Sam 的候选资格成为了镇上的话题,有人支持他,也有人犹豫不决。

关系记忆。随着时间的推移,小镇上的智能体形成了新的关系,并记住了它们与其他智能体的互动。例如,Sam 一开始并不认识拉 Latoya Williams。在约翰逊公园散步时,Sam 碰到了 Latoya,互相做了自我介绍,Latoya 提到自己正在进行一个摄影项目:「我在这里为正在进行的一个项目拍摄照片。」在后来的互动中,Sam 与 Latoya 的互动表明了对这件事的记忆,Sam 问道:「Latoya,你的项目进展如何?」Latoya 回答:「进展得很好!」

协调能力。Isabella Rodriguez 经营一家 Hobbs 咖啡馆,打算在 2 月 14 日下午 5 点到 7 点举办一场情人节派对。从这个种子开始,当 Isabella Rodriguez 在 Hobbs 咖啡馆或其他地方遇到朋友和顾客时,就会发出邀请。13 日下午,Isabella 开始装饰咖啡馆。Isabella 的常客和密友 Maria 来到咖啡馆。Isabella 请求 Maria 帮忙布置派对,Maria 同意了。Maria 的角色描述是它喜欢 Klaus。那天晚上,Maria 邀请它的暗恋对象 Klaus 一起参加派对,Klaus 欣然接受。

情人节那天,包括 Klaus 和 Maria 在内的五名智能体在下午 5 点出现在 Hobbs 咖啡馆,它们享受着庆祝活动(图 4)。在这个场景中,终端用户只设置了 Isabella 举办派对的初始意图和 Maria 对 Klaus 的迷恋:传播信息、装饰、约对方、到达派对以及在派对上互动的社交行为 ,由智能体架构发起。

图片

架构

Generative Agents 需要一个框架来指导其在开放世界中的行为,旨在让 Generative Agents 能够与其他智能体进行交互并对环境变化做出反应。

Generative Agents 将其当前环境和过去的经验作为输入,生成行为作为输出。Generative Agents 的架构将大型语言模型和合成与检索相关信息的机制结合到一起,以调节语言模型的输出。

如果没有合成与检索机制,大型语言模型可以输出行为,但 Generative Agents 可能不会根据智能体过去的经验做出反应,以至于无法做出重要的推理,也可能无法保持长期的连贯性。即使使用当前性能最好的模型(例如 GPT-4),长期规划和连贯性方面的挑战仍然存在 。

由于 Generative Agents 会产生大量必须保留的事件和记忆流(memory stream),因此其架构的核心挑战是确保在需要时检索和合成智能体记忆中最相关的部分。

图片

Generative Agents 的架构中心是记忆流 —— 一个全面记录智能体经验的数据库。智能体会从记忆流中检索相关记录,以规划智能体的动作行为并对环境做出适当反应,并且每次行为都会被记录以递归合成更高级别的行为指导。Generative Agents 架构中所有的内容都被记录下来并以自然语言描述的形式来进行推理,从而使智能体能够利用大型语言模型的推理功能。

当前,该研究实现了使用 ChatGPT 的 gpt3.5-turbo 版本。研究团队预计 Generative Agents 的架构基础 —— 记忆、规划和反思 —— 可能会保持不变。较新的语言模型(例如 GPT-4)拥有更好的表达能力和性能,这会进一步扩展 Generative Agents。

记忆与检索

Generative Agents 的架构实现了一个检索功能,该功能将智能体的当前情况作为输入并返回记忆流的一个子集以传递给语言模型。检索功能有多种可能的实现方式,具体取决于智能体在决定如何行动时考虑的重要因素。

反思

该研究还引入了第二种类型的记忆,称为「反思」。反思是由智能体生成的更高层次、更抽象的思想。反思是周期性产生的,在该研究中,只有当智能体对最近事件的重要性分数总和超过某个阈值,智能体才会开始反思。

图片

实际上,该研究提出的 Generative Agents 每天大约反思两到三次。反思的第一步是让智能体确定要反思的内容,方法是根据智能体最近的经历确定可以提出的问题。

规划与反应

规划被用于描述智能体未来行动的顺序,并帮助智能体随着时间的推移保持行为一致。规划应该包含位置、开始时间和持续时间。

为了创建合理的规划,Generative Agents 会自上而下递归地生成更多细节。第一步是制定一个计划,粗略地概述当天的「日程」。为了创建初始规划,该研究向语言模型 prompt 智能体的总体描述(例如,姓名、特征和它们最近经历的摘要等等)。

在执行规划的过程中,Generative Agents 会感知周围环境,感知到的观察结果会存储在它们的记忆流中。该研究用这些观察 prompt 语言模型来决定智能体是应该继续它们的现有规划,还是做出其他反应。

实验及评估

该研究对 Generative Agents 进行了两项评估:一项是控制评估,以测试智能体是否能独立地产生可信的个体行为;另一项是端到端评估,其中多个 Generative Agents 在两天的游戏时间内开放式交互,这是为了了解智能体的稳定性和涌现(emergent)社会行为。

比如,伊莎贝拉计划举办一场情人节派对。她传播了这个信息,在模拟结束时,12 个角色已经知道了这件事。其中 7 个人「犹豫不决」——3 个人已有其他计划,4 个人没有表露想法,这和人类的相处一样。

图片

在技术评估层面,该研究通过用自然语言「采访」智能体,来评估智能体保持「性格」、记忆、规划、反应和准确反思的能力,并进行了消融实验。实验结果表明,这些组成部分中的每一个对于智能体在任务中的出色表现都至关重要。

图片

在实验评估中,智能体出现的最常见错误包括:

  • 其未能检索相关记忆;
  • 对智能体记忆进行捏造修饰;
  • 从语言模型中「继承」过于正式的言语或行为。

感兴趣的读者可以阅读论文原文,了解更多研究细节。

以上是爆火论文打造《西部世界》雏形:25个AI智能体,在虚拟小镇自由成长的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SQL 如何添加新列 SQL 如何添加新列 Apr 09, 2025 pm 02:09 PM

SQL 中通过使用 ALTER TABLE 语句为现有表添加新列。具体步骤包括:确定表名称和列信息、编写 ALTER TABLE 语句、执行语句。例如,为 Customers 表添加 email 列(VARCHAR(50)):ALTER TABLE Customers ADD email VARCHAR(50);

SQL 添加列的语法是什么 SQL 添加列的语法是什么 Apr 09, 2025 pm 02:51 PM

SQL 中添加列的语法为 ALTER TABLE table_name ADD column_name data_type [NOT NULL] [DEFAULT default_value]; 其中,table_name 是表名,column_name 是新列名,data_type 是数据类型,NOT NULL 指定是否允许空值,DEFAULT default_value 指定默认值。

SQL 添加列时如何设置默认值 SQL 添加列时如何设置默认值 Apr 09, 2025 pm 02:45 PM

为新添加的列设置默认值,使用 ALTER TABLE 语句:指定添加列并设置默认值:ALTER TABLE table_name ADD column_name data_type DEFAULT default_value;使用 CONSTRAINT 子句指定默认值:ALTER TABLE table_name ADD COLUMN column_name data_type CONSTRAINT default_constraint DEFAULT default_value;

SQL 清空表:性能优化技巧 SQL 清空表:性能优化技巧 Apr 09, 2025 pm 02:54 PM

提高 SQL 清空表性能的技巧:使用 TRUNCATE TABLE 代替 DELETE,释放空间并重置标识列。禁用外键约束,防止级联删除。使用事务封装操作,保证数据一致性。批量删除大数据,通过 LIMIT 限制行数。清空后重建索引,提高查询效率。

使用 DELETE 语句清空 SQL 表 使用 DELETE 语句清空 SQL 表 Apr 09, 2025 pm 03:00 PM

是的,DELETE 语句可用于清空 SQL 表,步骤如下:使用 DELETE 语句:DELETE FROM table_name;替换 table_name 为要清空的表的名称。

如何在 SQL 表中添加一列 如何在 SQL 表中添加一列 Apr 09, 2025 pm 02:06 PM

在 SQL 表中添加列需要执行以下步骤:打开 SQL 环境并选择数据库。选择要修改的表,并使用 "ADD COLUMN" 子句添加一列,其中包括列名、数据类型和是否允许空值。执行 "ALTER TABLE" 语句以完成添加。

Redis内存碎片如何处理? Redis内存碎片如何处理? Apr 10, 2025 pm 02:24 PM

Redis内存碎片是指分配的内存中存在无法再分配的小块空闲区域。应对策略包括:重启Redis:彻底清空内存,但会中断服务。优化数据结构:使用更适合Redis的结构,减少内存分配和释放次数。调整配置参数:使用策略淘汰最近最少使用的键值对。使用持久化机制:定期备份数据,重启Redis清理碎片。监控内存使用情况:及时发现问题并采取措施。

phpmyadmin建立数据表 phpmyadmin建立数据表 Apr 10, 2025 pm 11:00 PM

要使用 phpMyAdmin 创建数据表,以下步骤必不可少:连接到数据库并单击“新建”标签。为表命名并选择存储引擎(推荐 InnoDB)。通过单击“添加列”按钮添加列详细信息,包括列名、数据类型、是否允许空值以及其他属性。选择一个或多个列作为主键。单击“保存”按钮创建表和列。

See all articles