用于通用游戏博弈的代码世界模型

Wolfgang Lehrach, Daniel Hennes, Miguel Lázaro-Gredilla, Xinghua Lou, Carter Wendelken, Zun Li, Antoine Dedieu, Jordi Grau-Moya, Marc Lanctot, Atil Iscen, John Schultz, Marcus Chiam, Ian Gemp, Piotr Zielinski, Satinder Singh, Kevin P. Murphy

Google DeepMind


摘要

大型语言模型(LLM)的推理能力正越来越多地被应用于经典的棋盘和纸牌游戏,但主流方法——通过提示直接生成走法——存在显著缺陷。它依赖于模型隐式且脆弱的模式匹配能力,导致频繁出现非法走法和策略肤浅的博弈。在此,我们引入一种替代方法:我们利用LLM将自然语言规则和游戏轨迹翻译成一个形式化的、可执行的世界模型,该模型以Python代码表示。这个生成的模型——包含了状态转换、合法走法枚举和终止检查的函数——作为一个可验证的模拟引擎,服务于像蒙特卡洛树搜索(MCTS)这样的高性能规划算法。此外,我们提示LLM生成启发式价值函数(以提高MCTS的效率),以及推理函数(以在不完美信息游戏中估计隐藏状态)。与直接将LLM用作策略相比,我们的方法具有三个明显优势:(1)可验证性:生成的CWM(代码世界模型)作为游戏规则的形式化规范,允许规划器算法性地枚举有效行动并避免非法走法,但这取决于合成模型的正确性;(2)策略深度:我们将LLM的语义理解与经典规划器的深度搜索能力相结合;(3)泛化能力:我们引导LLM专注于数据到代码的翻译这一元任务,使其能够更容易地适应新游戏。我们在10种不同的游戏上评估了我们的智能体,其中4种是为本文创建的新游戏。5种游戏是完全可观察的(完美信息),5种是部分可观察的(不完美信息)。我们发现,在所考虑的10个游戏中,我们的方法在9个中表现优于或持平于Gemini 2.5 Pro。

摘要解读 (高三通俗版):

想象一下,你想教一个超级聪明的AI(就是LLM,比如ChatGPT)下象棋或者打扑克。最直接的办法是把棋盘或牌局的现状告诉它,然后问:“你下一步该怎么走?” 这就是“提示生成走法”的模式。但这种方法有个大问题:AI有时候会犯规,比如让“马”走“日”字格之外的步,或者出一些不符合规则的牌。而且,它下棋通常只看眼前几步,缺乏长远的战略眼光,因为它主要靠的是模糊的“感觉”(模式匹配),而不是严密的逻辑推理。

这篇论文提出了一种全新的、更靠谱的方法。他们不再直接问AI“怎么走?”,而是给了AI一个更高层次的任务:“请你根据这些游戏规则的文字描述,以及几局游戏的实战记录,帮我写一个这个游戏的‘模拟器’程序(用Python代码)。” 这个程序就是所谓的“代码世界模型”(CWM)。这个“模拟器”非常关键,它能准确地告诉我们:在当前局面下,下一步有哪些合法的走法?走了某一步之后,局面会变成什么样?游戏什么时候算结束?

有了这个完美的“模拟器”之后,就可以把它交给一个专门搞“深思熟虑”的经典算法,比如“蒙特卡洛树搜索”(MCTS)。这个算法就像一个棋圣,它会利用模拟器在“脑中”疯狂推演成千上万种可能性,从而找到最佳的走法。这就好比,LLM负责“理解规则并制定蓝图”,而MCTS负责“基于蓝图进行精密的计算和规划”。

这种新方法有三大好处:

  1. 绝对不犯规:因为模拟器是代码写的,规则清清楚楚,所以推演出的每一步都是合法的。
  2. 想得更深:结合了LLM的“大局观”和MCTS的“计算力”,使得AI的决策更有战略深度。
  3. 学得更快:教AI写“模拟器”比教它“下棋”本身更容易触类旁通。学会了如何把规则变成代码,它就能很快地掌握一个全新的游戏。

实验结果证明,这种方法在10个测试游戏中,有9个都打败了直接下棋的顶级AI Gemini 2.5 Pro,显示了其巨大的潜力。

1. 引言

大型语言模型(LLM)在解决各种推理任务方面展现了令人印象深刻的能力,并且最近已被用作能够玩经典(通常是多玩家)游戏的“智能体”,如象棋、围棋,甚至像扑克和桥牌这样复杂的不完美信息游戏。标准方法是将LLM视为一个策略,通过使用基于迄今为止所见的观察和行动轨迹的提示策略,在每一步要求它选择一个走法,外加可选的关于游戏的文本元数据。这种方法将LLM视为一个端到端的“直觉型玩家”,利用其庞大的训练数据来识别模式并选择看起来有希望的走法。然而,战略大师通常需要深度的多步前瞻,这是“系统2”深思熟虑的特征(Kahneman, 2003)。尽管通过训练专业模型可以实现高水平的博弈(Ruoss et al., 2024; Schultz et al., 2025),但通用LLM的直接博弈通常缺乏深度战术远见,尽管最近在“思考”方面有所进步(Liao et al., 2025),正如我们在本文中通过经验证明的那样。此外,将LLM作为策略的方法在LLM训练集中未包含的新颖游戏上表现不佳,我们也将对此进行展示。

引言解读 (第一段):

AI(也就是LLM)现在越来越厉害,不仅能聊天写作,还能用来下象棋、打扑克。目前最常见的玩法是,把棋局情况告诉AI,让它直接说下一步怎么走。这就像一个凭“直觉”下棋的棋手,它看过无数棋谱,所以能凭感觉走出看起来不错的棋。这种依赖“直觉”的下棋方式,心理学家丹尼尔·卡尼曼称之为“系统1”思维——快速、自动、不费脑力。

但是,要想成为真正的象棋大师,光靠直觉是不够的,还需要“系统2”思维——缓慢、专注、需要深度思考和计算。比如,高手下棋会思考“如果我走这一步,对手可能会怎么应对,然后我再怎么走……”,这样深思熟虑好几步。现在的通用AI直接下棋,就缺少这种深度的战术计算能力。虽然有些最新的研究试图让AI“多想一会儿”,但效果还是有限。而且,如果让AI去玩一个它以前从未见过的全新游戏,它的“直觉”就完全失灵了,表现会很差。这篇论文就是要解决这个问题。

2. 背景

多人游戏中的互动可以用广义形式博弈(extensive-form games)的形式来描述(Kuhn, 1953; Shoham & Leyton-Brown, 2009; Albrecht et al., 2024; Murphy, 2025):有一组 $n$ 个玩家的集合 $\mathcal{N}=\{1,2,\cdot\cdot\cdot,n\}$,他们采取离散的行动 $a\in\mathcal{A}$。行动的序列被称为历史 $h\in\mathcal{H}$;所有游戏都从初始的空历史开始,并在终局历史 $\mathcal{Z}\subseteq\mathcal{H}$ 结束。有一个特殊的玩家叫做“机会”(chance),有时也叫“自然”(nature),用一个已知的、固定的(随机)策略——机会结果分布——来进行游戏,例如,代表掷骰子和抽牌。由于机会事件由游戏环境明确表示,每个历史 $h$ 都可以被看作是一个游戏(无论是已完成还是进行中)的唯一转录,并且是只有环境知道的“真实”状态。在每一个历史 $h$,都有一个要行动的玩家 $\tau(h)\in\mathcal{N}\cup\{c\}$ 和一个合法的行动集合 $\mathcal{A}(h)\subseteq\mathcal{A}$。在部分可观察(不完美信息)游戏中正式定义状态可能很棘手,我们将其推迟到附录B,以便与搜索方法(策略生成)的描述相结合。智能体编码策略以采取行动 $\pi(h)\in\Delta(\mathcal{A})$,其中 $\Delta(\cdot)$ 代表一个离散概率分布。对于每个智能体 $i$,目标是找到一个最大化其自身累积奖励 $\sum_{t=1}^{T}r^{i}(h_{t})$ 的策略。然而,在多智能体设置中,每个个体的目标共同取决于其他智能体的选择。

背景解读:

这一段是在用数学语言给“玩游戏”这件事下一个精确的定义,这对于计算机科学家来说是必需的,可以确保大家在同一个频道上讨论问题。我们把它翻译成大白话:

  1. 玩家 (Players) $\mathcal{N}$: 就是参与游戏的各方,比如下象棋的“帅”和“将”,或者斗地主的三个人。
  2. 行动 (Actions) $\mathcal{A}$: 玩家能做的所有可能操作,比如象棋里的“马走日”、“炮打隔山”。
  3. 历史 (History) $h$: 从游戏开始到当前时刻,所有玩家依次执行的行动记录。比如,“第一回合,红方炮二平五;黑方马8进7...”,这就是一个历史。整个游戏过程就是一条不断变长的历史记录。
  4. 机会玩家 (Chance Player) $c$: 这是一个虚拟玩家,代表游戏中的所有随机事件,比如打麻将摸牌、大富翁掷骰子。它的行为是纯随机的,不受任何人控制。
  5. 真实状态 (Ground Truth State): 由于有“机会玩家”的存在,完整的历史 $h$ 就代表了游戏唯一的、真实的当前状态。比如在德州扑克里,这个真实状态包括了你和对手的手牌以及公共牌,但你只能看到自己的手牌和公共牌。
  6. 轮到谁走 $\tau(h)$: 在当前的历史 $h$ 下,该哪个玩家(或机会玩家)行动了。
  7. 合法行动 $\mathcal{A}(h)$: 在当前历史 $h$ 下,轮到的玩家可以执行的合法操作集合。比如你的“马”前面有棋子蹩脚,那“马走日”就不是一个合法行动。
  8. 策略 (Policy) $\pi(h)$: 这就是智能体的“大脑”,它决定了在当前局面(历史 $h$)下,选择各种合法行动的概率。一个好的策略会给赢面大的行动更高的概率。
  9. 奖励 (Reward) $r^{i}(h_{t})$: 在第t步时,玩家i获得的分数。比如吃掉对方一个“车”,奖励就高;被“将军”,奖励就是负的。
  10. 目标 (Goal): 每个玩家的目标都是制定一个策略,让自己在整个游戏过程中获得的累计奖励总和最大化。但挑战在于,你的收益不仅取决于你的选择,还取决于对手的选择。

总而言之,这段话用一套严谨的数学符号,把一个动态的、多方参与的、可能包含随机性的游戏过程给“模型化”了,为后续的算法设计打下了理论基础。

方法一: LLM作为策略 (直觉型玩家) 游戏状态/历史 LLM (Gemini 2.5 Pro) ? 下一步怎么走? 直接输出走法 (可能犯规, 策略浅) 方法二: 本文提出的CWM (规划型玩家) 规则描述 (文本) 游戏轨迹 (棋谱) LLM (负责翻译) 请编写一个模拟器 代码世界模型 (CWM) (Python模拟器) 规划器 (MCTS) (深思熟虑的算法) 输出最优走法

图1: 两种方法的对比。 左图展示了传统方法,直接让LLM凭直觉下棋。右图展示了本文的核心思想,让LLM扮演“翻译官”和“架构师”的角色,将游戏规则翻译成一个精确的代码模拟器(CWM),然后由专业的规划算法利用这个模拟器进行深度推演,找出最佳走法。

3. 相关工作

人们对评估LLM玩游戏的能力越来越感兴趣,最近发布的Kaggle游戏竞技场¹以及其他近期工作(Costarelli et al., 2024; Duan et al., 2024; Verma et al., 2025; Hu et al., 2025a; Sun et al., 2025; Cipolina-Kun et al., 2025; Hu et al., 2025b; Guertler et al., 2025)都证明了这一点。与这些论文类似,我们的目标是设计基于LLM的、能玩基于文本的游戏的智能体。此外,像ggbench(Verma et al., 2025)一样,我们使用新颖的游戏来评估我们智能体的通用性,这些游戏(通过构建)对于LLM来说是分布外的(OOD)。然而,我们不是直接将LLM用作策略,而是专注于使用LLM生成一个CWM,然后我们对其应用标准求解器,如(IS)MCTS或PPO。

相关工作解读 (第一段):

这里是在回顾学术界已有的研究,相当于写论文时的“文献综述”。作者说,最近学术圈很热闹,大家都在研究怎么用AI(LLM)来玩游戏,还搞了专门的比赛平台(Kaggle游戏竞技场)。很多人都在做类似的事情:设计一个能玩各种游戏的AI。为了真正考验AI的“智商”而不是“记性”,研究者们还特意设计了一些全新的、AI肯定没见过的游戏(OOD,分布外数据)。到这里,作者说“我们和他们的目标是一样的”。

但是,作者紧接着指出了自己工作与众不同的地方:别人都是直接让AI当“选手”去下棋,而我们是让AI当“教练”和“工程师”,先去构建一个游戏的“模拟器”(CWM),然后再用成熟的专业算法(比如MCTS)来当“选手”,在这个模拟器里进行训练和比赛。这是方法论上的根本区别。

我们提出以一种不同的方式使用LLM,即作为可以利用其先验知识的归纳引擎,将少量观察到的轨迹(游戏玩法)数据,加上文本游戏描述,映射为合理的、以Python代码表示的世界模型,使用如Tang et al. (2024a)中的迭代代码优化方法。我们将此过程的结果称为“代码世界模型”(CWM)。在游戏博弈的背景下,CWM由(可能潜在的)状态的定义、一个指定每步合法走法的函数、一个状态转换函数、一个观察函数(用于潜在状态)、一个奖励函数和一个检查终止的函数组成。此外,对于部分可观察游戏的挑战性情况,我们引入了一种新颖的范式,有效地让LLM合成一个正则化的自编码器:一个推理函数(编码器)将观察映射到合理的潜在历史,而CWM(解码器)从它们重构观察,其中游戏的规则和API作为一个强结构化的正则化器。

方法论解读 (第二段):

这段详细阐述了他们是如何利用LLM的。他们不把LLM当成一个简单的“棋手”,而是把它看作一个强大的“归纳推理机器”。

  1. 输入:给LLM两样东西:(1) 游戏的文字规则说明书;(2) 几局实际的游戏记录(就像棋谱)。
  2. 任务:要求LLM基于这些输入,总结归纳出这个游戏的核心逻辑,并把这个逻辑写成一段Python代码。这段代码就是“代码世界模型”(CWM)。
  3. CWM的内容:这个代码包罗万象,定义了一个游戏所需的一切:
    • 状态(State): 如何表示当前的游戏局面(比如棋盘上棋子的位置)。
    • 合法走法函数 (Legal Moves Function): 给定一个局面,能列出所有符合规则的走法。
    • 状态转换函数 (State Transition Function): 走了某一步后,局面会如何变化。
    • 观察函数 (Observation Function): 在像扑克这样的游戏中,你只能看到部分信息(自己的牌),这个函数定义了你能看到什么。
    • 奖励函数 (Reward Function): 在某个状态下,你能得到多少分。
    • 终止函数 (Termination Function): 判断游戏是否结束(比如一方被将死)。
  4. 处理“不完美信息”的绝招: 对于像扑克这样有隐藏信息的游戏,他们想出了一个很妙的比喻。他们让LLM同时生成两个东西:一个“推理函数”(编码器)和一个“世界模型”(解码器)。“推理函数”负责根据你看到的部分信息(你的手牌、公共牌)去猜测对手可能的手牌(隐藏信息)。“世界模型”则反过来,根据猜测的完整信息,推断出你应该会看到什么。通过让这两个东西互相配合、验证,AI就能在信息不完整的情况下做出非常合理的推断。这就像一个侦探,根据有限的线索(观察),构建出最可能的作案过程(潜在历史)。

简而言之,他们让LLM从一个“运动员”升级成了一个“游戏设计师+裁判”,创造出一个可以完美模拟真实游戏的虚拟世界。

4. 方法

在一个高层次上,当面对一个新游戏时,我们的通用游戏博弈智能体遵循以下步骤:首先,它使用一个随机策略玩几局游戏直到结束。在每局游戏中收集的数据形成一个轨迹,该轨迹由每个时间步的观察、奖励、合法行动和状态组成。其次,它使用游戏的规则的文本描述,加上生成的轨迹,来学习一个 $CWM$。最后,该智能体在一个竞技场中与其他对手进行游戏,使用一个建立在合成CWM之上的MCTS策略。对于不完美信息游戏(IIGs),我们使用ISMCTS代替MCTS。如果所有合成的元素都是正确的,随着博弈时间的计算量增加,我们智能体的博弈行为会越来越接近最优。因此,与LLM作为策略的智能体相比,我们将LLM的负担从产生一个好的策略转移到产生一个好的世界模型,这反过来又使规划方法能够将计算转化为博弈性能。

方法解读 (高层次流程):

这里清晰地勾勒出了整个AI智能体的工作流程,可以分为三步走战略:

  1. 第一步:瞎玩几局,收集情报 (数据采集)

    面对一个全新的游戏,AI一开始完全是个新手。它会像个无头苍蝇一样胡乱走几步(使用随机策略),直到一局游戏结束。这个过程的目的不是为了赢,而是为了“录像”。它会把整个过程中的每一步——它看到了什么(观察)、走了哪一步(行动)、得到了什么结果(奖励)、以及游戏变成了什么样子(状态)——都完整地记录下来。这个“录像带”就是所谓的“轨迹”。

  2. 第二步:看说明书和录像带,写出游戏模拟器 (模型学习)

    接下来,AI进入学习阶段。它会拿到两份材料:一份是游戏的官方文字规则说明书,另一份就是刚刚“瞎玩”时录下的几盘“录像带”。然后,强大的LLM出场了,它的任务是结合理论(规则)和实践(录像带),写出一个能完美模拟这个游戏的程序,也就是我们前面提到的“代码世界模型”(CWM)。

  3. 第三步:用模拟器进行沙盘推演,然后实战 (规划与博弈)

    一旦有了这个精确的CWM模拟器,AI就从一个新手蜕变成了一个拥有“上帝视角”的战略家。在真正的比赛中,每当轮到它走棋时,它不会直接做决定,而是启动一个名为MCTS(或ISMCTS,用于扑克这类游戏)的超级规划算法。这个算法会利用CWM模拟器,在“脑内”进行成千上万次的模拟推演(“沙盘推演”),评估各种走法的优劣,最终选择那个胜率最高的走法。计算资源越多,它推演得就越深,下的棋就越接近完美。

核心转变: 传统方法是把所有压力都放在LLM身上,让它既要理解规则又要下出好棋。而新方法进行了一个聪明的“责任转移”:让LLM只负责它最擅长的事——理解语言并生成代码(构建世界模型)。而把“下出好棋”这个需要深度计算和规划的任务,交给了更专业的传统算法。这样分工合作,效率和效果都大大提升。

4.1 综合代码世界模型

一个CWM是一个可玩的、目标游戏的近似副本。它包含提供逻辑的函数,用于在采取行动时更新游戏状态(转换函数,包括终止)、给定状态下的合法行动、给定状态下的观察(在IIGs的情况下,观察和状态不同)、机会节点的分布以及状态的奖励函数。所有这些函数都是确定性的,随机性仅通过机会玩家的行动进入游戏。为了合成一个新的CWM,我们向LLM提供游戏的规则和离线轨迹,并要求它创建一个遵循OpenSpiel API (Lanctot et al., 2019) 格式的CWM。详见附录G的提示细节。

综合代码世界模型解读:

这一段深入解释了CWM到底是什么以及如何创造它。可以把它理解为“模拟器的详细规格说明”。

单次生成CWM通常不足以产生一个正确的游戏实现,除非我们加入某种纠正反馈。因此,我们将初始的CWM进行迭代优化(Dainese et al., 2024; Tang et al., 2024b)以提高其质量。为了优化,我们从离线轨迹中自动生成一系列单元测试。对于离线轨迹中的每一次转换,都会生成单元测试,以检查CWM预测的正确性(与原始轨迹的状态、观察、奖励、行动合法性相比),以及是否存在执行错误。

迭代优化解读:

让LLM一次性写出完美无瑕的代码是很难的,就像我们写作文,初稿总会有各种问题。所以,他们设计了一套“自动找茬和修改”的流程,叫做“迭代优化”。

  1. 生成“考卷” (单元测试): 他们利用已有的游戏“录像带”(离线轨迹)作为标准答案,自动生成大量的“考题”。每一道考题都是这样的:“在录像带的第5步,局面是A,玩家走了B,然后局面变成了C,获得了D奖励。请问,你写的CWM模拟器,在输入局面A和行动B后,输出的局面、奖励等信息,和录像带里的C、D是否一致?” 这就是所谓的“单元测试”。
  2. 进行“考试”: 让LLM写出的第一版CWM来做这份“考卷”。
  3. 批改和反馈: 如果CWM在某道题上“答错了”(比如模拟出的新局面和真实录像不符),或者程序直接崩溃了(执行错误),系统就会记录下这个错误。
  4. 要求“订正”: 系统会把详细的“错误报告”(比如哪里错了,期望结果是什么,实际结果是什么)连同CWM的源码一起,再次发给LLM,并要求它:“你上次写的代码有这些问题,请修改一下。”
  5. 循环往复: LLM会生成一个新版本的代码,然后系统再用同样的考卷去测试它。这个“考试-反馈-订正”的过程会不断重复,直到CWM能够完美通过所有“考题”,或者修改次数达到上限为止。

通过这种方式,CWM的质量被不断打磨,从一个充满bug的初稿,逐渐变成一个精确可靠的游戏模拟器。

4.2 为IIGs综合推理函数

我们工作的新颖之处之一是综合推理函数,以支持在不完美信息游戏(IIGs)的博弈时使用带有学习到的CWM的ISMCTS规划。要理解为什么这是必要的,请注意ISMCTS要求在每个游戏步骤t,智能体能够估计游戏的隐藏状态 $s_t$,如附录B中所解释。更准确地说,在博Git弈时,智能体 $i$ 必须能够从其信念状态 $p_M(s_t|o_{1:t}^i, a_{1:t}^i)$ 中采样,其中M是估计的CWM。由于精确推理在最坏情况下会产生指数级成本,我们要求LLM综合代码来近似地从后验分布中采样,仅利用智能体 $i$ 迄今为止从离线轨迹中得到的行动 $a_{1:t}^i$ 和观察 $o_{1:t}^i$。我们考虑两种替代方法来实现这一目标:隐藏历史推断和隐藏状态推断。我们将在下面描述这些方法。

为不完美信息游戏综合推理函数解读:

这一节开始处理一个非常棘手的问题:在像德州扑克这样的“不完美信息游戏”(IIGs)中,你不知道对手的底牌(隐藏状态)。

前面提到的那个厉害的规划算法ISMCTS,它要想工作,前提是你必须能告诉它:“根据我现在看到的情况(我的牌、公共牌、大家的下注记录),你帮我猜一下,对手现在最可能拿的是什么牌?” 也就是说,ISMCTS需要一个能根据“可见信息”来推测“隐藏信息”的工具。

精确地计算出所有对手可能的手牌以及对应的概率,在复杂游戏中计算量大到爆炸(指数级成本),是不现实的。所以,作者们再次求助于LLM,让它帮忙写一个“猜测”程序,这个程序就是所谓的“推理函数”。

任务: “请你写一个程序,这个程序只需要看我(玩家i)能看到的信息(我的观察 $o$ 和我的行动 $a$),然后给我一个对当前隐藏状态(比如对手的牌)的合理猜测(采样)。”

为了完成这个任务,他们提出了两种不同的“猜测”思路:

  1. 猜测整个过程 (隐藏历史推断): 不直接猜对手的牌,而是猜从游戏开始到现在,包括发牌员发牌、所有玩家(包括对手)下注的完整行动序列。只要猜对了整个过程,自然也就知道了对手的牌是什么。
  2. 直接猜测当前状态 (隐藏状态推断): 不管过程,直接根据我看到的信息,猜对手现在手里最可能是什么牌。

这两种方法各有优劣,下面会详细说明。

代码世界模型论文深度解读 (第6-10页)

5. 实验

遵循第4节中描述的方法,我们构建了一个名为CWM-(IS)MCTS的智能体,它执行CWM合成(使用开放牌组或封闭牌组轨迹),然后使用MCTS或ISMCTS进行博弈。(我们还尝试了使用PPO学习策略;详见附录D。)我们衡量了我们的智能体在多个游戏中对抗其他三个智能体的博弈能力:一个名为Random的随机合法行动执行者;一个可以访问游戏真实(GT)代码的(IS)MCTS智能体,包括推理函数但不包括价值函数,我们称之为GT-(IS)MCTS;以及一个作为策略的LLM,我们称之为Gemini 2.5 Pro(我们使用“动态思考”,而不是指定一个思考预算)。所有方法都可以访问相同的数据:游戏的文本规则和5个离线轨迹。(IS)MCTS方法在采取行动前总是运行1000次模拟,使用价值函数或10次推演(其中所有玩家都随机行动)来确定新叶节点的初始值。每个智能体的信息流草图见附录F。

实验设置解读:

这一段是介绍实验是怎么做的,就像是理科实验报告里的“实验步骤与材料”。

  1. 我们的选手:就是本文的主角,叫做 CWM-(IS)MCTS。它会先学习生成游戏的模拟器(CWM),然后用MCTS算法来下棋。
  2. 三个对手(对照组):为了证明我们的选手有多厉害,找了三个不同水平的陪练:
    • “萌新”选手 (Random): 它只会瞎走,但保证每一步都符合规则。用来测试我们的选手是否至少比瞎玩强。
    • “天花板”选手 (GT-(IS)MCTS): 这是一个开了“上帝视角”的选手。它直接拿到了游戏官方的、完美无误的模拟器代码(Ground Truth),然后也用MCTS算法下棋。它的水平基本上就是我们选手的理论上限,用来衡量我们的CWM学得有多好。
    • “直觉流”高手 (Gemini 2.5 Pro): 这是当前顶级的AI模型,直接让它凭“直觉”下棋。这是我们要挑战和超越的主要目标。
  3. 公平竞争:所有选手(除了“天花板”)都只给两样东西:一份游戏规则说明书和5盘棋的棋谱。
  4. 思考时间:CWM选手和天花板选手在决定走一步棋之前,都会在脑子里模拟推演1000次,确保深思熟虑。

总的来说,实验设计非常严谨,通过和不同水平的对手比较,可以全面地评估CWM方法的真实实力。

为了验证我们方法的通用性,我们使用了完美信息和不完美信息游戏,以及知名和OOD(分布外)游戏。完美信息游戏有:井字棋、四子棋、西洋双陆棋、通用井字棋(OOD)和通用象棋(OOD)。不完美信息游戏有:莱杜克扑克、谈判、金拉米、象限棋(OOD)和战争之手(OOD)。这些分布外(OOD)游戏是LLM训练集中没有的,由我们为这些实验创建。各游戏规则见附录H。

实验游戏选择解读:

为了全面“体检”AI的能力,他们挑选了各式各样的游戏作为“考卷”。

通过在这些类型多样的游戏上进行测试,可以充分说明他们提出的CWM方法不是只能在特定类型游戏上取胜的“偏科生”,而是一个具有普遍适用性的“全能选手”。

5.1 综合准确率

CWM智能体通过在玩游戏之前综合游戏的CWM(以及潜在的其他辅助函数)来运作,详见第4节。我们使用Gemini 2.5 Pro进行综合。综合过程中使用的具体提示见附录G。综合代码的示例见附录I。

优化过程试图增加通过单元测试的比例,迭代进行直到所有测试都通过或LLM调用预算耗尽。CWM通过的单元测试的比例是训练转换准确率,而推理函数通过的测试比例是训练推理准确率。为了检查是否对离线轨迹过拟合,在综合之后,我们在一个独立的测试集上测量准确率,该测试集包含10,000个转换,从100个游戏中随机抽样,其中每个玩家被随机分配一个随机策略或在真实游戏代码上运行的MCTS。这得出了测试转换准确率和测试推理准确率。测试集从不用于训练;而是用于估计学习到的CWM的准确率。最后,在与作为策略的LLM对战时,会观察到在线转换,并再次用于评估CWM和推理函数的准确率。

综合准确率评估方法解读:

在让AI上场比赛之前,得先评估一下它生成的“游戏模拟器”(CWM)质量如何。这里定义了三个衡量标准:

  1. 训练准确率 (模拟考成绩): 用来生成CWM的那几盘棋的录像带,既是“教材”也是“模拟卷”。看看生成的CWM能不能完美复现这几盘棋的每一步。这个分数高,说明AI至少把“教材”上的内容都学会了。
  2. 测试准确率 (大考成绩): 为了防止AI“死记硬背”,他们准备了一份全新的、AI没见过的包含10000步棋的“考卷”(测试集)。用这份考卷来测试CWM,得到的分数才真正反映了CWM的泛化能力,即它是否真正理解了游戏规则,而不是只记住了那几盘棋。
  3. 在线准确率 (实战表现): 在和Gemini 2.5 Pro真正比赛时,每走一步,都拿来和CWM的预测对照一下。这个分数反映了CWM在真实、复杂对抗环境下的可靠性。

对于扑克这类游戏,除了评估模拟器本身(转换准确率),还要评估那个“猜测对手底牌”的程序(推理函数)的准确率。评估方法也是一样的,分为训练、测试和在线三种。这一套严格的评估体系确保了他们对CWM的质量有全面客观的了解。

5.1.1 完美信息游戏

对于完美信息游戏,我们发现我们可以为所有游戏学习一个正确的CWM,并且最终学习到的模型具有很高的测试(泛化)准确率。对话和树搜索两种方法在这种设置下都工作得很好。附录C包含了精确的数字(分别为表4和表5),并展示了CWM随着LLM调用次数的增加而快速收敛(图6)。在本文的其余部分,我们将坚持使用树搜索,因为它回溯的能力使其在更困难的设置中具有额外的弹性。

完美信息游戏结果解读:

一句话总结:非常成功。对于像象棋这样规则明确、信息全公开的游戏,他们的方法能够非常轻松、快速地学习并生成一个几乎完美的“游戏模拟器”(CWM)。这个模拟器不仅能完美复现学习用的棋谱,在面对全新的棋局时也表现得非常准确(高泛化能力)。作者提到了两种优化代码的内部方法(“对话式修改”和“树搜索式修改”),发现两种效果都很好,但“树搜索”更强大一些,因为它允许AI在发现一条修改思路走不通时“反悔”并尝试其他思路,所以在更复杂的问题上更可靠。因此,后续实验都将采用“树搜索”方式。

5.1.2 不完美信息游戏,开放牌组

在不完美信息游戏(开放牌组学习)的情况下,我们发现学习到的CWMs的转换准确率非常高,除了金拉米(Gin Rummy),其训练准确率仅为84%,测试准确率为79%。详见表1。我们推测这是由于其高度的逻辑和程序复杂性。与规则更统一的游戏不同,金拉米涉及一个多阶段的计分阶段(敲牌、摊牌、计算废牌、检查是否有反超),这对于LLM来说,很难从少量轨迹中完美地用代码捕捉。这凸显了CWM综合的一个关键前沿:掌握具有复杂、多步骤程序子例程的游戏。

不完美信息游戏(开放牌组)结果解读:

这里的“开放牌组”是一个重要的前提,意思是:在AI学习阶段,虽然是玩扑克这种有隐藏信息的游戏,但我们暂时给它开了“天眼”,让它可以看到所有玩家的底牌。这就像教练复盘时,可以摊开所有牌来分析。目的是让AI先专注于学习游戏的基本规则流转。

结果:大部分游戏(比如扑克)的模拟器都学得很好,准确率很高。但是,在一个叫做“金拉米”的纸牌游戏上翻了车。为什么呢?因为这个游戏的计分规则太复杂了,包含了敲牌、摊牌、算分等好几个步骤,逻辑嵌套很深。LLM只看了几盘牌局,没能完全理解并写出这套复杂的计分程序。这说明,当前方法在处理这种程序逻辑特别复杂的游戏时遇到了挑战,这也是未来需要攻克的难点。

我们还测量了由合成推理函数获得的推理准确率。我们尝试了隐藏历史和隐藏状态推断两种方法(见第4.2节)。使用隐藏历史推断的结果(如表1和图1所示)稍好,因此这将是CWM-ISMCTS智能体的首选方法。(使用隐藏状态推断的结果在附录C,表6和图7中提供。)5个游戏中有3个的结果是好的,但我们再次看到金拉米的结果相当差(推理准确率仅约52%),在较小程度上,战争之手(推理准确率约94%),尽管战争之手的CWM准确率很好(约98%)。这表明,从完全观察到的轨迹序列中学习转换动态比推断隐藏历史要容易。

推理函数准确率解读:

这里评估的是那个“猜对手底牌”的程序(推理函数)的准确率。前面提到有两种猜测思路:“猜过程”(隐藏历史)和“猜状态”(隐藏状态)。实验发现,“猜过程”的效果总体上更好一些。

结果:大部分游戏的“猜测”程序都学得不错。但毫不意外,“金拉米”的猜测程序准确率非常低,只有52%左右,基本上是瞎猜。另一个新游戏“战争之手”,虽然游戏规则本身学得不错(CWM准确率98%),但“猜测”程序准确率也不算顶尖(94%)。

结论:这个结果告诉我们一个重要的事实:“猜别人在想什么”远比“搞清楚事情是怎么发生的”要难得多。 即使在能看到所有底牌(开放牌组)的情况下学习,让AI写一个能准确反推隐藏信息的程序,依然是一项巨大的挑战,尤其是在复杂游戏中。

5.2 竞技场:博弈表现

在本节中,我们测试了之前的综合结果如何转化为在我们的游戏竞技场中对抗其他对手的博弈表现。由于CWM综合过程是随机的,我们重复5次,自动拒绝差的样本(见附录E),并为每场比赛挑选一个随机的CWM。结果是100场比赛的平均值。

竞技场表现解读:

“是骡子是马,拉出来遛遛”。前面都是在评估AI写的“模拟器”本身质量如何,现在是骡子是马,要让它上场真刀真枪地比赛了。为了保证结果的公平性,他们会生成5个不同的模拟器,从中挑出好的,然后和每个对手打100局,最后取平均成绩。这确保了实验结果不是出于偶然。

5.2.1 完美信息游戏

我们所有的完美信息游戏都是三元结果游戏,所以我们仅限于赢、输或平(W/L/D)。图2显示了我们的CWM-MCTS智能体在作为玩家0或玩家1时,对抗三个不同竞争对手的表现。当一个玩家在规定时间内未能提供有效行动时,该玩家判为弃权。每个面板的中间一对条形图显示了CWM-MCTS对战GT-MCTS,这是一个使用游戏真实(GT)代码进行规划的性能上限。两个智能体同样出色,没有任何一个在任何游戏中明显胜出。这凸显了我们代码综合的质量。CWM-MCTS能够在所有考虑的游戏中击败作为策略使用的Gemini 2.5 Pro。详细数值结果见附录C的表7。我们为通用井字棋使用了一个合成的价值函数,无价值函数的消融实验见图9。

完美信息游戏比赛结果解读:

在象棋、四子棋这类信息全公开的游戏中,比赛结果非常亮眼:

另外,他们还尝试让LLM额外生成了一个“局面评估函数”(价值函数),发现在“通用井字棋”这个新游戏上效果很好,能帮AI更好地判断局势。这再次证明了LLM在辅助规划方面的多才多艺。

图2: 完美信息游戏 CWM-MCTS 对战结果 双陆棋 四子棋 井字棋 通用井字棋 通用象棋 vs Gemini vs GT-MCTS vs Random vs Gemini vs GT-MCTS vs Random vs Gemini vs GT-MCTS vs Random vs Gemini vs GT-MCTS vs Random vs Gemini vs GT-MCTS vs Random CWM-MCTS 作为玩家0 (先手) CWM-MCTS 作为玩家1 (后手)

图2的SVG复现: 此图展示了在五个完美信息游戏中,我们的CWM-MCTS智能体(作为先手和后手)与三个不同对手的胜/平/负(W/L/D)比率。绿色代表胜利,灰色代表平局,红色代表失败。可以看出,我们的智能体表现与理论上限(GT-MCTS)相当,并全面优于直接博弈的LLM(Gemini)。

6. 讨论

在这项工作中,我们通过考虑双人游戏、执行价值函数代码综合以提高玩家性能、引入“代码式推理”概念以在不完美信息游戏中进行状态估计,并提供一种学习算法(基于代码的自编码器)以在全新的封闭牌组(严格部分可观察性)设置中进行学习,从而扩展了现有的CWM框架。我们的结果显示了这种方法在多个完美和不完美信息游戏(包括新创建的游戏)中相对于作为策略的LLM的优越性。

讨论与总结 (第一段):

这里是论文的总结陈词,回顾了他们的主要贡献和创新点:

  1. 扩展到双人博弈: 将CWM框架成功应用于更复杂的双人对抗游戏。
  2. 价值函数综合: 创新地让LLM不仅生成游戏规则,还生成“局势判断”函数,让AI的规划更高效。
  3. 代码式推理: 提出了一个核心概念,即让LLM写代码来解决“猜对手底牌”这个棘手的推理问题。
  4. 攻克“封闭牌组”难题: 设计了一种全新的学习算法,让AI即使在完全看不到对手任何信息(封闭牌组)的情况下,也能学习游戏规则并进行推理,这是之前的工作没有解决的。

最终结论:实验结果雄辩地证明,他们这套“先建模,再规划”的架构,在各种游戏中都比直接让LLM下棋的“直觉流”方法要强大得多。

然而,我们也注意到我们的方法在学习金拉米(一种具有复杂逻辑的不完美信息游戏)的规则时遇到了困难,尤其是在极具挑战性的封闭牌组设置中。在未来的工作中,我们希望扩展我们的方法,以实现对世界模型的主动和在线学习,这样智能体可以更有效地发现每个游戏背后的真实隐藏因果机制(参见(Geng et al., 2025))。此外,我们希望将该技术扩展到处理具有自由形式文本和/或视觉界面的开放世界游戏,以便在更广泛的新颖游戏集上进行评估,参见(Ying et al., 2025)。

局限性与未来展望:

一篇优秀的科研论文不仅要展示优点,也要坦诚地承认当前的不足,并对未来进行展望。

参考文献

... (此处省略参考文献列表)