惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

豆逗子的小黑屋

GEMINI-CLI settings 参数详情 使用 sing-box Tun 模式实现 V2rayU 的透明代理 浅析 Claude Code 的执行与提示词 多模态模型是如何处理和理解图片的? 从配料表出发:便秘的猫应该怎么选主食 盘点开源的 DeepResearch 实现方案 浅谈 DeepSeek-R1 和 Kimi k1.5 论文中的思维链 + 强化学习 使用 TiDB Vector 构建 LightRAG 知识库 从论文到源码:详解 RAG 算法 云南之行——游在大理食在昆明 浅入浅出 Rerank 模型 一年同行:我的TiDB社区之旅 读书笔记《大语言模型》 TiDB Vector + Dify 快速构建 AI Agent HTTP/2 和 CONTINUATION Flood 混合专家模型 (MoE) 笔记 报告分享: IMF第四次磋商报告 和 美联储研究笔记 使用 Coze 搭建 TiDB 助手 2023年总结 读书笔记《大规模语言模型:从理论到实践》 TiDB知识点梳理 (PCTA 笔记) 向量相似性检索方法 Java & Go 线程模式对比 Hugo + umami 博客统计面板 资产配置 101 探究 Spring-Boot 内置Server 搭建Go版本Kubernetes微服务示例 为什么Spring可以“自己注入自己” Go语言指针性能 从固定走向浮动 ——《时运变迁》读书笔记 Netty 源码分析及内存溢出思路 博客搭建简述 推荐 笔记 看得见的手——《置身事内》读书笔记 2022年初读书回顾 荐书:《走出唯一真理观》 nintendo switch 关于 邮箱
基于 LLM 推动游戏叙事
2024-05-23 · via 豆逗子的小黑屋

引言 #

日前微软研究院在 arxiv 发布了一篇名为 Player-Driven Emergence in LLM-Driven Game Narrative 的论文,讨论了将大模型 LLM 应用在玩家和 NPC 中的对话,以此对游戏中的对话和叙事结构提供更多的灵活性和丰富度。

Dejaboom! #

论文中的研究者门开发了一款用 TextWorld + GPT-4 实现的名为 Dejaboom! 的文字解密游戏。

在游戏中玩家会重复经历相同的一天。每天从家里醒来,通过探索村庄或和NPC对话来消耗步数并尝试。当步数达到30步时,炸弹会爆炸,爆炸后会回到一天的开始并重置村庄和NPC。

下面是这个游戏的地图:

map.png

地点和物品 #

这个游戏包括了6个地点:家、公园、图书馆、餐厅、铁匠铺和市政厅,还有了两个隐藏房间,分别位于铁匠铺和图书馆。隐藏房间需要特定事件来触发,并且炸弹就藏在铁匠铺的隐藏房间中。

玩家可以自由移动,同时可互动的物品有两类:拆炸弹的组件(家里的水桶、公园的红石火炬、铁匠铺里的剪刀)和 提供线索的物品(图书馆里的拆弹器工具箱、市政厅里的地图)。

NPC #

除了上述外,游戏还设置了5个NPC角色:

  • Mrs. Thompson:一个在住宅街遛狗的老妇人,她是激活公园里 Mad Hatter 的关键人物。
  • Mad Hatter:来自爱丽丝梦游仙境的角色,他知道炸弹的位置,但是隐藏在公园的需要和 Mrs. Thompson 交谈后激活。
  • Chef Maria:她是餐厅的厨师,她会提供 Merlin 和 Moriarty 的位置。
  • Merlin:来自亚瑟王的角色,在图书管理的隐藏房间里。他是制造炸弹的人,并且有拆弹器工具箱。
  • Moriarty:来自福尔摩斯的角色,他在市政厅,并且是整个事件的幕后策划者。就是他让 Merlin 制造的炸弹。

这里 NPC 的对话内容是通过 GPT-4 生成的,每个 NPC 都被赋予了一个背景故事、个性和对话触发的一系列条件。

解谜 #

对于玩家来说,主要有两个目标:

  1. 找到炸弹的位置:玩家需要先找到 Mrs. Thompson,并说服她透露 Mad Hatter 的位置。其次需要找到 Mad Hatter,他会给玩家一个谜题,解开他就能知道炸弹在铁匠铺的隐藏房间。
  2. 获取并组装拆炸弹的工具:玩家有两种方式可以找到:第一种是收集拆弹工具所需要的 3 个物品;第二种是是和厨师 Maria 交谈,解锁 Merlin 的位置,然后劝说 Merlin 将解锁的工具包交给你。

与大模型的交互 #

如下图。用户的命令首先会通过 GPT-4 被意图识别(function calling) 为用户动作 或 与NPC对话。

如果用户触发了一个动作,这个动作会被传递给一个固定的游戏代理,可以理解为一段固定的执行逻辑。然后会将这段逻辑执行的结果传递给 GPT-4, GPT-4 会根据执行结果生成一个比较合适的游戏反馈。例如用户“追逐小鸟”,游戏内部的执行逻辑认为这个动作无法识别或者是非法的,然后将这个信息交给 GPT-4, GPT-4 总计后返回 “你试图追逐鸟儿,但什么也没发生”。

如果用户触发了一段对话,这个对话会给到 GPT-4,需要注意的是在这里调用 GPT-4 的时候会根据用户对话的 NPC 人设、游戏背景、和 NPC 的对话历史等信息来生成适当的 NPC 对话。例如用户对厨师 Maria 说 “我可以看看你的菜单吗”,厨师 Maria 根据GPT-4生成的回复是 “当然可以!我们今天的菜单特色是意大利-美国融合菜系的美味选择”。

flow.png

用户体验 #

论文团队找了28个人设限1小时体验游戏。经统计,玩家平均做了75步,按照30步炸弹爆炸的设定,每个玩家平均完了2.5次。28个玩家中有六人解除了炸弹。

我们收集了一些玩家称赞的点:

  1. 20% 的玩家认为游戏提供了更加灵活的命令选择和错误纠正能力
  2. 20% 的玩家认为 NPC 进行了真实且有趣的对话
  3. 10% 的玩家认为可以使用自然语言而不是特定关键词来探索游戏
  4. 由于游戏的灵活性,玩家认为可以创造“自己的”冒险体验
  5. 即使每次爆炸后游戏会重置,但是玩家不会完全重复欣赏一遍
  6. 56% 的玩家认为游戏中最新颖的部分是与 NPC 互动的流畅性

玩家也指出了一些改进点:

  1. 40% 的玩家都提出了延迟问题—— 大模型响应慢
  2. 10% 的玩家发现角色前后的不一致性——大模型丢失上下文关系
  3. 10% 的玩家发现NPC回应重复——prompt 提示词设置的过于保守
  4. 14.28% 的玩家希望 NPC 可以更加神秘——prompt 提示词导致在个别情况下 NPC 透露太多信息

游戏叙事的涌现 #

论文作者分析了 28 位玩家的日志,这些日志包括玩家在游戏中的行为、游戏反馈、对 NPC 的发言、NPC 的回应,并用 GPT-4 将游戏日志转化为叙事图。叙事图是一个有向无环图,每个节点代表玩家在游戏中的策略,有向边代表游戏中的时间推进。

通过玩家的叙事图和游戏设计师预期的叙事图对比,以此发现在使用了大模型的情况下玩家创建的新叙事节点,这被称为叙事的涌现。

以下是论文作者们整理的有向无环图。其中蓝色节点代表设计师预期内的游戏叙事,绿色节点代表玩家创建的新节点,即涌现的节点。

对于具体如何构建叙事图,可以详看论文 https://arxiv.org/abs/2404.17027

叙事图.png

总结 #

目前 LLM 大多被用在文本游戏中,例如本论文主要集中在辅助用户游玩上,LLM 的灵活性让 NPC 的回答更多样、玩家的选择更自由等等。对于论文中提到的 LLM 延迟的问题,也许可以通过量化模型来解决;对于前后不一致的问题,目前越来越多的 LLM 开始支持超长上下文,基本也不会是问题。

除了我这里说到的在线任务,目前也有很多研究员在探索离线场景,如生成 NPC 脚本、叙事场景、对话、游戏关卡,或者用 LLM 驱动 NPC 等等。

最后个人感觉也许 LLM 在 rogue-like 类型的游戏也许会有一个不错的发挥。

参考 #

https://github.com/microsoft/TextWorld

https://github.com/microsoft/jericho

https://arxiv.org/abs/2404.17027