在众多游戏类型中,开放世界游戏是非常受欢迎的一种,因为它允许玩家在一个引人入胜的虚拟世界中漫游,自由地去体验丰富的故事情节,同时完成一些复杂的支线、主线任务。这极大地满足了人的好奇心和探索欲。《荒野大镖客》、《GTA5》、《塞尔达传说》等大家耳熟能详的游戏都属于开放世界游戏。
在这类游戏中,非玩家角色(NPC)在推动剧情进展、提供任务与服务以及增强游戏的沉浸感和真实性方面发挥着至关重要的作用。不过,这些 NPC 的台词和行为模式往往是预先编写和固定的,所以在玩家与一个 NPC 多次交互时,可能会听到重复的台词,或者感觉 NPC 的反应非常机械,缺乏深度。因此,如何让 NPC 具备「随机应变」的能力一直是困扰游戏制作者的一大难题。
科幻美剧《西部世界》中的 NPC。
最近,很多研究者都在尝试将大型语言模型与游戏智能体结合起来,构建通用语言智能体,从而让 NPC 更加富于变化。然而,这些通用语言智能体在实际的开放世界环境中面临着巨大的挑战,包括但不限于解释复杂环境、记忆长期事件、生成与角色和环境设置相一致的表达方式,以及从与环境的交互中不断学习等。
为了解决这一问题,国内创业公司 MiAO 提出了一种名为 LARP(Language Agent for Role Play)的开放世界游戏角色扮演智能体框架。LARP 的重点是将开放世界游戏与语言智能体相融合,利用模块化方法进行记忆处理、决策以及从互动中不断学习。
论文地址:https://arxiv.org/pdf/2312.17653.pdf
项目地址:https://miao-ai-lab.github.io/LARP/
在智能体内部,他们设计了一个基于认知心理学的复杂认知架构,使 LARP 框架下的智能体具有较高的可玩性和独特性。为了获得更逼真的角色扮演体验,他们利用开放世界游戏环境的数据和上下文、事先设定的个性、知识、规则、记忆和后置约束对智能体进行了规范化,这可以看作是通用语言智能体中的一个特殊案例。对于通用智能体架构,它通常需要一个大规模的语言模型。然而,MiAO 的架构包含了一组较小的语言模型,每个模型都针对不同的领域进行了微调,以分别处理各种任务。这种设计为开发开放世界角色扮演游戏的语言智能体提供了新的经验和视角。
LARP 架构可以分为三部分:认知架构模块,包括长期记忆处理和可扩展的决策助手;环境交互模块,根据环境反馈学习和修改行动模式;以及后处理方法,将语言模型与各种性格对齐。其中,认知架构模块最为关键,它为长期记忆引入了向量语义和符号语言存储,通过自我提问构建了基于问题的记忆回忆方法,并进一步扩展了更详细的过程,如回忆记忆的重建和遗忘。
公开资料显示,MiAO 是一家游戏和社交平台,由前巨人 CEO 吴萌创立。这家公司的愿景是搭建一个多元化游戏 + 社交平台,推出一款主打多人玩法的开放世界体素游戏产品,提供以多人玩法为主的第一方内容,为玩家提供沉浸式游戏体验及服务。当拥有足够体量的用户基础之后,再逐步建立起玩家与创作者共生的平台生态。2023年3月,这家公司获得了红杉中国、高榕资本、Monolith 砺思资本的亿级天使轮投资。
以下是论文的详细内容。
认知架构
认知架构在开放世界游戏中充当着角色扮演语言智能体(role-playing language agent)的基本组件。该架构为智能体提供了一个逻辑框架并使智能体产生自我认知。认知架构如图2所示。
它包括四个主要模块:长期记忆、工作记忆、记忆处理和决策。其中长期记忆模块是主要的信息仓库,存储着大量的记忆;工作记忆充当临时缓存,主要应用于内存空间有限的场景;记忆处理模块是认知架构中最重要的单元;决策模块根据检索到的信息给出智能体的后续动作。
长期记忆模块
在认知科学中,长期记忆(LTM)包含两种类型的记忆:陈述性记忆和程序性记忆。
其中,陈述性记忆进一步又分为语义记忆和情景(episodic)记忆。
在开放世界游戏的背景下,语义记忆可以被视为包含游戏规则和与相关世界观一致记忆的部分。本文将语义记忆分为两部分,其中一部分通过外部数据库实现,另一部分以符号语言的形式存储在长期记忆模块中。
情景记忆是指个体经历的特定事件的记忆,这些记忆可以是与其他玩家或智能体相关的记忆。本文在长期记忆模块中采用了向量数据库来存储和检索这些记忆。由于记忆可能会被遗忘,因此本文还引入了相关的衰减参数,其相关性随着时间的推移而降低。
程序性记忆是指无需有意识思考即可执行的动作或技能,例如游泳、骑自行车等。这些具有动作属性的技能被表示为动作空间中的 API。
在长期记忆模块中,本文将所有的感知记忆分别存储在语义记忆区域和情景记忆区域中。本文提出了一种名为「基于问题的查询」的方法,该方法有利于回忆模块中语义记忆和情景记忆的检索,从而提高记忆利用的整体效率。
工作记忆模块
工作记忆主要保存在执行复杂认知任务(例如推理和学习)和交互任务时所需的观察信息和检索长期记忆。这些信息通常是通过智能体的观察以自然语言数据的形式由游戏方提供的。工作记忆作为一个数据缓存,系统可以从中提取信息并将信息放入提示的上下文中。
记忆处理
记忆处理模块主要负责对已存储和即将存储的记忆进行处理。
在 LARP 中,本文通过处理游戏中提供的所有结构化观察信息,将其与检索到的内容相结合,并将其存储在工作记忆中来模拟此过程。这些信息将作为决策模块中的输入,不断更新工作记忆中的内容。一旦工作记忆的长度达到一定阈值,就会触发反射,过滤掉无效记忆,将处理后的自然语言记忆和符号语言记忆分别存储为情景记忆和语义记忆。
决策过程
决策模块在观察和工作记忆的共同作用下产生最终决策。决策模块的核心部分是可编程单元的有序簇。每个单元都会处理工作记忆和上下文中的内容,并将结果实时更新到工作记忆中。
这些单元具有无限的可扩展性,可以处理不同类型的记忆处理任务。这些单元的执行顺序将由语言模型助手决定,决策模块的最终输出可以是 NPC 的任务或对话内容。
与环境的交互
图4为交互过程,如图所示「Interior(内部)」模块是指由观察和认知架构生成的工作记忆和根据当前情况需要执行的任务。动作空间(Action Space)是智能体在游戏世界中可执行动作的 API,包括公共 API 和个人 API。
当决策模块生成了规划后,该研究做的第一步是尝试将总体任务目标分解为多个子任务目标。对于每一个任务目标或者子任务目标,整个系统都会将其与工作记忆进行整合。然后,使用检索器分别在个人 API 库和公共 API 库中进行搜索。如果个人 API 库中已经存在该任务对应的动作,则立即执行该动作。否则,系统用整个动作空间和内部(Interior)内容完成相应的提示,以使用微调的 LLM 生成结构化代码。生成的代码块成功执行并进行验证后,以(Task,API)的形式作为新接口存储在个人 API 库中,以供将来使用。如果验证失败,则激活反射单元以生成新的代码块。
总结
最后,我们进行一个简单的总结。该研究表示开放世界游戏给语言智能体带来了新的挑战,如完成复杂的任务、连贯的故事情节和多样化的 NPC 行为。
为了解决上述问题,本文提出了 LARP,一个专为开放世界游戏量身定制的角色扮演语言智能体框架。LARP 由长期记忆、工作记忆、记忆处理和决策模块组成。在与环境的交互过程中,LARP 具有一个可学习的动作空间,该空间包含公共 API 和个人 API,可以通过强化学习进行扩展。为了实现角色多样化的个性,LARP 使用了针对不同视角和方言的微调模型。