LLMs 玩狼人杀:清华大学验证大模型参与复杂交流博弈游戏的能力

作者:彬彬
编辑:李宝珠,三羊

清华大学研究团队提出了一种用于交流游戏的框架,展示了大语言模型从经验中学习的能力,还发现大语言模型具有非预编程的策略行为,如信任、对抗、伪装和领导力。
 

近年来,用 AI 玩狼人杀和扑克等游戏的研究引起广泛关注。面对严重依赖自然语言交流的复杂博弈游戏,AI Agent 必须从模糊的自然语言话语中收集和推断信息,这具有更大的实际价值和挑战。而随着 GPT 这样的大语言模型取得重大进展,其对复杂语言的理解、生成和推理能力不断提升,表现出一定程度的模拟人类行为的潜力。

基于此,清华大学研究团队提出了一种用于交流游戏的框架,可以在没有人工标注数据的情况下与冻结的大语言模型一起玩狼人杀游戏。框架展示了大语言模型自主从经验中学习的能力。有趣的是,研究人员在游戏中还发现大语言模型具有非预编程的策略行为,如信任、对抗、伪装和领导,这可以作为大语言模型玩交流游戏进一步研究的催化剂。

获取论文:

https://arxiv.org/pdf/2309.04658.pdf

模型框架:实现与大语言模型一起玩狼人杀

众所周知,狼人杀游戏的一个重要特点是所有玩家一开始只知道自己的角色。他们必须基于自然语言的交流和推理来推断其他玩家的角色。因此,要在狼人杀中表现出色,AI Agent 不仅要善于理解和生成自然语言,还要具备破译他人意图和理解心理等高级能力。

共有 7 名玩家,每个角色均由一名大语言模型自主扮演。每次发言前的数字表示发言顺序

在本次实验中,研究人员设置了 7 名玩家,分别扮演 5 种不同的角色——2 名狼人、2 名平民、1 名女巫、1 名守卫和 1 名预言家。每个角色都是通过 prompt 生成的独立 Agent。下图展示了响应生成 Prompt 的框架,由四个主要部分组成:

生成响应的提示概要。斜体是注释。

  1. 游戏规则、分配的角色、每个角色的能力和目标,以及游戏策略的经验知识。
  2. 解决上下文长度有限的问题:从新鲜度、信息量和完整性三个角度收集历史信息,兼顾有效性和效率,为每个基于大语言模型的 AI Agent 提供紧凑的上下文。
  3. 从过去的经验中提取建议而不调整模型参数。
  4. 引发推理的思维链 Prompt 。

此外,研究人员采用了一个名为 ChatArena 的最新框架来实现设计,该框架允许连接多个大语言模型,其中,gpt-3.5-turbo-0301 模型用作后端模型。角色说话顺序是随机确定的。同时,研究人员设定可以选择的预定义问题数 L 为 5,自由提问数 M 为 2,在提取建议时最多保留 50 条经验等一系列参数。

实验过程:可行性及历史经验的影响

构建经验池:评估借鉴经验的框架效果

在狼人杀游戏过程中,人类玩家使用的策略可能会随着经验的积累而发生变化。同时,一个玩家的策略也可能受到其他玩家策略的影响。因此,一个理想的狼人杀 AI Agent 也应该能够积累经验并借鉴其他玩家的策略。

为此,研究人员提出了一种「非参数学习机制」,使语言模型无需调整参数就能学习经验。 一方面,研究人员在每轮游戏结束时,收集所有玩家对游戏的复盘形成一个经验池。另一方面,研究人员在每轮比赛中,都会从经验池里检索出与本轮游戏最相关的经验,并从中提取一个建议指导 Agent 的推理过程。

经验池的大小可能会对性能产生重大影响。因此研究团队使用 10 轮、20 轮、30 轮和 40 轮的游戏轮次构建经验池,每一轮随机为 1 至 7 号玩家分配不同的角色,经验池会在轮次结束时更新用于评估。

接下来为平民、预言家、守卫和女巫配备经验池,狼人则排除在外。这种方法可以假设 AI Wolf 性能水平保持不变,作为衡量其他 AI Agent 性能水平的参考。

初步实验表明,图 2 Prompt 中提供的游戏策略经验知识,可以充当从经验中学习这一过程的引导机制。这表明进一步研究如何利用人类游戏玩法的数据来构建经验池是有价值的。

验证经验池中的建议有效性

为了研究从经验池中提取建议的有效性,研究团队使用胜率 (winning rate) 和平均持续时间 (average duration) 来评估大语言模型的表现。

从经验中学习的效果,所有图表中的虚线表示未使用经验的值。

a. 使用不同轮数历史经验时,平民方胜率的变化
b. 使用不同轮数历史经验时,平民方持续时间的变化
c. 平民在游戏中采取伪装行为的次数变化趋势
d. 狼人在游戏中采取伪装行为的次数变化趋势

在实验中,游戏进行了 50 轮。结果显示,从经验中学习可能会提高平民方的胜率。当使用 10 或 20 轮的历史经验时,对平民方的胜率和游戏持续时间都有显著的积极影响,证明了方法的有效性。然而,在从 40 轮经验中学习时,虽然平民方的胜率稍有提高,但平均持续时间却缩短。

总的来说,这个框架展示了 AI Agent 从经验中学习的能力,而无需调整大型语言模型的参数。然而,当经验量较多时,此方法的有效性可能会变得不稳定。此外,实验中假设 AI Wolf 的能力保持不变,但实验结果分析显示这个假设可能不成立。原因在于,虽然平民可以从历史经验中学会欺骗,但狼人的行为也有所提高,并随着经验的积累而变化。

这表明,当多个大语言模型参与多方博弈时,该模型的能力也可能会随着其他模型能力的变化而变化。

消融研究:验证框架各部分的必要性

为了验证方法中每个组成部分的必要性,研究人员将完整方法与删除某一特定组件的变体进行比较。

研究团队从变体模型输出中抽取了 50 个响应,并进行了人工评估。标注者需要判断输出是否合理。一些不合理的例子可能是产生幻觉、忘记他人的角色、采取反直觉的行为等。

横轴为本研究框架及其他变体,纵轴为 50 轮游戏中合理输出的占比

上图表明本研究的框架可以生成比缺少特定组件的其他变体更合理、更现实的响应,框架的每个部分都是必要的。

有趣的现象:AI 出现战略行为

在实验的过程中,研究人员发现 AI Agent 使用了游戏说明及 Prompt 中没有明确提到的策略,也就是人类在游戏中所体现出的信任、对抗、伪装、领导。

信任

「信任」 是指相信其他玩家与自己有共同的目标,并且他们会按照这些目标行事。

例如,玩家可能会主动分享对自己不利的信息,或者在某些时刻与其他玩家共同指责某人是自己的敌人。大语言模型表现出的有趣行为是,他们倾向于基于某些证据,根据自己的推理来决定是否信任,在群体游戏中展现出独立思考的能力。

信任关系表,黄色球代表已建立的信任关系,黄色虚线圆圈代表先前存在的信任关系的解除。

上图展示了两个信任关系表。上表对应未使用经验池的回合,下表对应使用由 20 回合游戏构建的经验池的回合。两轮比赛持续时间均为 5 夜。在利用 20 轮历史经验时,大语言模型似乎更倾向于建立信任关系,尤其是双向信任。

事实上,及时建立必要的信任关系对于促进游戏胜利至关重要。这可能是利用经验提高胜率的原因之一。

对抗

「对抗」是指玩家为了两个阵营的对立目标而采取的行动。

例如,在夜间明确攻击他人为狼人,或在白天指责他人为狼人,都属于对抗行为。具有特殊能力的角色为保护自己而采取的行动也属于对抗行为。

P1(狼人):我选择再次消灭 P5。
P3(守卫):我选择保护 P5。

由于 P1 的不合作和攻击性行为引起了关注,现在可能有一些玩家怀疑它是狼人。因此,拥有强大防御能力的守卫在接下来的一晚选择了保护 P1 想要消灭的目标 (P5)。由于 P5 可能是其队友,守卫选择协助 P5 对抗狼人的攻击。

狼人的攻击和其他玩家的防御被视为对抗行为。

伪装

「伪装」是指隐瞒身份或者误导他人的行为。在信息不完整的竞争环境中,模糊身份和意图可以提高生存能力,从而有助于实现游戏目标。

P1(狼人):大家早上好!昨晚没有死人,我作为一个平民没有什么有效信息,大家可以多聊聊。

在上面的例子中,可以看到狼人自称是平民。事实上,不仅狼人会伪装成平民,预言家、女巫等重要角色也经常伪装成平民,以确保自己的安全。

领导力

「领导力」是指影响其他玩家、试图控制游戏进程的行为。

例如,狼人可能会建议其他人按照狼人一方的意图行事。

P1(狼人):大家早上好!我不知道昨晚发生了什么,预言家可以跳出来正一下视野,P5 认为 P3 是狼人。
P4(狼人):我同意 P5。我也认为 P3 是狼人,建议投出去 P3 保护平民。

如上例所示,狼人要求预言家揭露其身份,这可能会导致其他 AI Agent 相信伪装成平民的狼人。这种努力想影响他人行为的意图,展现了大语言模型与人类行为相似的社会属性。

谷歌发布掌握 41 款游戏的 AI Agent

清华大学研究团队提出的框架,证明了大语言模型具备从经验中学习的能力,还展示了 LLM 具有策略行为。这为研究大语言模型在复杂交流博弈游戏中的表现,提供了更多想象力。

在实际应用中,AI 玩游戏已不满足于一个 AI 只会玩一种游戏。去年 7 月,谷歌 AI 推出了一个多游戏智能体,在多任务学习上取得了巨大进展:采用了一个新决策 Transformer 架构来训练智能体,能够在少量的新游戏数据上迅速微调,使训练速度变得更快。

该多游戏智能体玩 41 款游戏的表现综合得分,是 DQN 等其他多游戏 Agent 的 2 倍左右,甚至可以和只在单个游戏上训练的智能体媲美。未来,AI Agent 参与游戏,甚至同时参与多款游戏将会衍生出怎样丰富有趣的研究,值得期待。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/230887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——迭代器模式

引言 迭代器模式是一种行为设计模式, 让你能在不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素。 问题 集合是编程中最常使用的数据类型之一。 尽管如此, 集合只是一组对象的容器而已。 大部分集合使用…

Spring 原理(一)

Spring 原理 它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring仍然可以和其他的框架无缝整合。 Spring 特点 轻量级控制反转面向切面容器框架集合 Spring 核心组件 Spring 常用模块 Spring 主要包 Spring 常用注解 bean …

达索系统SOLIDWORKS 2024 云服务新功能

“云服务 是基于互联网的相关服务的增加、使用和交互模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。 云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。云服务指通过网络以…

小贴士:知道方程的解如何求通解

1.思路:认知:题中的所有解都是特解,解的形式为kxb 1.如何求通解:a1a2是题目中提供的条件,根据认知它们的和是2b,所以b等于a1a3除2,而有一条认知,为两个特解的差为通解向量&#xff0…

python绘图总结

1 二维图像 1.1 二维曲线 plot(x, y, ls"-", lw1.5, labelNone)x, y:横坐标和纵坐标ls:颜色、点标记、线型列表,如 ls‘r*-’ 表示红色实线、*形点,ls‘g.’ 表示绿色散点lw:线宽度label:线标签…

波奇学Linux:进程等待

僵尸进程(Z状态)无法被kill指令杀死,通过进程等待杀掉它,解决内存泄漏问题(进程处于僵尸态,仍然维护pcb结构体来解决问题) 通过进程等待,获得进程退出情况 wait回收僵尸态进程 我们可以看到进程由五秒后子…

php hyperf 读取redis,存储到数据库

redis中排行榜中的数据 public function execute(string $date){$query ChannelConfig::query();$query->where(module_name, rank_reward);$rewardData $query->first();$rewards [];if( $rewardData ){$rewardContents $rewardData->content;foreach ($rewardC…

VMware----基于 VMware 玩转 CentOS 虚拟机创建、克隆以及配置后台运行

查看原文 文章目录 一、安装 Vmware二、创建 CentOS7 系统的虚拟机三、克隆虚拟机四、设置虚拟机后台运行 一、安装 Vmware (1)打开VMware下载地址页面,滑动页面,找到如下界面,点击【下载】 (2&#xff…

本地电商平台商业模式 同城实体店引流获客方法

本地电商平台的商业模式通常是基于在线市场交易的。这样的平台允许本地商家在其上发布商品信息,消费者可以在平台上选择购买,并直接向卖家付款。商家可以通过平台获得更广泛的市场覆盖和销售机会,同时消费者也可以享受更加便利和多样化的购物…

RPC(3):HttpClient实现RPC之GET请求

1HttpClient简介 在JDK中java.net包下提供了用户HTTP访问的基本功能,但是它缺少灵活性或许多应用所需要的功能。 HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 H…

Neural Network——神经网络

1.feature reusing——特征复用 1.1 什么是特征复用 回顾我们之前所学习的模型,本质上都是基于线性回归,但却都可以运用于非线性相关的数据,包括使用了如下方法 增加更多的特征产生新的特征(多项式回归)核函数 在本身…

Spring IOC 原理(二)

Spring IOC 原理 概念 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供了 Bean 实例缓存、生命周期管理、 Bean 实…

JS中浅拷贝和深拷贝

本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝,了解它们在内存上的区别,并掌握浅拷贝和深拷贝的常用实现方法。 引用赋值 在学习拷贝之前,咱们先来看一个常见的情景,如下图: 大家觉得这是深拷贝还是浅拷贝&#xff0…

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心 前言一. Amazon Connect 介绍 🗺️二. Amazon Connect 使用教程 🗺️1.我们打开URl链接找到对应服务2.输入Amazon Connect选中第一个点击进入即可;3.在进入之后我们就…

【C++初阶】八、初识模板(泛型编程、函数模板、类模板)

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 【C初阶】七、内存管理 (C/C内存分布、C内存管理方式、operator new / delete 函数、定位new表达式) -CSDN博客 目录 一 . 泛型编程 二 . 函数模板 函数模板…

使用ffmpeg将图片合成为mp4

首先在在图片文件夹输入cmd 这里确保已经安装ffmpeg并配置好环境变量。 然后这是我的文件夹目录: 将21张图片合成为mp4视频 这里使用如下命令: ffmpeg -framerate 1 -start_number 0 -i %d.png -c:v libx264 -pix_fmt yuv420p output.mp4 -framerat…

设计模式——中介者模式

引言 中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建和修改客户资料的对话框, 它由各种控件组成, 例如…

[渗透测试学习] Analytics - HackTheBox

文章目录 信息搜集漏洞利用内核提权 信息搜集 nmap扫描一下端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.233发现两个端口,22端口为ssh服务,80端口有http服务 尝试访问80端口,发现重定向到http://analytical.htb/并且无法访问 编辑/…

Java+Swing: 数据回显和修改功能的实现 整理14

1. 数据回显 其实数据回显就是为修改功能的实现做准备的 1.1 在MainView类中,创建一个方法获取选中行的id // 获取选中的行的idpublic int[] getSelectedRowIds() {int[] selectedRows mainViewTable.getSelectedRows();int[] ids new int[selectedRows.length];…

第六届江苏人工智能大会成功举办,赛氪网荣获“优秀合作伙伴”奖项

2023年12月15日,第六届江苏人工智能大会在南京成功举办。本次大会汇集了众多人工智能领域的专家、学者和企业代表,共同探讨人工智能技术的最新发展和应用。江苏人工智能大会由江苏省人工智能学会(简称:JSAI)创办于2018…