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 参与游戏,甚至同时参与多款游戏将会衍生出怎样丰富有趣的研究,值得期待。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot基于gRPC进行RPC调用

SpringBoot基于gRPC进行RPC调用 一、gRPC1.1 什么是gRPC?1.2 如何编写proto1.3 数据类型及对应关系1.4 枚举1.5 数组1.6 map类型1.7 嵌套对象 二、SpringBoot gRPC2.1 工程目录2.2 jrpc-api2.2.1 引入gRPC依赖2.2.2 编写 .proto 文件2.2.3 使用插件机制生产proto相关…

Xxl-job-admin 数据库使用DM8/达梦改造

Xxl-job 简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。 XXL-JOB-ADMIN 是针对分布式定时任务管理的Web管理平台,默认使用的数据库是MySQL 8版本。 业务背景 在项目中使用分布式定时任务调度框架:xxl-…

IDEA自定义setter和getter格式

设置之前 设置之后 设置方法 Alt INSERT选择生成Get/Set方法 1. 选择模板 2. 创建自己的模板 3. 模板内容 #if($field.modifierStatic) static ## #end $field.type ## #if($field.recordComponent)${field.name}## #else#set($name $StringUtil.capitalizeWithJavaBeanCo…

JAVA-作业8-编程实现以下功能

题目: 编程实现以下功能: 界面如下图所示; 当点击不同的按钮时,圆的填充颜色会随之改变; 用鼠标点击圆内部时,圆的 填充颜色会依照”面板背景色-红色-绿色-蓝色”循环改变; 鼠标移到圆内时,光标变成十字形; 代码如下: import java.awt.*; import javax.…

恒创:多链路负载均衡是什么意思

多链路负载均衡是一种网络架构技术,它通过将流量分散到多个网络链路上,以提高网络的性能和可靠性。这种技术可以应用于各种场景,如数据中心、云计算、企业网络等。 在多链路负载均衡中,流量被分配到多个网络链路上,以…

1.[BUU]test_your_nc

1.检查下载文件的类型 一般从BUUCTF下载的pwn文件一般是amd64-64-little或者是i386-32-little. 本题中,下载的test文件就为64位,放入对应64位ida中进行反编译,获得基础理解代码。 2.IDA反编译查看 将文件放入IDA中进行反编译查看&#xff0c…

JDK bug:ciObjectFactory::create_new_metadata

文章目录 1、问题2.详细日志3.JDK:bug最终bug链接: 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 Problematic frame: V [libjvm.so0x438067] ciObjectFactory::create_new_metadata(Metadata*)0x327 关键字还是ciObjectFactory::cr…

100GPTS计划-AI翻译TransLingoPro

地址 https://poe.com/TransLingoPro https://chat.openai.com/g/g-CfT8Otig6-translingo-pro 测试 输入: 我想吃中国菜。 预期翻译: I want to eat Chinese food. 输入: 请告诉我最近的医院在哪里。 预期翻译: Please tell me where the nearest hospital is. 输入: 明天…

【经典LeetCode算法题目专栏分类】【第6期】二分查找系列:x的平方根、有效完全平方数、搜索二位矩阵、寻找旋转排序数组最小值

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! X的平方根 class Soluti…

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图)

回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 (多指标,多图) 目录 回归预测 | MATLAB实现SABO-LSTM基于减法平均优化器优化长短期记忆神经网络的多输入单输出数据回归预测模型 &a…

海康视觉——当不更新拍照时,使用上一张的图像进行运算

一、需求: 机器需要一个功能,将标签贴在标签位置上 一个载具上有五个标签位,每个标签位只在Y轴间隔相同距离 相机只在第一个标签位才拍照,之后四个标签位根据第一个标签位的图像进行修正XYR后 直接移动Y轴距离就可以进行后四个…

SpringBoot中使用@Async实现异步调用

SpringBoot中使用Async实现异步调用 什么是异步调用?异步调用对应的是同步调用,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上 一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返…

lua语法

lua语法 1.lua数据类型 lua 脚本输出乱码,将lua脚本改为UTF-8编码,并且需要DOS下修改代码页:CHCP 65001 即可。 基本语法 注释 print("script lua win")-- 单行注释--[[多行注释]]--标识符 类似于:java当中 变量、…

MidJourney笔记(8)-ask和blend命令

经过前面的课程介绍,我相信大家对MidJourney有一定的认识,接下来就给大家介绍一下MidJourney的常用命令。 /ask 获取问题答案。 我一开始以为是随便问题都可以问,最后发现只能回答MidJourney相关的问题。 我们先试试一些日常生活问题: 今天天气如何? 以为它不会识别中文,…

【uniapp小程序-上拉加载】

在需要上拉加载的页面的page.json上添加红框框里面的 onReachBottom() {if(this.commentCurrent<this.commentTotal){this.commentCurrent 1; this.commentList();this.status loading;}else{this.status ;} }, methods:{commentList(){let params {courseid:this.cour…

Kafka Broker总体工作流程

上面是Zookeeper集群&#xff0c;下面是Kafka集群&#xff0c;两个集群通信&#xff1a; 1&#xff09;每台Kafka Broker节点启动之后&#xff0c;都会向Zookeeper进行注册&#xff0c;告诉他&#xff0c;我开启了。Zookeeper注册[0,1,2]&#xff1b;三台Broker启动之后&#x…

分布式理论 | RPC | Spring Boot 整合 Dubbo + ZooKeeper

一、基础 分布式理论 什么是分布式系统&#xff1f; 在《分布式系统原理与范型》一书中有如下定义&#xff1a;“分布式系统是若干独立计算机的集合&#xff0c;这些计算机对于用户来说就像单个相关系统”&#xff1b; 分布式系统是由一组通过网络进行通信、为了完成共同的…

Python如何画函数图像

1 问题 通过图像可以直观地学习函数变化&#xff0c;在学习函数等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。实现 yx*x 图象。 2 方法 用文字描述解题思路&#xff0c;可配合一些图形以便更好的阐述。解决问题的步骤采用如下方式&#xff1a; …

Selenium框架的使用心得(一)

最近使用selenium框架实现业务前端的UI自动化&#xff0c;在使用selenium时&#xff0c;有一些心得想要和大家分享一下~ Selenium是一款用于web应用程序测试的工具&#xff0c;常用来实现稳定业务的UI自动化。这里&#xff0c;不想对其发展历史做介绍&#xff0c;也不想用官方…

08‐Mysql全局优化与Mysql 8.0新特详解

文章目录 Mysql全局优化总结配置文件my.ini或my.cnf的全局参数最大连接数允许用户连接的最大数量MySQL能够暂存的连接数量JDBC连接空闲等待时长client连接空闲等待时长innodb线程并发数innodb存储引擎buffer pool缓存大小行锁锁定时间redo log写入策略binlog写入磁盘机制排序线…