论文阅读:生成代理-人类行为的交互式模拟

622 阅读19分钟

本文介绍了生成代理,即模拟可信人类行为的计算软件代理。该架构扩展了一个大型语言模型,以使用自然语言存储和综合代理的经验、记忆和计划。这些代理在受《模拟人生》启发的交互式沙箱环境中实例化,用户可以在其中使用自然语言与它们进行交互。在评估中,生成代理表现出可信的个人和紧急社会行为。该论文表明,代理架构的组件——观察、规划和反思——对于可信度至关重要。这项工作通过将大型语言模型与交互式代理合并,为模拟人类行为奠定了基础。

生成代理行为和交互

image.png

代理头像和通信

一个由 25 个独特代理人组成的社区,由精灵化身代表,居住在 Smallville 中。每个代理的身份,包括职业和关系,都在一段自然语言种子记忆中描述。

image.png

在交互式沙盒环境中,代理通过动作和自然语言交流的结合与世界互动。在每个时间步,代理输出一个自然语言语句来描述他们当前的动作,例如“Isabella Rodriguez 正在写她的日记”。然后将这些陈述转化为影响沙盒世界的具体动作,并作为一组表情符号显示在界面上,在俯视图中提供动作的抽象表示。使用语言模型将动作翻译成表情符号,这些表情符号出现在每个代理头像上方的对话泡泡中。

代理使用完全自然的语言相互交流,他们对其他代理的认识取决于他们在沙盒环境中的接近程度。生成代理架构会影响他们是从对方身边走过还是根据他们的位置进行对话。

运行模拟的用户可以控制其方向,并可以通过两种方式进行干预:通过与代理进行对话或通过发出指令作为代理的“内心声音”。用户使用自然语言与代理进行交流,并可以为代理指定角色以将其视为。当用户想要直接命令代理时,他们承担了代理“内心声音”的角色,这增加了代理将用户的陈述视为指令的可能性。例如,如果用户告诉约翰,作为他内心的声音,“你将在即将到来的选举中与山姆竞争”,约翰将决定参加选举并与他的家人分享他的候选资格。

环境互动

Smallville 是一个模拟村庄,具有公共空间和物品,如咖啡馆、酒吧、公园、学校、宿舍、房屋和商店,以及功能分区,如带炉灶的厨房。代理人在 Smallville 周围移动,与环境和彼此互动。用户还可以作为代理人加入 Smallville,既可以体现现有角色,也可以作为新访客。

用户和代理都可以影响环境中对象的状态,类似于模拟人生等沙盒游戏。用户可以通过使用自然语言命令更改对象的状态来重塑代理的环境。例如,用户可以将炉子的状态从“打开”更改为“燃烧”,从而提示代理做出相应的反应。特工也可能会对环境中的其他变化做出反应,例如修理漏水的淋浴器。

“生活中的一天”示例

image.png

紧急社会行为

通过相互交互,生成代理交换信息、形成新关系并协调联合活动。这些社会行为是突发的,而不是预先设定好的。

信息扩散。当代理人注意到彼此时,他们可能会进行对话——当他们这样做时,信息可以在代理人之间传播。

关系记忆。Smallville 中的特工建立新的关系,并随着时间的推移记住他们与其他特工的互动。例如,Sam 最初不认识 Latoya,但在 Johnson Park 遇到她并了解她的摄影项目后,他后来记得他们的互动,并在随后的谈话中向她询问了项目的进展情况。

协调

image.png

在超人前传中,生成代理相互协调。当伊莎贝拉开始计划情人节派对时,她会邀请遇到的朋友和顾客。伊莎贝拉和她暗恋克劳斯的朋友玛丽亚为这次活动布置了咖啡馆。玛丽亚后来邀请克劳斯参加聚会。情人节那天,包括克劳斯和玛丽亚在内的五名特工参加了派对并享受了庆祝活动。在这个场景中,用户只设置 Isabella 的初始意图和 Maria 对 Klaus 的迷恋,而代理架构自主生成社交行为,例如传播信息、装饰、互相约谈和在聚会上互动。

生成代理架构

image.png

生成代理旨在为开放世界中的行为创建一个框架,使它们能够与其他代理交互并响应环境变化。新颖的代理架构将大型语言模型与合成和检索相关信息的机制相结合,以调节语言模型的输出。内存流是一个数据库,它维护着代理体验的全面记录,是该架构的核心。

由于 GPT-4 的 API 是仅限邀请的,因此当前的实现使用了 ChatGPT 的 gpt3.5-turbo 版本。生成代理的核心要素——记忆、计划和反思——可能会随着语言模型的改进而保持一致,像 GPT-4 这样的新模型进一步扩展了驱动生成代理的提示的表现力和性能。

记忆与检索

image.png

考虑到代理的当前情况,该体系结构使用检索功能来选择内存流的子集。它侧重于三个主要组成部分:新近度、重要性和相关性。

  • Recency 使用指数衰减函数为最近访问的记忆分配更高的分数。
  • 重要性通过为重要记忆分配更高的分数来区分普通记忆和核心记忆。语言模型用于输出重要性的整数分数。
  • 相关性为与当前情况相关的记忆分配更高的分数,以查询记忆为条件。语言模型为每个记忆的文本描述生成嵌入向量,相关性计算为这些向量之间的余弦相似度。

最终的检索分数是通过对新近度、相关性和重要性分数进行归一化和组合,并具有相同的权重来计算的。适合语言模型上下文窗口的排名靠前的记忆包含在提示中。

反射

image.png

生成代理在仅使用原始观察记忆时难以概括或做出推论。为了应对这一挑战,引入了第二种称为“反射”的内存。反射是由代理产生的更高层次、更抽象的想法,并与观察一起包含在检索过程中。反射会定期生成,当最近事件的重要性分数总和超过某个阈值时触发。在实践中,代理人每天反思大约两到三次,使他们能够做出更好的决策和概括。

反思过程涉及代理根据他们最近的经验识别突出问题。他们使用内存流中的 100 条最新记录查询大型语言模型,并生成候选问题。然后使用这些问题进行检索,并收集相关记忆。语言模型提取见解并引用记录作为这些见解的证据。然后将这些见解存储为内存流中的反射,以及指向引用的内存对象的指针。反思可以基于观察和其他反思,创建一个树状结构,在树的更上层有更抽象和更高层次的想法。

例子:

  • 获取 100 个最近的记录(例如“Klaus Mueller 正在阅读一本关于中产阶级化的书”,“Klaus Mueller 正在与一位图书管理员讨论他的研究项目”);
  • 提示语言模型,“仅根据上述信息,关于陈述中的主题,我们可以回答的 3 个最突出的高级问题是什么?”
  • 模型生成的问题示例:“Klaus Mueller 热衷于什么话题?”
  • 将这些问题作为检索的query,检索出相关的记忆;
  • 然后像这样提取见解:

关于克劳斯·穆勒的陈述

克劳斯·穆勒 (Klaus Mueller) 正在撰写研究论文

克劳斯·穆勒 (Klaus Mueller) 喜欢阅读一本关于中产阶级化的书

克劳斯·穆勒 (Klaus Mueller) 正在与阿伊莎·汗 (Ayesha Khan) 讨论锻炼 [...] 您可以从上述陈述中推断出哪 5 个高层次见解?(示例格式:洞察力(因为 1、5、3))

计划和反应

挑战在于大型语言模型可以生成似是而非的行为,但难以保持长期连贯性。为了解决这个问题,代理人使用计划来保持他们的行为随着时间的推移保持一致。计划描述了一系列未来行动,包括地点、开始时间和持续时间。计划存储在内存流中,允许代理在决定如何行动时综合考虑观察、反思和计划。如有必要,特工还可以在中途更改他们的计划,以确保更可信的行动顺序。

为了为代理创建现实而有趣的计划,该方法从上到下开始并递归地生成更多细节。首先,创建一个初始计划,根据代理的摘要描述和前一天的活动概述当天的议程。该计划保存在内存流中,然后分解为以小时为单位的更细粒度的操作,然后进一步分解为 5-15 分钟的数据块。粒度级别可以根据需要进行调整,从而为代理的活动制定详细且引人入胜的计划。

反应和更新计划。生成代理在一个动作循环中运行,感知周围的世界并将观察结果存储在它们的记忆流中。语言模型使用这些观察来决定代理是否应该继续他们现有的计划或对情况做出反应。当需要反应时,使用相关查询生成上下文摘要。代理的现有计划从反应时间开始重新生成。如果动作涉及代理之间的交互,则生成它们之间的对话。

一个提示的例子:

[代理人的简要说明]

现在是 2023 年 2 月 13 日,下午 4:56。

John Lin 的状态: John 很早就下班回家了。

观察:约翰看到埃迪在他的工作场所附近走了一小段路。

约翰记忆中相关背景的总结: Eddy Lin 是 John 的 Lin 的儿子。Eddy Lin 一直在为他的班级创作音乐。Eddy Lin 喜欢在思考或听音乐时在花园里走来走去。

约翰应该对观察做出反应吗?如果是,什么是适当的反应?

对话

image.png

沙箱环境实现

Smallville 沙盒游戏环境是使用 Phaser 网页游戏开发框架构建的,具有导入的视觉精灵、环境和碰撞贴图。服务器补充框架,使沙箱信息可供生成代理使用,使它们能够移动和影响环境。服务器维护一个包含每个代理信息的 JSON 数据结构,并根据任何更改更新它。代理接收有关其视觉范围内的对象和其他代理的信息,以做出适当的反应。最终用户用自然语言描述初始化一个新的代理,它被分成一组初始记忆来确定代理的行为。随着代理人获得经验,他们的记忆流会增长,他们的行为也会发生变化。

为了将生成代理对沙盒世界的推理作为基础,环境被表示为树数据结构,边表示包含关系。这棵树被转换成代理的自然语言。代理在导航时构建环境的单个树表示,并在感知到新区域时更新它。为了确定每个动作的合适位置,遍历代理的环境树并将其扁平化为自然语言以提示语言模型,递归地找到最合适的区域。传统的游戏路径算法为代理移动到选定位置设置了动画。当代理对对象执行操作时,会提示语言模型确定对象状态的变化,例如咖啡机从“关闭”切换到“正在煮咖啡”。

受控评估

生成代理旨在根据他们的环境和经验产生可信的行为。这些代理的评估分两个阶段进行。首先,受控评估评估个体代理人的反应,以了解他们是否在特定情况下产生可信的行为。然后,在整整两天内对代理社区进行端到端分析,检查他们作为一个集体出现的行为,包括错误和边界条件,看看他们是否可以展示信息传播、关系形成和代理协调。

评估程序

为了评估《超人前传》中的生成代理人,代理人接受了“采访”,以探究他们保持自我知识、恢复记忆、制定计划、反应和反思的能力。因变量是行为的可信度。访谈包括五个问题类别,每个问题类别旨在评估一个关键领域。代理是从具有完整架构的两个比赛日模拟结束时抽取的。为了收集关于回答可信度的反馈,招募了 100 名人类评估员来观看随机选择的特工在超人前传中的生活重播。在受试者内设计实验中,评估人员对由四种不同代理架构和同一代理的人类作者条件生成的采访响应的可信度进行排名。

状况

将生成代理架构与三种消融架构和人类生成的条件进行了比较。消融的架构对观察、反思和计划等记忆类型的访问有限。无观察、无反射、无计划条件代表了通过大型语言模型创建的代理的先前技术水平。为了提供人类基线,一个独特的众包工作者角色扮演代理人,观看代理人沙盒生活的重播,并检查其内存流。然后,他们以代理人的声音撰写了对采访问题的回答。人为生成的响应经过人工检查,以确保它们符合质量基准预期。这种比较旨在确定该体系结构是否通过了基本级别的行为能力。

分析

实验产生了 100 组排名数据,用于比较每个条件的可信度。计算 TrueSkill 评分以提供可解释的比较。为了研究统计显着性,使用了 Kruskal-Wallis 检验和 Dunn 事后检验,并使用 Holm-Bonferroni 方法调整 p 值。此外,第一作者进行了归纳分析,以研究每种情况下反应之间的定性差异。定性开放编码用于两个阶段:生成表示句子级别生成的响应的代码,以及合成代码以提取更高级别的主题。这些主题用于比较研究中产生的响应类型。

结果

image.png

研究结果表明,完整的生成代理架构在所有研究条件中产生了最可信的行为。在消融条件下去除每个组件会降低性能。

具有完整记忆模块的生成代理可以回忆过去的经历并根据他们的自我知识一致地回答问题。然而,他们的记忆并非完美无缺。他们可能无法检索到正确的实例,从而导致不完整或不确定的响应。虽然代理人很少捏造知识,但他们可能会对他们的知识进行幻觉修饰,或者将他们的反应基于语言模型中编码的世界知识。这可能会导致他们的回答不准确或不一致。

反思对于生成代理综合他们的经验并做出明智的决定至关重要。访问反思记忆可以让代理人自信地回答问题,从过去的互动和知识中汲取灵感。在提供的示例中,Maria Lopez 在获得反射记忆后,能够根据 Wolfgang Schulz 的兴趣为他推荐生日礼物。

紧急社会行为

image.png

该研究通过跟踪两条信息的传播来调查模拟世界中生成代理之间的信息传播:山姆竞选村长和伊莎贝拉的情人节派对。一开始,只有山姆和伊莎贝拉知道这些事件。两天比赛后,我们采访了 25 名特工,并分析了他们的回答以确定他们是否知道这些信息。如果回答表明知道,则标记为“是”,否则标记为“否”。该研究还证实,代理人不会通过检查他们的记忆流来产生幻觉。报告了在模拟结束时持有信息的代理人的百分比。

该研究还检查了代理人之间的关系形成和协调。在模拟开始和结束时,代理人被问及他们对其他代理人的了解。如果两个代理人彼此认识,则认为关系已形成。创建了一个无向图,其中顶点代表代理,边代表相互知识。计算网络密度以衡量关系的形成。

此外,该研究调查了代理人协调团体活动的能力,例如伊莎贝拉的情人节派对。代理商需要了解该活动并计划在正确的时间和地点参加。报道了听说后实际出现在派对上的代理人的数量。

该研究观察了模拟中的紧急结果。在没有用户干预的情况下,知道 Sam 市长候选人的代理人从 4% 增加到 32%,而知道 Isabella 党的代理人从 4% 增加到 48%。网络密度从 0.167 增加到 0.74,表明关系形成。只有 1.3% 的代理人对他们对其他代理人的认识产生了幻觉。

配合方面,十二位受邀特工中有五位参加了伊莎贝拉的聚会。在没有参加的七人中,三人表示存在冲突,四人表示有兴趣但不打算在聚会当天前来。

边界和错误

该研究确定了代理人中三种常见的不稳定行为模式,可以在未来的研究中加以解决:

  • 随着代理了解更多位置,他们在选择最相关的信息和适合他们的行动的空间方面面临挑战,这可能会随着时间的推移使他们的行为变得不那么可信。比如,一开始他们在咖啡厅吃午饭,后来了解到附近有一家酒吧后,他们选择了去那里。
  • 由于位置的物理规范未以自然语言正确传达,代理人错误分类了正确的行为,导致了不稳定的行为。例如,多人同时上宿舍厕所。这可以通过向位置状态添加规范来解决。
  • 指令调整使代理人过于礼貌和合作,导致对话过于正式,代理人很少拒绝他人的建议,即使这些建议不符合他们的兴趣。随着时间的推移,这也导致代理人的利益受到他人的影响。

讨论

生成代理的应用

生成代理具有超越沙盒演示的潜在应用,包括填充在线论坛、虚拟现实元宇宙,甚至作为社交机器人的物理空间。这可能会导致对人类行为的强大模拟,以测试社会系统和理论并创造互动体验。另一个应用是在以人为本的设计过程中,生成代理可以充当用户的代理,学习他们的行为模式和偏好。这将允许更个性化和更有效的技术体验,例如自动冲泡咖啡、帮助完成早晨的例行程序,以及调整环境设置以匹配用户的心情。

未来的工作和限制

未来对生成代理的研究可以集中在改进架构、性能、成本效益和实时交互性上。增强功能可以包括微调检索模块和并行化代理。随着基础模型的改进,代理的性能也会提高。评估应该扩展到更长的时间尺度,并探索不同的模型和超参数。解决偏见和确保价值一致性至关重要,同时解决影响边缘化人群的数据沙漠问题。必须测试生成代理的稳健性,以解决提示黑客、记忆黑客和幻觉等问题。采用大型语言模型的缓解措施将有助于提高生成代理的弹性。

道德与社会影响

生成代理引发了伦理问题,包括准社会关系的风险、错误的影响、现有人工智能风险的加剧以及过度依赖。为了解决这些问题:

  • 生成代理应公开其计算性质并与价值保持一致以避免不当行为。
  • 在不同的应用领域,遵循人类-AI 设计的最佳实践以了解错误及其对用户体验的影响非常重要。
  • 通过维护输入和输出的审计日志,允许检测和干预恶意使用,降低与深造假、错误信息和量身定制的说服相关的风险。
  • 生成代理不应取代设计过程中的人工输入,而应用于早期原型设计或测试难以或有风险地与人类参与者一起测试的理论。
  • 遵守这些原则可确保生成剂的部署符合道德和社会责任。