#多agent #斯坦福小镇《Generative

B站影视 电影资讯 2025-04-01 00:30 2

摘要:生成型代理以当前环境和过往经验作为输入,生成行为作为输出。在此行为之下是一种新颖的代理架构,它结合了大型语言模型与合成和检索相关信息的机制,以调节语言模型的输出。没有这些机制,大型语言模型可以输出行为,但由此产生的代理可能不会基于代理的过往经验做出反应,可能不

原文:
项目地址:

1. 背景目标:
如何创建能够模拟人类行为的可信代理。具体来说,这些代理能够在互动应用中模拟人类行为,如沉浸式环境、人际交流排练工具和原型设计工具。

2. 难点:
人类行为的复杂性和多样性,确保代理在长期内的一致性和连贯性,以及处理多个代理之间的级联社会动态。

2. 生成式代理架构

这篇论文提出了一种生成代理架构,用于解决人类行为模拟的问题。

生成型代理以当前环境和过往经验作为输入,生成行为作为输出。在此行为之下是一种新颖的代理架构,它结合了大型语言模型与合成和检索相关信息的机制,以调节语言模型的输出。
没有这些机制,大型语言模型可以输出行为,但由此产生的代理可能不会基于代理的过往经验做出反应,可能不会进行重要的推断,并且可能无法保持长期的一致性。
即便是在当今性能最强大的模型如GPT-4的情况下,长期规划和一致性的挑战仍然存在[19]。因为生成型代理产生大量必须保留的事件和记忆流,我们架构的核心挑战在于确保在需要时检索和合成代理记忆中最相关的部分。

​1. 记忆流(核心):

首先,论文描述了一个长期记忆模块,称为记忆流,它以自然语言的形式记录代理的所有经历。每个记忆对象包含一个自然语言描述、创建时间戳和最近访问时间戳。(如图)

特点:
数据量大,包含大量冗余信息。
数据可能与当前任务相关或无关。

挑战:
创建能模拟人类行为的生成代理需要推理超出提示应描述的一组经验,因为完整的记忆流可能会分散模型的注意力,而且当前甚至无法适应有限的上下文窗口。

2. 检索函数:

其次,论文介绍了一个检索函数,该函数根据代理当前的情况返回记忆流的一个子集。检索函数的评分基于三个主要组件:
​ Recency(近期性):最近访问的记忆对象得分较高。
​ Importance(重要性):代理认为重要的记忆对象得分较高。
​ Relevance(相关性):与当前情况相关的记忆对象得分较高。
图中根据检索分数,第一条信息的分数最高(2.34),因此被选为最相关的信息。

最近性:
最近性给予最近访问过的记忆对象更高的分数,因此来自一分钟前或今早的事件很可能仍处在代理的注意力范围内。在我们的实现中,我们把最近性看作是自从记忆最后一次被检索后,以沙盒游戏小时数作为指数衰减函数。我们的衰减因子是0.995。
重要性:
重要性通过给代理认为是重要的记忆对象分配更高的分数来区分平凡记忆和核心记忆。例如,像在房间里吃早餐这样的事件会得出一个低重要性分数,而与重要伴侣分手则会得出一个高分。重要性分数有许多可能的实现方式;我们发现直接要求语言模型输出一个整数分数是有效的。完整的提示如下:
在1到10的等级上,1代表纯粹平凡(例如,刷牙、整理床铺),10代表极其动人(例如,分手、大学录取),对以下记忆片段的可能动人程度进行评分。
记忆:在柳树市场与药房购买杂货
评分:
这个提示对于“打扫房间”返回一个整数值2,对于“邀请你的暗恋对象约会”返回一个整数值8。重要性分数是在创建记忆对象时生成的。
相关性:
相关性给予与当前情境相关的记忆对象更高的分数。什么是相关的取决于对“与什么相关?”的回答。因此我们将相关性条件限定在查询记忆上。例如,如果查询是询问一个学生正在和同学讨论化学考试应该学习什么,那么关于他们早餐的记忆对象的相关性应该是低的,而关于老师和学校作业的记忆对象的相关性应该是高的。在我们的实现中,我们使用语言模型来生成每个记忆文本描述的嵌入向量。然后,我们通过计算记忆嵌入向量与查询记忆嵌入向量之间的余弦相似度来得出相关性。

​3. 反思:

此外,论文引入了反思机制,定期将记忆合成为更高层次的推断。
反思通过查询大型语言模型生成候选问题,并收集相关记忆来支持决策。

反思机制的核心是将记忆合成为更高层次的推断,使代理能够基于更广泛的背景和抽象思考来做出决策。具体步骤如下:
​生成候选问题:代理通过查询大型语言模型,生成与其最近经历相关的候选问题。例如,如果代理最近帮助了一位邻居,候选问题可能是“你为什么帮助邻居?”
​收集相关记忆:针对每个候选问题,代理收集相关的记忆对象,这些记忆对象可能包括之前的类似经历、感受和反思。
合成推断:代理通过对收集到的记忆进行综合分析,生成更高层次的推断。例如,代理可能会推断出帮助邻居是一种有价值的行为,这种推断会增强其在未来类似情境下采取相同行为的倾向。

通过反思机制,生成代理能够从过去的经历中提取有价值的洞察,从而在复杂的决策环境中做出更合理的决策。

反思是由代理生成的高级、更抽象的想法。因为它们是一种记忆类型,所以在检索时它们会被包含在其他观察结果中。反思是定期生成的;在我们的实现中,当代理感知到的事件的重要性分数之和超过一个阈值(在我们的实现中为150)时,就会生成反思。实际上,我们的代理大约每天会反思两到三次。
反思的第一步是代理确定要反思什么,通过识别基于代理最近经历可以提出的问题。我们用代理记忆流中的最近的100条记录来查询大型语言模型(例如,“克劳斯·穆勒正在阅读一本关于城市更新的书”,“克劳斯·穆勒正在与图书管理员讨论他的研究项目”,“图书馆的桌子目前没有人”)并提示语言模型:“根据上述信息,我们能回答关于声明主题的三个最突出的高级问题是什么?”模型的响应生成候选问题:例如,克劳斯·穆勒热衷于什么话题?克劳斯·穆勒和玛丽亚·洛佩兹之间有什么关系?我们使用这些生成的问题作为检索查询,并为每个问题收集相关记忆(包括其他反思)。然后从特定记录中收集作为洞察证据的信息
反思明确允许代理不仅反思他们的观察结果,还反思其他反思:例如,关于克劳斯·穆勒的第二条声明是克劳斯之前有过的一个反思,而不是来自他环境的观察结果。因此,代理生成了反思树:树的叶子节点代表基本观察结果,而非叶子节点代表随着它们在树上的位置越高而变得更加抽象和高级的想法。Klaus Mueller 的反思树。代理对世界的观察(表示在叶节点中)被递归地综合起来,从而得出 Klaus 对自己高度致力于研究的自我认知。​认识到玛丽亚在投入自己的努力进行研究(尽管是在不同的领域),使得他们能够反思出他们有共同的兴趣。通过以下方法,当克劳斯被问到要和谁共度时光时,克劳斯选择了玛丽亚而不是沃尔夫冈。

4. 规划和反应:

原文的4.3 规划与反应,涉及到交互的考虑,可以读原文好好感受给到的例子

最后,论文描述了规划和反应机制,规划描述了代理未来的行动序列,反应则基于当前的观察来决定是否继续现有计划或做出调整。

挑战:虽然大型语言模型能够根据情境信息产生看似合理的行为(例如)在更长的时间范围内,代理人需要规划以确保他们的行动序列连贯且可信。如果我们以克劳斯的生活背景提示语言模型,描述时间,并询问他在给定时刻应该采取什么行动,克劳斯会在中午12点吃午餐,但之后又会分别在12点半和下午1点再次吃午餐,尽管他已经吃过两次午餐了。为了在当下优化可信度,会牺牲随时间的可信度。要克服这个问题,规划至关重要。通过下面描述的方法,克劳斯下午的计划不那么贪吃:他在12点时边阅读边在霍布斯咖啡馆吃午餐,下午1点在学校图书馆写研究论文,并在下午3点去公园散步休息。
方法:计划描述了代理人在未来的行动序列,并帮助保持代理人行为的一致性。计划包括一个地点、开始时间和持续时间。例如,克劳斯·穆勒致力于研究并且有一个迫在眉睫的截止日期,他可能会选择在办公桌前度过一天来起草他的研究论文。计划中的一个条目可能这样陈述:从2023年2月12日上午9点起,持续180分钟,在橡树山学院宿舍:克劳斯·穆勒的房间:书桌,阅读并为研究论文做笔记。像反思一样,计划被存储在记忆流中,并包含在检索过程中。这使得代理人在决定如何行动时可以综合考虑观察、反思和计划。如有需要,代理人可以中途改变计划。

第一步是创建一个概括当天日程的大纲性计划。为了制定初始计划,我们会用代理人的总结描述(例如,姓名、性格特征以及他们近期经历的总结)和他们前一天的总结来提示语言模型。

代理将此计划保存在记忆流中,然后递归地分解它以创建更细粒度的行动,首先将其分解为每小时长的行动块

生成型代理在一个动作循环中操作,在每个时间步骤,他们感知周围的世界,并将感知的观察结果存储在他们的记忆流中。我们用这些观察结果提示语言模型,决定代理是否应该继续执行现有的计划,还是做出反应。

时间是2023年2月13日下午4:56。
约翰·林的状态:约翰提前下班回家了。
观察:约翰看到艾迪在他的工作场所附近散步。
约翰记忆中相关背景的摘要:艾迪·林是约翰·林的儿子。艾迪·林一直在为他的课程创作一首音乐作品。艾迪·林喜欢在思考或听音乐时在花园里散步。
约翰是否应该对观察做出反应,如果应该,什么样的反应才合适?

如果行动表明代理之间有互动,我们会生成他们的对话。

代理在互动时进行交谈。我们通过根据他们彼此的记忆来调节话语来生成代理的对话。例如,当约翰开始与艾迪交谈时,我们会通过使用他对艾迪的总结记忆以及他决定询问艾迪关于他的创作项目时的预期反应来生成约翰的第一句话:

3. 实验设计数据收集:实验在一个名为Smallville的简单沙盒游戏环境中进行,该环境类似于《模拟人生》。代理是25个独特的角色,每个角色由一个简单的精灵头像表示。

2. 实验步骤:实验分为两个阶段:

​控制评估:在控制的评估中,单独评估每个代理在不同情境下的响应,以理解其生成可信行为的能力。​端到端评估:在端到端评估中,允许25个代理在两天内连续互动,观察其涌现行为、信息扩散、关系形成和代理协调。

​3. 参与者:为了评估代理的可信度,招募了100名参与者,他们观看了一个随机选择的代理在Smallville中的生活回放,并对不同条件下的响应进行排名。

4. 实验结果控制评估结果:完整的生成代理架构生成的行为最为可信,得分为29.89,标准差为0.72。移除每个组件后,性能都会下降。没有反思的架构得分最高,为26.88,没有记忆、反思和规划的架构得分最低,为21.21。没有反思(reflection)的架构在某些情况下得分较高,这可能是因为以下几个原因:
反思的复杂性:反思机制引入了更高层次的抽象思维,要求代理从他们的记忆中提取信息并生成更高级别的推断。这种高层次的推理可能会增加模型的复杂性和计算成本,导致在某些情况下表现不如简单的记忆检索。
记忆的直接性:在没有反思的情况下,代理依赖于直接的观察记忆来回答问题或做出决策。这种直接的方法可能在某些简单任务中表现得更好,因为它避免了高层次推理可能带来的错误。
模型的局限性:大语言模型(LLMs)在处理长距离依赖和复杂推理时可能会遇到困难。在没有反思的情况下,模型只需要处理最近或最相关的记忆片段,这可能更适合当前模型的能力范围。
评估问题的设计:评估问题可能设计得使得直接记忆检索比高层次推理更容易。例如,如果问题需要代理回忆具体的事件或对话,直接记忆检索可能更有效。

​2. 端到端评估结果:在两天内,代理社区中传播的信息从4%增加到32%,关系数量从0.167增加到0.74,至少有1.3%的代理对信息的回应是幻觉。在Isabella的派对上,有5个被邀请的代理实际出席。

​3. 错误分析:生成代理在记忆检索、反思合成和指令调优方面存在错误。例如,代理可能会虚构知识或过度合作。

来源:肥肥世界观

相关推荐