# 诺姆·布朗：扑克中 AI 与人类的对抗及策略性谈判博弈

> OpenAI 研究者诺姆·布朗讲扑克 AI 的训练思路、博弈论基础与机器在谈判类任务中的推理。

- 原标题：#344 – Noam Brown: AI vs Humans in Poker and Games of Strategic Negotiation
- 期数：第 344 期
- 发布日期：2022-12-06
- 嘉宾 / 主题：诺姆·布朗：AI 与博弈
- 网页版：https://lexfridman-cn.pages.dev/ep/noam-brown/
- 官方页面：https://lexfridman.com/noam-brown/
- 精读字数：约 7199 字（阅读约 16 分钟）

> 本文为 lex.qiaomu.ai 基于原始访谈的 AI 改写中文精读，非官方翻译；引用请注明出处并链接网页版。

2017 年 1 月，匹兹堡。一台叫 Libratus 的机器，在 20 天里跟四位世界顶级单挑无限注德州扑克（No Limit Texas Hold'em）选手打了 12 万手牌，赢走了接近 200 万美元的筹码。

同一批人，2015 年也打过一场。那次机器输得很难看，差距不小。

两年时间，对手没换，规则没换，赌注没换。变的是算法里一个很具体的选择，而这个选择后来被证明，比多算几百万手牌重要得多。

Libratus 是拉丁语，意思是"平衡"。名字是诺姆·布朗（Noam Brown）起的。他当时在卡内基梅隆读博，现在是 Meta AI（原 FAIR）的研究科学家。他参与打造的三个系统，构成了这条研究线的三级台阶：Libratus 打赢双人无限注德州扑克，Pluribus 打赢六人局，Cicero 在《外交》（Diplomacy）这个靠自然语言谈判推动的桌游里达到人类水平。

表面上这是三个游戏。往深了看，这是同一个问题的三种难度：信息不完全、对手会思考、对手还会说话。

## 无限注的真正区别，藏在人的心理阈值里

无限注德州扑克是全世界最流行的扑克变体。电影里那些场景，《007：大战皇家赌场》《赌王之王》，桌上玩的都是它。

跟限注版本比，规则差异只有一句话：你可以在任何时候把面前所有的筹码推进底池。限注局里底池有 2 美元，你最多只能下 2 美元。无限注局里，面前摆着 1 万美元，你就随时可以推 1 万美元进去。

开局底池可能只有一两美元，一手牌打完，桌上可能已经有 1000 美元。筹码量能以极快的速度放大，这个选项永远摆在桌上。

布朗提到一个词，jumpy，大致可以译成"跳脚"。很多人在无限注里输钱，输在这个地方：坐下的时候想的是玩个一百美元，打了两圈，底池突然变成一千美元，手就开始抖，判断就开始变形。

他自己给了一个很生活化的解释。打扑克你要选的，是期望值最大的那个动作。这跟投资是一个逻辑：如果桌上这笔钱的输赢会实质影响你的生活，你就会不自觉地转向风险厌恶。对手推一个大注过来，你脑子里冒出来的第一句话往往是"这太多了，我承受不起"。这一瞬间，你已经不在算牌了。

反过来，主动推大注的人也吃同一碗饭。**扑克的核心策略之一，就是把对手放进一个不舒服的位置。**底池里躺着 50 美元，你甩进去 1000 美元，如果时机选对，对手就被迫在一个他从来没准备好面对的量级上做决定。

这件事当然双向。推错了，你也会输掉一大笔。布朗说得很直白，不懂行的人在无限注里亏钱非常容易，但反过来，上升空间也大。

所以"无限注奖励疯子"这个说法只对了一半。它奖励的是那种能精确控制自己疯狂频率的人。真正被惩罚的，是承受不了那个数字的人。

## 纳什均衡：石头剪刀布里藏着的那个真理

任何有限的、双人的、零和博弈，都存在一个最优策略。你按它打，不管对手做什么，期望上你不会输。

这个结论对很多人来说是反常识的，但它在象棋里成立，在扑克里成立，在所有满足条件的双人零和博弈里都成立。

布朗用石头剪刀布给直觉。你按相同概率出石头、剪刀、布，对手怎么出都无所谓，长期下来你不会亏。

扑克同理。存在一套非常复杂的策略，按它打，长期你不会输钱，实际对局里大概率还会赢。

"期望"这个词要拆开看。扑克方差极大，你会赢一些牌，也会输一些牌，就算打的是完美策略，也没法保证每一手都赢。打得足够久，至少不亏，通常还会赚。这个"期望"讲的是筹码量长期的变化，它不含一个现实约束：你会不会中途破产。理论上你不会，现实里你可能已经没钱上桌了。

"有限"这个条件其实很宽松。大多数游戏本来就是有限的，很多无限游戏里也存在这套完美策略，只要满足紧致性一类的技术条件。真有反例，比如那个著名的小游戏：谁报的数字大谁赢。这个游戏没有纳什均衡。访谈里两人还当场玩了一把，莱克斯喊 17，布朗喊 18，赢了。

"零和"这个条件更关键。我赢 50 美元，就意味着你输 50 美元，总量守恒。

一旦走出双人零和，纳什均衡依然存在，但它的意义大打折扣。布朗举了《风险》（Risk）这个游戏：如果桌上其他所有人商量好了联手先把你灭了，你没有任何一套策略能保证自己赢。你做什么都没用。

六人扑克也在这条线上。它依然是筹码守恒的，但三个以上玩家同场，纳什均衡给不了你"不会输"的保证。**双人博弈里，策略是你的护城河；多人博弈里，别人的联合才是你的天花板。**

这也解释了一件很多人没意识到的事：为什么扑克 AI 的进展顺序是先双人、后六人。Pluribus 打赢六人局发生在 Libratus 之后，间隔一年多。技术上六人局的复杂度高得多，但更大的障碍在于，理论保证在多人局里消失了，你没法再声称自己"不可被击败"，只能声称自己在实战里赢了。

## 反事实遗憾最小化：把"如果我当时"算到底

怎么找到那个均衡？布朗团队用的是自我对弈（self play）。

算法一开始完全随机地打牌，打到一手牌结束，赢了 50 美元，然后回头复盘：如果我当时选另一个动作会怎样？如果我在这一步加注而不是跟注，对手会怎么反应？因为对面坐的是自己的副本，这个反事实推理做得出来。它会算出"如果我这么走，对手那么走，我再这么走，最后能赢 150 美元而不是 50"。

然后它更新那个动作的后悔值（regret）。后悔值大致等于：过去没打这个动作，我有多后悔。下次遇到同样的局面，后悔值高的动作被选中的概率就更高。

这个过程反复跑，后悔值不断累积。按正确的方式把高后悔值动作的概率提上去，数学上可以证明它会收敛到纳什均衡。哪怕是不完全信息博弈，结论照样成立。

这个方法叫反事实遗憾最小化（counterfactual regret minimization，CFR）。它不必然绑定自我对弈，只是自我对弈是它最自然的实现方式，也是一种有理论保证的强化学习。

布朗特意点了一句：这套东西跟人类学牌的方式非常像。你跟朋友打完一手牌，会问一句"如果我在转牌加注，你会跟吗"。这就是在做反事实推理，跟算法干的事一模一样。规模放大到千万手，你就能逼近一套最优策略。

这里有个细节值得技术人留意。CFR 的强项不只是"会学习"，而是"有证明"。在完全信息博弈里，你甚至不需要这么严密的算法，随便来点蒙特卡洛树搜索加上自我对弈就能收敛。一旦进入不完全信息，理论的严密性就变成了必需品，随手的工程手段会直接失效。

## 10 的 161 次方：为什么需要神经网络

问题在于，无限注德州扑克的决策点数量大概是 10 的 161 次方。宇宙里的原子数大约是 10 的 80 次方，平方一下是 10 的 160 次方。这个游戏的规模比"宇宙原子数的平方"还大一截。

你不可能遍历所有局面。你也不可能指望再次遇到完全相同的局面，概率低到可以忽略。神经网络解决的是"相似"：遇到一个没见过的局面，它可以从见过的、结构类似的局面里泛化，把那些局面上积累的后悔值迁移过来。

布朗补了一句，这个数字还取决于筹码量怎么设置，不同版本会有出入。但量级摆在这里，多一两个数量级不改变结论。

训练用的版本里，机器自己的下注尺度是有约束的，它只在一个有限的候选集里选。但对面的真人选手不受这个限制，想推多少推多少。这构成了一个不对称：对手可以出招到你的搜索空间之外，你不能。所以搜索模块必须能处理"预期之外的输入"，这跟很多工程系统面临的处境是一样的。

## 扑克和象棋，哪个更难

这是个会吵起来的问题。布朗的回答很干脆：扑克。他还开了个玩笑，说这个答案大概会让 DeepMind 的大卫·席尔瓦（David Silver）不太高兴。

不完全信息是第一个理由。德州扑克里，你拿到两张牌，只有你能看见；对手也拿到两张，只有他能看见。你打牌的时候得同时算四件事：他以为我有什么，我有什么，他有什么，他以为我以为他有什么。

诈唬能成立，全靠这个不对称。你手里的牌很烂，但你下注，对手不知道，你就有可能赢下这一手。

第二个理由更微妙，也更值得琢磨：**在不完全信息博弈里，策略不只是"打哪个动作"，还包括"以多大概率打这个动作"，而概率本身决定了这个动作的价值。**

回到石头剪刀布。你每次都出石头，对手很快发现规律，你的石头就不值钱了。你几乎从不出石头，只出 1% 的时候出，对手大概率在出剪刀，这时候你石头的价值高得离谱。

平移到扑克：你从来不诈唬，名声在外，某一天突然诈唬一次，成功率极高，赚得很多。反过来，你被人看出是个诈唬惯犯，你一诈唬就被人跟到底，你会输得很惨。找到那个诈唬频率，就是扑克的核心难题。

象棋里没有这回事。你十次开局走王后弃兵，还是一百次走王后弃兵，这个动作的期望值不变。

所以扑克的算法要解决的是两件事：每个动作值不值得打，以及每个动作该用多高的频率去打。后一件才是真正难的地方，也是前面那些 CFR、搜索、神经网络存在的理由。Libratus 这个名字取"平衡"，就是因为它被设计成去找那个频率上的平衡点。

频率不只管诈唬。下注多少、用哪些牌下注、大注还是小注，全都是频率问题。所谓"范围"（range）这个概念就来自这里：你在某个位置诈唬的时候，不希望对手能抓到规律，所以你得同时想"如果我手里是好牌，我会不会也这么打"。你的动作要能被对手映射到很多种手牌，这个动作才够好。

这套"我知道你知道我知道"的推理，在成功的扑克 AI 里是被显式建模的。共同知识的信念状态，被直接写进了算法。它没有从对局里自己涌现出来。

## 12 万手牌，200 万美元，和 2015 年那场惨败

布朗读博期间，每年有个"计算机扑克竞赛"，全世界做扑克 AI 的实验室带着自己的机器人来对打。他们的机器人赢了 2014 年和 2016 年的比赛。

他们决定把这个东西推到真人顶级选手面前。四位专精单挑无限注德州扑克的世界级选手，20 天，12 万手牌，20 万美元奖金池，按四个人互相之间的相对战绩分配，目的是让他们有动机认真打。

这不是他们第一次干这件事。2015 年，团队带着当时的版本跟职业选手打过一场，输得很明显。

从 2015 到 2017，改进的核心在算法层面。

2015 年的思路是"先把整个游戏解出来"。赛前把能算的算完，做成一张巨大的查询表，实战时遇到什么局面就查表。

2017 年的思路转向实时搜索。赛前那张表只作为起点，每次真正做决策的时候，现场再算一遍：针对当前这个具体局面，重新求一个更好的策略。

听起来像工程优化，实际上是范式差异。查表意味着你把计算预算花在赛前，把所有可能性都铺平；实时搜索意味着你把预算花在当下这个点上，只算眼前这一步。前者在遇到表外局面时会直接崩掉，后者天然有应对空间。

搜索空间长什么样？象棋里的搜索是你在这个局面下能走哪些棋，走完之后局面变成什么样。扑克里搜的东西更绕：你搜的是自己可以采取的动作、采取这些动作的概率，以及**你如果拿的是别的牌，你会怎么做**。

最后这一项是最难理解的。你手里一把烂牌，想诈唬。这个诈唬好不好，取决于你会不会在同样的位置用好牌也下注。如果你只在烂牌时下注，那就是明牌诈唬，对手一眼看穿。所以算法必须同时评估"我拿好牌的时候怎么打"，两边的频率要配平，对手才会陷入两难：这注到底该跟还是该弃。

这正是布朗说的目标：**永远让对手留着一丝怀疑。**

最终的结果是，12 万手牌，接近 200 万美元。这一次机器人没有试图适应对手，没有试图读人，没有搞任何心理战，它只是在逼近纳什均衡。

然后它把四位顶级选手打崩了。

## GTO 与剥削：一场持续多年的争论，被一场比赛终结

扑克圈和学术界为这件事吵了很久。一边叫 GTO（game theory optimal，博弈论最优），一边叫剥削性打法（exploitative play）。

2017 年之前，占上风的其实是后者。很多人说，博弈论那套东西纯属纸上谈兵，真想赚钱，你得盯着对手的眼睛，读出他的灵魂，猜出他手里是什么牌。

后来情况慢慢变了。一批选手开始老老实实打接近 GTO 的策略，赚到了钱，而且不太去调整自己适应对手。Libratus 那场比赛把这件事钉死了。

但布朗对菲尔·赫尔穆特（Phil Hellmuth）的评价很有意思。他承认这位扑克传奇有时候打得并不"最优"，可他就是赢。布朗的解释是，赫尔穆特的强项不在于让自己变得不可预测，而在于他能引导对手犯错：让对手以为自己有某个弱点，然后预判对手会怎么调整打法，再反手针对这个调整。

这是个两层结构。第一层，你偏离均衡去剥削对手。第二层，对手发现你在剥削他，他也偏离均衡来反制你。谁在第二层站得更高，谁就赢。

顶尖人类选手通常的做法是：先把自己的策略打到接近均衡，让自己不可被剥削；同时在实战中观察对手哪里露出了破绽，再针对性地偏出去一点。偏离是有限度的，因为每一次偏离都在给对方留下可利用的空间。

这里有个常被混淆的点需要说清。纳什均衡不等于"可预测"。恰恰相反，均衡策略的全部意义就在于让你变得难猜。赫尔穆特的混乱风格之所以有效，是因为它让对手无法建立稳定的模型，这跟均衡策略要达到的效果在方向上是一致的，只是路径不同。

访谈里莱克斯问了一个布朗没往深处答、但其实挺重要的问题：能不能把"表演性"也建模进去？职业牌手的收入大头来自赞助和曝光，不来自牌桌。一个能说垃圾话、能制造节目效果、偶尔故意打得离谱的 AI，在商业上是更值钱的。

这已经不是博弈论问题了。

## 会赢的 AI 和好玩的 AI，是两种东西

布朗把这个区分讲得很清楚：赢下一个游戏的 AI，和让人愿意跟它玩的 AI，是两码事。再加上一个维度，让人愿意看它玩的 AI，又是第三码事。

他听过做游戏 AI 的人讲过这个。《文明》（Civilization）系列里的 AI 从来不打最优解，它们在做另一件事：制造人格，制造性格，让局面好看。真按胜率优化，游戏会变得很难玩。

莱克斯刚跟托德·霍华德（Todd Howard）聊过，就是《辐射》《上古卷轴》《星空》背后的那个人。话题自然滑到 NPC 上：大语言模型会把开放世界 RPG 里的 NPC 变成什么样。

布朗的判断是，这可能是大语言模型最早进入大众消费场景的应用之一。《上古卷轴 6》大概快做完了，赶不上；《上古卷轴 7》用上语言模型，他一点都不意外。莱克斯在旁边补了一句"这是我猜的，不是他说的"，两人笑了一下。

更有意思的是布朗讲的一段往事。他读书时听一位游戏公司高管的分享，台下有人问：为什么这些游戏全都围绕着打打杀杀？那位高管的回答是，做一个能跟你对话、能跟你合作的 AI，比做一个能跟你对打的 AI，难太多了。

这个解释放在今天看，依然成立，但正在松动。当对话不再需要逐句写死脚本，非战斗类的交互就有了空间。大量以合作为核心、以关系为核心的游戏形态会被解锁。

莱克斯提了个更野的方向：未必是正向的，可能只是戏剧性。你进《使命召唤》，不开枪，蹲在角落里跟一个 AI 拌嘴，被它阴阳怪气了一顿，晚上睡不着，第二天专门回去把这场架吵完。

布朗觉得这个方向挺带劲。游戏世界有个天然优势：玩家心里清楚这不是真实世界，所以 AI 犯点错、出点乱子，代价可控。就像《外交》这个游戏，它不是真实的地缘政治，不是真实的战争，它是个游戏，可以在里面放一点混乱，放一点乐趣。

## 从没有语言的博弈，到有语言的博弈

扑克和《外交》，中间隔着一道坎。

扑克是纯策略博弈，全程没有一句话。所有信息都编码在动作里：下注、加注、跟注、弃牌。诈唬是用筹码说的谎。对手能读的只有你的下注模式，你能藏的只有自己的牌。

《外交》不一样。七个玩家，一战前的欧洲，谈判、结盟、背叛、承诺、威胁，全部通过自然语言完成。你要说服法国跟你一起打德国，你要在最后一刻撕毁约定去抢补给中心，你还得在下一轮重新找到盟友。

这里的不完全信息，不只是"你手里有什么牌"。更麻烦的是"你说的话算不算数"、"你现在的盟友明天会不会反水"、"你刚才那句承诺是真心还是缓兵之计"。牌是固定的，意图是流动的。

Cicero 在 2022 年登上 webDiplomacy 平台的匿名对局，40 局下来，平均得分是人类玩家的两倍以上，进入了前 10%。它由两部分组成：一个负责战略推理的规划模块，一个负责生成对话的语言模型。规划模块算出该跟谁结盟、该往哪调兵，语言模型负责把这些意图翻译成让对面信服的人话。

这套组合的难度在于，两半必须对齐。战略上你需要法国按兵不动，语言上你就得找出一个法国愿意相信的理由，而且这个理由在后续几十轮里还得自洽，不能自己打自己的脸。

扑克 AI 里那个"共同知识信念状态"的显式建模，在《外交》里变成了另一种形态：你要建模的不只是对手认为你手里有什么牌，还要建模对手相信你这个人有多可信。前者是概率，后者是声誉。

从 Libratus 到 Cicero，布朗走的是一条很清晰的线：先解决只有动作的博弈，再解决有语言、需要建立信任的博弈。**前者考的是概率和平衡，后者考的是意图和信誉。而人类世界里绝大多数难题，都是后者。**

这也是为什么扑克那套东西值得技术人认真看一遍。你做产品定价，对手是竞品；你做招聘谈判，对手是候选人；你做商务合作，对手是合作方。这些场景的共同结构是：信息不对称、对手在思考、你的动作会被解读成信号、你的声誉会影响下一轮的价值。

这四条，恰好就是扑克。

- 先判断你面对的是"完全信息"场景还是"不完全信息"场景。象棋式的场景里，把每一步算到最优就够了；扑克式的场景里，只算最优会被人读穿。
- 在不完全信息场景里，主动保留随机性。固定套路一旦被识别，价值就会归零。同一个决策，故意用不同方式处理，哪怕单次看不是最优。
- 做复盘时，问那句扑克选手会问的话：如果我当时换一种打法，对手会怎么反应。只复盘自己做了什么远远不够，要复盘对手的应对函数。
- 评估一个策略的好坏，看它在对手最优应对下的表现，不要只看它在对手犯错时的表现。后者只能证明对手菜。
- 多人博弈里放弃"必胜策略"的幻想。你能控制的是自己不被联合针对，控制不了别人是否结盟。把精力放在降低自己被围剿的概率上。
- 做决策前先问一句：这个动作能不能被对方翻译成唯一含义。如果你的每一个动作都指向一种意图，你在谈判桌上就没有任何杠杆。
- 如果你想做出让人愿意用的 AI 产品，别只盯着胜率或准确率。好玩、可信、有性格，是另一条独立的优化目标，需要单独设计。
