奥里奥尔·维尼亚尔斯:DeepMind AlphaStar、星际争霸、语言与序列
Oriol Vinyals: DeepMind AlphaStar, StarCraft, Language, and Sequences
DeepMind 研究负责人谈 AlphaStar 如何攻克星际争霸,以及序列模型与语言建模的相通之处。
AlphaStar 打赢 TLO 那天晚上,团队去酒吧庆祝。David 说,要不我们邀请一个真正打 Protoss 的高手来打一场?比 TLO 高一千 MMR 的那种。Oriol Vinyals 说,好啊。他后来说,当时心里想的是,这不可能赢。
在星际争霸 II 里,一千 MMR 是另一个物种。Mana 用 Protoss 对 TLO 的 Protoss,胜率 99%。这不是同一水平的对局。
而在这之前,还有一个更离谱的赌注。Oriol 给团队发邮件,说我们先打 TLO 吧,大家猜猜结果。他自己填的是 0:5。他是团队里出了名的悲观主义者,五局全输,这是他的真实预期。
结果 5:0。然后 Mana 也输了。
这个故事值得从更早的地方讲起,因为 AlphaStar 之所以能赢,和 Oriol 这个人的来路关系很大。
从一台被拆坏的电脑说起
访谈一开始,Lex 问他:先有对编程的热爱,还是先有对游戏的热爱?
Oriol 说,都不是。十岁、十一岁的时候,他做的事情是拆电脑、弄坏、再修好。谈不上写代码,就是瞎折腾。真正的入口是游戏,尤其是 1998 年那版星际争霸一代。
他是西班牙人。1998 年的欧洲,电竞这个概念还不存在,他所谓“半职业”也就是在自己的圈子里打到很高的水平,后来有几年稳定在欧洲前 32。没有 MMR 系统,没有直播,没有赞助,只有局域网和后来慢慢变好的网络。
有意思的是他的种族选择。他喜欢打随机,甚至比赛里也打随机。理由很实用:你得玩过那个种族,才知道它哪里难受,然后你站在对面的时候,才知道往哪里捅。最喜欢的种族是 Zerg,也是他打得最好的。
这个细节后来在 AlphaStar 的设计里反复出现。理解对手不是靠看,是靠曾经站在对手的位置上。
“三选二”
Lex 问了一个很实在的问题:你是我见过最高产的研究者之一,同时你又真心喜欢游戏,这两件事能共存吗?
Oriol 提到一个说法,是别人告诉他的。大学那几年,你只能三选二:女朋友、游戏、学习。
他说这个说法大体是真的。星际争霸这种游戏,你要认真打,时间就是硬消耗。所以他上大学之后就基本停了,完全停。后来的《魔兽世界》算是休闲版,上线就能玩,任务总能做完,不像星际那样每一秒都在做取舍。而且魔兽世界给他的东西不太一样,是社交。他现在还有一批 Facebook 好友,是当年在虚拟世界里认识的,其中一个是他扮演牧师时遇到的一个战士。他说这些人让他很早就意识到,世界是多样的,只是他们之间连着的不是街道,是光纤。
这一段听着像闲笔,其实是理解他研究方法的一条线索。他很清楚一件事能吃掉多少时间,也很清楚什么时候该停。
2014 年,Demis 说“也许现在还太早”
时间线是这样的。
2014 年,Google 收购 DeepMind。Brain 和 DeepMind 两个团队搞了一次联合峰会,各自做报告。Oriol 当时在 Brain,他讲了自己在伯克利做的 Berkeley OverMind,一个星际争霸一代的 bot。
那个 bot 是什么水平?他自己说得很直白:一堆规则。你有超过三个单位就进攻,对方单位比你多就撤退,诸如此类。
讲完之后,Demis Hassabis 走过来,说了句大意是:
“也许不是现在,可能有点早,但你应该来 DeepMind,用深度强化学习把这件事再做一遍。”(Demis Hassabis)
Oriol 当时的反应是,这听起来像科幻。
2016 年,他真的从 Brain 转到伦敦的 DeepMind。同一年 AlphaGo 赢了李世石。也是在这一年前后,暴雪主动找上门来,问要不要接下一个挑战。几件事凑到一起,项目就启动了。他飞去加州 Irvine 的暴雪总部,先跟对方讲清楚这件事打算怎么做,然后再动手。
从第一天起,项目的 DNA 就定了:一切都要学出来,不写规则。Berkeley OverMind 那种 if-else 是被明确排除的路线。
为什么这件事本来不该成
Lex 追问:你当时觉得离目标有多远?
Oriol 的回答很诚实,也很值得注意。他说,他觉得完整版这件事很可能做不到。一个纯神经网络、没有任何领域规则、一对一打完整局星际,他当时不认为可行。
“我真的不觉得这有可能。但另一方面,我能看到一些踏脚石。”(Oriol Vinyals)
踏脚石有三块。
第一,星际争霸可以被切成子问题。开局、运营、交战、微操,每一块都可以单独定义、单独攻。
第二,暴雪开放了人类对局录像。不是全部历史对局,但量极大,而且每天都能拉到当天新产生的数据。这在当时是独一无二的资源:一个复杂度这么高的游戏,有如此规模的人类专家轨迹可以拿来监督学习。Oriol 之前做语言、做序列、做机器翻译,他很清楚这种数据意味着什么。
第三,团队。他自己说,同事比他自己重要。Demis 在 2014 年就已经看到了方向,他只是跟着走。
所以他接下了一个自己认为大概率做不完的题目,原因不是乐观,是因为能看见第一步踩在哪里。这个判断方式后面还会出现很多次。
把星际争霸翻译成一个序列问题
技术上的核心,用一句话说:AlphaStar 的全部智能,都在一个神经网络的权重里。你把正确的观察喂进去,用同样的方式解读动作,那个网络就是那个 agent,别的什么都不需要。
先说观察怎么表示。他们试过几种方案,最后用的是混合的:
- 一张缩小的全局地图,当成图像处理
- 一张当前镜头的局部视图
- 一份单位列表,每个单位带坐标、血量、类型、归属等属性
第三项是关键。把单位当成一个集合来处理,而不是像素。有意思的是,这跟 Facebook 的一篇论文是同一个思路:那篇论文把图像打散成像素列表,只保留每个像素的 XY 坐标,然后交给 Transformer,在 ImageNet 上照样跑得很好。Oriol 说他们其实是无意中用了同一个架构。
你一旦接受“单位列表就是一堆带坐标的像素”,星际争霸的观察就变成了一个序列问题,和语言里的词序列在形式上没有区别。
接下来是时间维度。星际争霸按每秒 22 帧左右推进,一局十分钟就是一万三千多帧。他们没有逐帧观察,只在自己要行动的时候观察,然后让网络自己决定下一个动作隔多久发生。这个设计既是计算上的必要,也刚好符合人类的节奏。处理完之后,一局平均只有一千到一千五百个动作。这个长度,LSTM 和 Transformer 都能吃下。
然后是训练。第一步是模仿。
他们从 3500 MMR 以上的人类对局里学,这个门槛定得低,是为了保留数据量。训练的时候还会把这一局的 MMR 数值一起喂给网络,相当于告诉它:你现在要模仿的是一个 4000 分的对手,或者一个 6000 分的对手。
这个设计带来的效果很有意思。训练完之后,你可以要求同一个策略“像 3000 分那样打”或者“像 6000 分那样打”,它真的会变。打得低的时候运营更差,每分钟操作数更少。他们测过,6000 分模式下的策略能打赢暴雪内置的所有 AI,但离真正的 6000 分选手差得远,大概只有金牌、白金水平。
原因很清楚:模仿学的是“下一步该点哪里”,不是“怎么赢”。这两件事之间隔着胜负信号,隔着信用分配。
最难的从来不是网络结构,是探索
Lex 问,星际争霸最难的部分是什么?不完全信息?长期规划?实时性?动作空间?还是博弈论意义上的无解?
Oriol 的回答是探索。而且他解释得很具体。
开局阶段,几乎任何主动动作都是坏的。因为你的工人本来在自动免费采矿,你随便点一下,就是把它从矿上拽下来,派到别处去。纯强化学习靠随机试错起步,它试出来的第一个能赢的策略是什么?把所有工人拉过去一波推。这个策略在自对弈里真的会赢,因为对面的网络也什么都不懂,也不会防守。
更复杂的动作,比如开分矿,需要选中工人、走过去、放下建筑、等它建好、再派人过去采矿。这一整串操作,靠随机点击几乎不可能凑巧撞上,更不可能撞上之后还能连到胜利信号上。这就是为什么纯强化学习在星际里会卡死。
所以他们的路线是:先用人类录像做模仿学习,把策略带到人类附近,再用自对弈往上推。这一步绕开了最要命的探索问题。
一个 League,而不是一个 agent
自对弈还有一个陷阱。如果只有一个 agent 和自己打,它会收敛到一个很小的策略子集,然后卡在那里。
他们的解法叫 AlphaStar League。不是纯自对弈,是一个由不同“性格”的 agent 组成的联盟。有些专门练偷袭,有些专练经济,有些专练早期压制,有些专练后期爆发。每个新 agent 训练时,对手是整个联盟的当前快照,它会去找这个分布的最优解,也就是最狠的克制。然后新一代 agent 又被放进去,逼着所有人继续进化。
Oriol 把它比作战网。你在天梯上碰到一个没见过的打法,被打爆,然后你立刻想学它,想再来一局。联盟就是在人造这个环境。
这个设计的效果在对 TLO 和 Mana 的十局里能看出来:其中两局的 agent 打的是“偷袭”路线。不是团队事先给它们写的剧本,是联盟逼出来的生态位。
手速、微光,和“像人一样玩”
这里有一个绕不开的争议:机器的操作精度。
先给数字。人类顶尖选手每分钟大概 300 到 800 次操作,其中相当一部分是没意义的连点,是为了保持手感。而社区里那些脚本 bot,每分钟两万到四万次。两者之间差了两个数量级。
AlphaStar 因为第一步是模仿,操作频率的分布天然就像人类,连那些没意义的连点都学来了。博客里放出来的曲线,APM 分布和人类高度重合。但自对弈一旦启动,这个分布就可能漂移,精度也可能上升。
所以他们按人类职业选手的分布设了一个上限,超过就丢弃动作。Oriol 自己承认,这个阈值大概设高了。有些 agent 的 APM 加精度确实超过了人类范畴,社区也因此吵了一阵。
另一个更难模拟的东西叫 shimmer。星际里有些单位是隐形的,你需要专门的侦测单位才能攻击它,否则它可以直接拆你的建筑、杀你的工人。但隐形单位移动时,屏幕上会有一层很淡的扰动,职业选手训练之后能立刻看出来。机器这边很难模拟“你有没有在看那块屏幕”。对 AlphaStar 来说,那个 bit 从 0 变成 1,它就知道那里有个单位,清楚得不像话。
这两件事指向同一个问题:什么叫“像人一样玩”。是限制手速?是模拟注意力?是模拟疲劳?每加一条规则,agent 更像人,但也更远离“纯粹的学习”。这是一条没有标准答案的线,Oriol 说他们只是在做第一次尝试,后面还要继续迭代。
三个种族是一局石头剪刀布
Lex 说自己几乎没跟真人聊过星际,让 Oriol 讲讲三个种族。
Protoss 是科技种族。单位贵、强、数量少,打起来要尽量保住兵,靠技能和战术优势取胜。很多人觉得它最好上手,这次演示也只用了 Protoss 对 Protoss。
Zerg 相反。核心是扩张,占尽可能多的资源点,单位便宜、可再生,整支部队死光了也不算大事,因为资源库存大,能快速重建。打法上偏向持续施压,用交换换空间。
Terran 是中间那一路,人族的机械化路线。
比种族更有意思的是开局博弈。Oriol 把它讲成一局连续的石头剪刀布:你选了科技路线,对面如果猜中,就会选克制你的路线;你要在他改主意之前把优势兑现,他要在这之前完成转型。整个游戏就是一场对彼此意图分布的估计。什么时候去侦察,是一个纯粹的信息决策:侦察能提高信念状态的准确度,但也会暴露自己的信息。
在这之上还有两种特殊打法。一种是 cheese,全押式的偷袭,比如在对面基地边上偷偷修炮台,或者藏科技建筑速出隐形单位,对手如果不能及时反应就直接输。另一种叫 all in,在某个精确时间点凑出一波完美配比加刚完成的升级,四分钟半一波推过去,赢了就赢,输了就打出 GG。
这些招式的存在,恰恰是 AlphaStar League 存在的理由。纯自对弈不会自然长出所有生态位,你需要有人专门去当那个讨厌的对手。
赢了之后,离“解决”还差得远
5:0 这个比分容易被误读。Oriol 反复强调,他们的主张只是“第一次击败职业选手”,不是“星际争霸被解决了”。
几个明显的窟窿:
- 只练了 Protoss 对 Protoss。想打 Terran,权重要全部扔掉重训。人类学会一个种族之后再学另一个,速度快得多。
- 对手不知道怎么打它。Mana 面对的是一个从未见过的对手,赛前预期是错位的。等人类选手研究出针对方案,结果可能会变。
- 有些局里 AlphaStar 明显没侦察,或者对隐形单位的处理有漏洞。这些都能被利用。
- 它没有显式的对手建模。信念状态是隐式的,网络里没有一项损失是专门用来预测“对面在干什么”。
最后这一条,是 Oriol 自己最想补的。他说想看到 agent 真的去猜对手在想什么,去设局骗对手,去主动制造错误认知。扑克和博弈论里那一套,星际和它天生一对。
泛化:深度学习唯一没解决的问题
访谈后半段从游戏转向了更大的话题。Lex 问,现在深度学习的边界在哪?
Oriol 只给了一个词:泛化。
他的表述很朴素。我们做的事情,本质是在拟合函数。数据分布一变,或者哪怕没变、只是加了点噪声,模型就崩。对抗样本是最清楚的证据:人眼完全看不出差别的扰动,能让网络输出任意结果。
他顺手翻了一段历史。当年 SVM 之所以流行,一部分原因就是它有泛化保证。而现在这一代模型,在数学上就是一堆矩阵相乘,数值上必然存在能被找到的角落。
有没有解法?他说目前真正持续有效的公式只有一个:把数据和模型同时放大。翻译、语言、星际,都是这一条在起作用。很多之前被认为“不可能泛化”的任务,规模上去之后就泛化了。
但他不认为这是根本解。他更看好的是把神经网络和程序、离散决策结合起来。他举了一个特别清楚的例子:
“你可以用神经网络学排序。给足够多的例子,它看起来会排序。但你给我一个特别大的数,它就崩了。而如果你直接写一段排序代码,你可以证明它对所有可能的输入都成立。”(Oriol Vinyals)
这就是“强泛化”和“拟合”的区别。前者有证明,后者只有统计意义上的信心。
他为什么不用图灵测试定义目标
Lex 提到图灵测试,问他怎么看。
Oriol 先说喜欢,因为他本来就做语言。早期的机器翻译工作,他们也试过往对话系统上套,当然那种系统绝不可能通过图灵测试。
但他随后给了一个很实用的判断框架,引用的是物理学家 Hamming 的一篇文章:一个宏大挑战,光“宏大”不够,得有人能看见攻击路径。瞬移和时间旅行都是物理学的宏大挑战,但没有路径,所以没人拿它当博士课题。
“我觉得完整的图灵测试还是太早了。我不认为自己会去做,也不太会建议别人拿它当博士题目,因为它太早、也太难。”(Oriol Vinyals)
他的理由不是“做不到”,是“不知道计划长什么样”。星际争霸他能看见路径:模仿学习、自对弈、联盟。图灵测试他看不见。GPT-2 很惊艳,但要从“生成像样的文本”走到“让人分辨不出对面是不是人”,中间缺的不是规模,是一个还没出现的想法。
“我不担心会不会有突破,我担心的是统计方法根本不够用。我们需要一个突破,这对社区是好事,但不确定性大得多。”(Oriol Vinyals)
这个判断方式很值得学。他不用“难不难”来评估一个题目,用“能不能画出路线图”来评估。
从星际争霸到维基百科
那什么才算通用智能?
Oriol 说他觉得 AGI 这个词被用得太模糊,所以他自己给了一个可操作的版本:
“如果有一个方法,能在面对新问题时直接吸收、直接解决,而不需要把整个过程重来一遍,那对我来说就是 AGI 的一个不错的定义。”(Oriol Vinyals)
他区分得很清楚:泛化的是算法,不是权重。AlphaStar 用的那套方法可以搬到任何即时战略游戏,甚至可以搬到别的领域,但训练出来的那组权重,连换个种族都救不回来。
所以他想看到的是一个网络,见过新任务之后,用人类差不多的速度学会它。你给一个人看一个新物体,他立刻能认;你让一个人玩一个新 Atari 游戏,他几局就上手。这就是他想要的基准。
他还提到 Leon Bottou 在 ICML 上的一次演讲:训练集和测试集这种划分本身就该被打破。为什么一个在 ImageNet 上训练好的网络,换到 MNIST 这种更简单的问题上就不能用?这在直觉上就是错的。
然后他讲到知识图谱。他很喜欢维基百科,觉得可惜的是,神经网络没有好好利用网上那些结构化的知识。如果能把维基百科自动抽成一张图,那张图的结构刚好适合和程序、和离散推理结合。他甚至想过把星际争霸的建筑依赖关系做成一张图喂给网络,试过一些,效果不算显著,但方向他喜欢。
关于 AI 安全,他的态度
Lex 问他担不担心存在性风险。
他的回答分两层。近期他不担心,但他承认自己可能错。长期他希望收益大于风险,但必须保持警觉,得留出足够的提前量,万一要转向还来得及。
有意思的是他自己补充的一句:他最近读 AI 安全的东西越来越多,这个领域他还没贡献过,也许可以做点什么。一个做出 AlphaStar 的人说这句话,分量不太一样。
他还提了一句更朴素的话:AI 已经能帮到很多人了,那些请不起助理的人、那些连天气都查不到的人。研究社区盯着 AGI 的时候,不该把这条线弄丢。
他的研究方法是长出来的
Lex 问他怎么产生想法,还提到 Ian Goodfellow 说 GAN 是喝了几杯啤酒之后想出来的。
Oriol 笑了,说他们的故事差不多。决定再打一局星际,也是在酒吧里定下来的。
更认真地说,他的方法变过。早期在 Brain,身边是 Hinton、Jeff Dean、Ilya Sutskever,那几年就是不停讨论、不停读论文。现在他更讲策略,会先判断这个领域是不是到了可以攻的时候,不早不晚。
他总结出一个自己最常用的公式:先找一个难问题,再看研究怎么塞进去,塞不进去的地方就是需要创新的地方。
这条公式能对上他所有的工作。机器翻译催生了序列到序列。组合优化催生了指针网络。星际争霸催生了大尺度模仿学习和 AlphaStar League。
另一种做法也成立:先选定一个研究方向,比如基于模型的强化学习,再去找能测试它的最小环境。两条路他都走过。
最后他说了一句听起来不像技术建议的话:同事比你自己重要。他见过太多例子,别人提的想法他觉得不靠谱,但给了空间去做,结果被证明错了。他自己被证明错了很多次。
给想做事的人
把这场对话收拢一下,能带走的东西大概是这样:
- 选题目的时候先画路线图,再谈热情。画不出来就先别做,不是因为它不重要,是因为你不知道第一步踩哪。Oriol 敢接星际,是因为他看见了模仿学习和人类录像这两块踏脚石。
- 拆问题,但要知道哪一块是命门。星际可以切成开局、运营、交战,真正卡住所有人的是探索,其他都是枝叶。找准那个卡点,比均匀用力有用得多。
- 别迷信规模,但也别瞧不起它。规模是当下唯一稳定生效的公式,只是它解决的是拟合,不是泛化。真正想要强泛化,得往程序、离散结构那边看。
- 模仿是起点,不是终点。人类的录像能把策略带到人类附近,但“下一步该点什么”和“怎么赢”之间隔着胜负信号。任何从人类数据起步的项目,都要提前想好第二步怎么接。
- 给自己造一个联盟。单一的自对弈会卡在局部最优,你需要不同风格的对手逼你进化。现实里的版本是:主动去找那些跟你打法不一样的人,别只跟同类混。
- 允许自己悲观。Oriol 赛前填的是 0:5,项目启动时认为完整版做不到。这不影响他把事情做成,反而让他把每一步的可行性看得更清楚。乐观负责启动,悲观负责校准。
本集资源与出处
- 视频在 YouTube 收看
- 音频官方 MP3 直链来自 lexfridman.com 官方播客 RSS
- 官网Lex Fridman 官网本集页面