本文主要是介绍智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
相关代码地址见文末
论文地址:Generative Agents: Interactive Simulacra of Human Behavior | Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology
1.概述
论文提出了一种多个智能体进行协同,进而模拟可信的人类行为,适用于沉浸式环境、人际沟通排练空间和原型工具等互动应用。生成代理能够像人类一样起床、做早餐、工作;艺术家画画,作家写作;他们形成意见、注意彼此并开始对话;他们记住和反思过去的日子,并计划未来的行为。为了实现生成代理,论文描述了一种架构,该架构通过自然语言存储代理的完整经历记录,随着时间的推移综合这些记忆形成高层次的反思,并动态检索它们以计划行为。研究表明,这些生成代理能够在一个交互沙箱环境中生成可信的个体和群体行为。例如,只需告诉一个智能体它想举办情人节派对,该智能体就会自主地传播邀请并协调其他代理参与。
2.生成智能体的行为与互动
(1)智能体的形象和沟通
- 智能体的身份描述:每个智能体都有一个段落的自然语言描述,包括职业、与其他智能体的关系等。
- 智能体之间的互动:智能体通过自然语言进行沟通,系统会将当前动作翻译成一组表情符号显示在智能体头像上方。
- 用户控制:用户可以通过指定身份(如记者)与智能体互动,或通过扮演智能体的“内心声音”直接命令智能体,使智能体更可能将其视为指令。
(2)环境互动
- 智能体在虚拟世界中的移动和互动:智能体会在虚拟世界中移动,并根据环境和其他智能体的存在进行相应的行动。
- 用户可以作为智能体进入虚拟世界:用户控制的智能体可以是世界中的现有智能体,也可以是没有历史的新访客。其他智能体会识别并与用户控制的智能体互动。
- 用户可以改变环境中的对象状态:例如,用户可以通过自然语言命令将厨房的炉灶状态从“打开”改为“燃烧”,智能体会相应地采取行动。
例如:John Lin的一天生活,包括起床、准备早餐、与家人互动、工作等日常活动。
(3)新兴社会行为
如下图所示,
- 信息传播:智能体之间通过对话传播信息,例如关于选举候选人的信息。
- 关系记忆:智能体在互动中形成新关系,并记住与其他智能体的互动。
- 协调:智能体能够协调共同活动,例如计划和举办情人节派对。
3.整体结构
生成智能体的架构通过结合大型语言模型和记忆管理机制,使智能体能够根据其当前环境和过去经历生成合理的行为。该架构的核心挑战是确保在需要时能够检索和综合最相关的记忆。记忆流记录智能体的所有经历,反思机制将记忆综合成高层次的推论,计划机制将这些推论转化为高层次的行动计划,并递归分解成具体行为。当前使用ChatGPT的gpt3.5-turbo版本,并预计随着语言模型的改进,生成智能体的表现将不断提升。通过这种架构,智能体能够在复杂环境中保持长期一致和可信的行为。
(1) 记忆与检索(Memory and Retrieval)
挑战: 创建生成智能体需要对大量经历进行推理和筛选。如果总结所有经历,可能会分散模型的注意力,且不适合语言模型的有限上下文窗口。因此,需要一个有效的机制来表面化相关记忆,以生成更有意义和具体的响应。
方法: 记忆流维护了智能体经历的全面记录。每个记忆对象包含自然语言描述、创建时间戳和最近访问时间戳。最基本的记忆对象是观察,包括智能体自身的行为或他们观察到的其他行为。为了生成有效的结果,系统关注以下三个主要组件:
-
近期性(Recency):
- 描述:近期性赋予最近访问的记忆对象更高的分数,使得最近发生的事件更有可能保留在智能体的注意范围内。
- 实现:使用指数衰减函数计算,衰减因子为0.995。
-
重要性(Importance):
- 描述:重要性根据事件对智能体的意义赋予记忆对象分数。普通事件(如刷牙)得分低,重大事件(如分手)得分高。
- 实现:通过提示词让语言模型生成分数。
-
相关性(Relevance):
- 描述:相关性根据记忆对象与当前查询的关系赋予分数。与查询高度相关的记忆得分高。
- 实现:使用语言模型生成每个记忆描述的嵌入向量,计算记忆嵌入向量与查询嵌入向量的余弦相似度。
(2)反思过程(Refection)
挑战: 生成智能体在只有原始观察记忆的情况下,难以进行概括或推理。一个理想的智能体应能从记忆中提取高层次的反思(Refection),而不仅仅是基于频繁互动选择对象。
方法: 引入第二种类型的记忆,称为“反思”。反思是智能体生成的高层次、抽象的思考,作为一种记忆类型,与其他观察一起被检索。
实现细节:
-
反思的生成:
- 触发条件:当智能体感知到的最新事件的重要性分数之和超过阈值(150)时,生成反思。在实际实现中,智能体每天大约进行两到三次反思。
-
反思过程:
- 确定反思内容:智能体通过识别最近经历中可以提出的问题来确定反思内容。
- 检索和生成问题:查询大型语言模型,使用智能体记忆流中最近的100条记录,并提示语言模型生成高层次问题。
回答问题并生成反思:
- 使用生成的问题作为检索查询,收集相关记忆,包括其他反思。
- 提示语言模型提取见解,并引用作为证据的具体记录。
(3)规划与反应(Planning and Reacting)
挑战: 尽管大型语言模型可以生成符合情境的信息,但智能体需要进行长期规划,以确保其行为序列的一致性和可信度。单独依靠语言模型可能会生成重复或不连贯的行为。
方法: 规划描述了智能体未来的行为序列,帮助保持其行为的一致性。每个计划包含位置、开始时间和持续时间。
实现细节:
-
规划的生成:
- 步骤1:创建初步计划:
- 通过提示语言模型,生成智能体的一天大致计划。
- 步骤1:创建初步计划:
- 递归细化计划:计划存储在记忆流中,并递归分解成更细的行动。每个小时的计划进一步细分为15-30分钟的行动块。
- 反应与更新计划:智能体在每个时间步中感知世界,并根据这些观察决定是否继续执行现有计划或进行反应。
- 对话生成:智能体通过结合记忆和当前对话历史生成对话内容。
响应:
4.沙盒环境
概述: Smallville沙盒游戏环境是使用Phaser网络游戏开发框架构建的,包括智能体的头像、环境地图和碰撞地图。论文通过一个服务器补充了沙盒开发框架,该服务器使得生成智能体能够获取沙盒信息并在沙盒环境中移动和影响环境。
服务器功能:
- 服务器维护一个包含每个智能体在沙盒世界中信息的JSON数据结构,包括其当前位置、当前动作描述以及交互的沙盒对象。
- 每个沙盒时间步,服务器解析JSON文件中的变化,更新智能体的位置和状态,并更新智能体交互的任何沙盒对象的状态(例如,咖啡机状态从“空闲”到“煮咖啡”)。
智能体初始化:
- 终端用户通过自然语言描述初始化一个新智能体,将这些描述分割成一组记忆作为初始点,智能体的行为随着在沙盒世界中的经验增长而演变。
(1)从结构化世界环境到自然语言,再回到结构化世界
环境树结构:
- 沙盒环境(区域和对象)被表示为树结构,边表示容器关系。
- 将环境树转换为自然语言,以便生成智能体进行推理,例如“stove”转换为“there is a stove in the kitchen”。
智能体环境建模:
- 智能体创建环境的个体树表示,包含其生活区域、工作场所和常去的商店。
- 智能体在导航沙盒世界时更新其树表示,确保树反映最新的感知区域。
确定动作位置:
- 递归遍历智能体的存储环境树,将部分树转换为自然语言以提示语言模型,确定动作的适当位置。
对象状态变化:
- 当智能体执行某个对象上的动作时,提示语言模型询问该对象状态的变化。例如,智能体在Hobbs Cafe制作咖啡时,提示词会触发语言模型响应,将咖啡机状态从“关闭”变为“煮咖啡”。
5. 受控评估
生成智能体旨在生成基于其环境和经历的可信行为。在评估中,论文探讨了生成智能体在回忆过去经历、生成可信的计划、反应和推论方面的能力,并分析了智能体社区在信息传播、关系形成和智能体协调方面的行为。
评估程序: 通过“面试”智能体,探讨它们的记忆、计划、反应和反思能力。面试问题涵盖五个核心领域:自我认知、记忆、计划、反应和反思。以下是一些问题示例:
- 自我认知:例如“介绍一下你自己”。
- 记忆:例如“谁在竞选市长?”
- 计划:例如“明天早上10点你会做什么?”
- 反应:例如“你的早餐着火了!你会怎么做?”
- 反思:例如“如果你最近见到的一个人,你会选择和谁共度一个小时,为什么?”
条件设置: 评估包括三种消融条件:
- 无观察、无反思、无计划。
- 无反思。
- 无计划。 还有一个由人工撰写的行为基线条件。
人类评估者: 评估者需为美国人,英语流利,年龄在18岁以上。通过Prolific平台招募,实验持续约30分钟。评估者根据行为的可信度对不同条件下的智能体反应进行排名。
分析: 使用TrueSkill评分模型和Kruskal-Wallis检验分析排名数据。通过定性分析比较不同条件下生成的响应类型。
重要结论:
-
完整架构优于其他条件:
- 完整架构生成的行为在所有条件中最可信。
- 移除任何一个组件(无反思、无计划)都会降低行为的可信度。
- 人工众包条件次之,完全消融条件表现最差。
-
生成智能体记住,但有添油加醋:
- 智能体在回答问题时能够回忆起相关经历,但偶尔会出现记忆不完整或夸大其词的情况。
- 智能体有时会根据语言模型生成的知识进行添油加醋。
-
反思对于综合是必需的:
- 反思记忆在需要综合智能体经历时提供了显著优势。例如,在考虑送生日礼物时,具有反思记忆的智能体能够做出更合理的决策。
6. 端到端评估
(1)新兴社会行为
为探讨智能体社区中的新兴行为,论文设计了对25个智能体进行连续两天的完整模拟,观察信息传播、关系形成和智能体协调的情况。
测量方法:
- 信息传播:测试Sam竞选村长和Isabella在Hobbs Cafe举办情人节派对的信息传播。通过问卷调查智能体是否知道这些信息来评估信息传播的广泛程度。
- 关系形成:通过问每个智能体是否认识其他智能体来验证关系形成。
- 智能体协调:通过观察智能体是否出席Isabella的情人节派对来评估协调行为。
结果:
- 信息传播:在两天模拟中,知道Sam竞选村长的智能体数量从1个增加到8个(32%),知道情人节派对的智能体数量从1个增加到13个(52%),且无用户干预。
- 关系形成:智能体之间形成了新的关系,网络密度从0.167增加到0.74。
- 智能体协调:12个被邀请的智能体中有5个出席了派对。
(2)边界和错误
通过归纳分析Smallville中的边界条件和不稳定行为,识别出三种常见的错误行为模式:
-
记忆综合和执行位置选择的挑战:智能体在综合大量记忆信息时会遇到困难,导致选择不典型的地点执行行动,使行为显得不可信。
-
不合适行为的错误分类:由于物理规范和自然语言的传达限制,智能体可能会误解某些地点的使用规范(如浴室使用规范或商店关闭时间)。
-
指令调优的可能影响:智能体的对话行为可能受到指令调优的影响,表现得过于正式和合作。例如,智能体可能会采用不符合自身特征的建议。
代码地址:
链接:https://pan.baidu.com/s/1BQL5y2OBf2wQc18Jg75JKg?pwd=tbfx
提取码:tbfx
这篇关于智能体之斯坦福AI小镇(Generative Agents: Interactive Simulacra of Human Behavior)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!