写在程序员节:游戏、技术和天美的这群人们
内容速读:
我和阿文正在聊用《王者荣耀》训练人工智能的事儿。你需要编写一些程序让这个AI通过通用接口读取游戏信息,并输出操作信息——我们可以简单地把这个过程形容为“让AI开始玩《王者荣耀》”。在我和阿文的对话中,“AI”这个宽泛的名词其实是个代称,实际上,我们在说的是“开悟”。
■ 1.
“有没有一种可能,你们发现AI比评估它的高手更聪明,高手已经看不懂了?”我问阿文。
“这是个很好的问题。”阿文在电话里回答我。他就像一个真正的老师,或者学者那样,在采访过程中,偶尔喜欢说“这是个很好的问题”,按我的理解,大概这就说明他对回答这个问题很有兴趣。阿文说:“现在我们的一些AI已经超过了公司内高手的评价水平,当然,我们同事玩《王者荣耀》的水平毕竟不都是特别强的,当AI的段位比他们还高的时候,他们就评估不了AI的水平了。这时候,我们就必须找一些更强的玩家,去社会上找也好,去找半职业选手也好……总之,到了这个阶段,我们确实就很难给AI打分了。
我和阿文正在聊用《王者荣耀》训练人工智能的事儿。简单说起来,这事儿是这样的:你有一个初始的AI(你总该知道AI大概是什么意思),或者叫一个深度学习训练的模型。你需要编写一些程序让这个AI通过通用接口读取游戏信息,并输出操作信息——我们可以简单地把这个过程形容为“让AI开始玩《王者荣耀》”。
接下来的工作就是“训练”AI。在我和阿文的对话中,“AI”这个宽泛的名词其实是个代称,实际上,我们在说的是“开悟”。按官网上的介绍,“开悟”是“腾讯牵头构建的,依托腾讯AI Lab和《王者荣耀》的AI多智能体与复杂决策开放研究平台”。
我也可以用一个更简单的描述,开悟是腾讯研发的深度学习平台。所谓“深度学习”,简单来说,就是AI通过海量的实例和尝试,总结和归纳出规律,并最终具备某种能力的过程。
或许你觉得这么说还是有些抽象,那我可以再说得直观一点(不过要知道,越直观,越便于理解,对它的形容就越不精确)。AI就像孩子,想要让孩子懂事儿,你就需要教他知识,让他在世界中奔跑以积累经验,孩子在一次一次尝试中了解社会,获得经验,以应对更大的挑战——我们几乎都是这样成长起来的。
王者开悟就是那个孩子,《王者荣耀》就是让这个孩子积累经验的世界。
■ 2.
游戏深度学习这事儿,大多数人都是从人工智能科技公司DeepMind的相关报道中得到启蒙。你总该听说过“阿尔法狗”(AlphaGo),AlphaGo就是DeepMind研发的人工智能。2015年,DeepMind第一次进入公共视野。后来的事情就比较轰动了,他们的AI,AlphaGo横扫围棋棋坛,引来一大堆人惊呼未来是否是AI的(就像无数科幻小说每5年就要时髦一次的话题那样),再之后,AlphaGo开始将目光转向《星际争霸2》。
在这一步上,公众对于AlphaGo的认识出现了几个误区,首先是将AI转向不同项目的难度。很多人觉得这没什么难的,拔下几根接头,插到另外的机器上,AI就可以在新游戏中傲视四方——在现实生活中,一个人被称作“游戏高手”,通常意味着他对几乎所有游戏都具备过人的理解力和操作能力。
AI不是这样。在采访中,阿文告诉我,AI“能力的迁移是一件比较困难的工作”。简单来说,按我的理解,一个AI下围棋可以,但直接用来下象棋就没戏。一个AI玩《星际争霸2》可以,但直接拿去玩《王者荣耀》就完全不行。还是用阿文的话说,“设计模型在领域和领域之间是很难迁移的”。
第二个误区是很多人会把“电脑难度”和“AI”混淆,很多人觉得游戏中的“AI”已经很强。比如说《星际争霸2》,如果你选了高难度电脑,那想要获得胜利的确不太容易——但我们所说的AI和游戏中的“电脑难度”关系并不大。简单来说,游戏中的难度往往通过各种方式实现。你在游戏中的电脑对手可以看到游戏内所有的数据:在RTS中,机器人知道你在哪里,你建造了哪些兵种,你的部队调动去什么方向;在FPS游戏中,你的对手往往有数倍于你的血量——总而言之,在游戏中,电脑往往通过作弊的方式让玩家觉得“难度提升”。
但用以训练的AI不同,它在游戏中获得的信息不比任何一个普通玩家多,AI需要在复杂的游戏环境中观察周围,进行判断,再做出选择。
这些知识都是阿文和老刘在采访中告诉我的。阿文是腾讯AI Lab的研究员,老刘是腾讯互娱天美工作室群的研发工程师,两个人在电话中接受了我的采访。
“我们差不多2016年就开始商量要做AI,然后一直合作到现在。”老刘对我说。然后他向我讲述了合作开始时的情景:“当时AI Lab的领导和天美的领导在一次腾讯内部的会议上遇到,两人相谈甚欢,然后一拍即合,决定要做这件事。”
合作开展得非常顺利,天美将部分游戏数据开放给AI Lab,并派出了经验最丰富的同事和AI Lab一起探讨如何训练这个AI。
就像本章一开始说的那样,AI能力的迁移是很困难的工作,具体到《王者荣耀》这款游戏,AI训练的重点又和《星际争霸2》不同,在《王者荣耀》中,玩家需要和另外4位队友配合,重点就放到了多个AI之间的相互协同和配合上——用阿文的说法,重点在于“多智能体的博弈策略”。
这种博弈策略通过海量的训练学习而来,学习的方法也很简单,让AI不停玩游戏,同时进行数万局比赛,每一个AI在每一局的每一分钟都在生成新的版本,这看起来像一个生物快速进化的过程,不同的版本相互PK、竞争,胜者存留,败者淘汰。简单点说,就是在实战中进行验证,对手一个技能打过来,往左躲还是往前冲,哪种行动带来的收益会更高——当然,实际情况可能更复杂。支持这种进化过程的是由数量惊人的服务器组成的集群,这也是AI之于人的优势,“开悟在两周内的学习成果相当于一个人持续间断不停地玩几千年”。
■ 3.
在我想写这篇文章之前,我曾经大致想过要以什么角度切入。媒体对技术人员有一些固化印象,包括但不限于不擅言辞、不喜欢社交,在某个方面很强但在某些方面相当木讷。媒体经常通过脸谱化技术人员的方式引发读者的愉悦。在《生活大爆炸》获得成功后,技术人员仿佛有了统一的性格,一个不通人情世故的编程天才?这听起来当然很吸引人。
但事实当然不是这样。让我们忘记那些脸谱化的技术人员形象,我在写这篇文章的过程中采访了许多优秀的程序员,除了那些我们认为技术人员应该具备的特质,思维缜密、逻辑严谨之外,他们还拥有优秀的表达技巧,以及能被感受到的巨大热情。我在这篇文章的写作过程中采访了一些在天美工作的技术人员,除了刚才提到的阿文和老刘,还有毛星云。
毛星云,网名“浅墨”,游戏开发技术圈里不少人知道这个名字——他是《实时渲染(第四版)》(Real-Time Rendering 4th,简称RTR4)的翻译者。“RTR”系列书籍一直被实时渲染以及计算机图形学领域认为是“圣经”般的存在。毛星云也一直在知乎上分享自己对技术的理解、答疑解惑,以及,为项目招人。
毛星云从小就喜欢玩游戏,“在一个虚拟的世界里去扮演不同角色,去实现不同的目标”,这让他感觉“确实体会到了不同的人生”。他对游戏的发展史也比较感兴趣,后来,机缘巧合,他看了《DOOM启示录》,由此决定进入游戏行业。
现在,毛星云是天美F1工作室的引擎技术负责人之一。天美F1是一个全新的工作室,F代表Future,未来。
就在前几天,毛星云在知乎发贴,对外首次披露了天美F1的情况。他着重介绍了开放世界项目的研发积累。我问他为什么发帖,他告诉我:“其实我们一直在埋头进行研发和攻坚,发帖只是为了分享我们的进展,在技术圈子里招人,吸引更多志同道合的人,尤其是那种做过3A、有点理想、技术牛的行业大佬的加入。”
毛星云在谈起他的工作时会更多地说起技术。在被问起“最难忘的时刻”时,他回答说是“技术研发的过程中,将研发出的多个高质量的技术模块整合到一起的时候”。随后,他提出了一大堆的术语:“包括高品质的着色模型、动态的光照氛围、基于物理的可交互植被系统、基于物理的风场系统,以及动态地形形变系统,结合实时光线追踪加持下的反射、阴影和环境光遮蔽后,最后呈现出来的整体画面,有一种虚拟世界跃然纸上的感觉。”
坦白讲,这些内容我有点儿一知半解,但我能感受到他的热情。毛星云喜欢他在做的事儿。“我们在做的一些工作,我们所从事的行业,正在不断地突破虚拟和真实的边界,这是一件让人特别激动的事情。”
也许正是这种热情支持着毛星云不断地进行知识分享,从学生时代开始,他就有写技术博客的习惯,在CSDN这样的地方有极高的知名度,在承接《实时渲染技术第四版》的翻译工作之前,他就写了流传甚广的系列教程《〈Real-Time Rendering 3rd〉提炼总结》。
他在一定程度让我想到互联网的原初时代——人们无私地奉献着自己的知识、经验和才华,并从中获得成就感。这种行为几乎是完全利它的。分享者并不能从中得到什么物质意义上的好处,他们所能得到只有帮助他人及促进科技发展的快乐(哪怕只有一点点)。
在天美,利用休息时间进行知识分享的人当然不止毛星云。戈登是天美的游戏研究员,他的日常工作是“给各种开发小组提供产品的参考策略,比如市场表现、DAU什么的,有时候我们也会讲一些比较长远的东西,比如游戏的设计逻辑或者是情感表达。”在闲暇时间里,戈登组织了一个前缀中带有“天美”的公众账号(大概是因为不好意思,他不想让我说出这个账号的名称)。戈登承担了这个账号的大部分工作——写一些非常有趣、翔实的游戏科普类文章。这些同样是无偿的,驱动他做这些的原因在我看来很简单,就是对于游戏的爱。
■ 4.
无论是王者开悟的合作,还是毛星云、戈登在知乎上的分享,我们都能从他们身上看到“脸谱化”之外的一些特性,我将其称之为“开源文化”。和技术圈子近年来流行的代码开源一脉相承,这群搞技术的人特别热爱分享、喜欢探索,并非常热衷于将探索结果进行碰撞,以擦出不一样的火花。而这种“开源”精神,不仅仅局限在游戏本身。在采访过程中,我问阿文,为什么是天美和《王者荣耀》在做AI深度学习这件事儿?AI深度学习这件事儿几乎完美地符合“不明觉厉”的形容。我们都清楚它是未来,我们都知道它能做许多事,但我的问题是,为什么这件事和“游戏”有关?
“其实很多研究人员已经发现了,游戏是强化学习的最好战场。”阿文告诉我。
还是让我们从“深度学习”和“强化学习”的区别说起。“我们通常说的深度学习要依赖于人类给的数据,AI基于这份数据进行升级;而强化学习则可以在人类提供的数据的基础上进行自我演算,基于演算结果推出更优解。可以这么理解,深度学习的情况下,AI始终需要人类提供数据协助更新,而强化学习的情况下,AI会自己动脑子。”阿文告诉我,然后他补充,“为什么AlphaGo也是从智力游戏开始的?因为智力游戏可以比较好地生成大量数据来供AI强化、拟合,它可以同时开展很多的对战,提供海量的数据。”
而如果将对象局限于现实,人们会遇到非常多的障碍。阿文向我举了个例子:“比如我们想要模拟车辆撞击,该怎么做呢?车辆有很多碰撞的角度,角度的不同会导致产生的形变也不同。如果要去获取车辆碰撞的数据,就需要在真实世界中进行非常多的实地撞击测试。但是如果你有一个很真实的,或者叫‘游戏’,或者叫‘模拟器’的东西,就可以(以很低的成本)去还原车辆在真实世界里可能产生的行为。当然,还原度很难做到一模一样,但整体上能够大体还原——或许逼真程度有90%吧。”
简单点说,游戏作为虚拟环境,为研究者提供了数据的可获得性以及可模仿性。与此同时,就像是AlphaGo和《王者荣耀》AI所做的那样,在必要的时候,人类可以参与检验AI的成效,这一切都为技术研发提供了便利。
而且,事情不会永远停留在虚拟环境中。
“这些技术最终还是要进行转化,为生活带来更多的实际价值。”老刘说,“我们最开始做AI的时候,也是带着这个初衷,我们希望AI对我们的生活和产业带来一些帮助。在项目推进过程中,我们发现它能发挥的作用不只是局限在游戏里,它是能够对其他的方向提供帮助的,这就是我们要去做开放平台的原因,也是我们后来和高校开展合作的原因。我们希望通过项目中积累的经验和技术,降低大家的研究成本,我们制作了相关的工具,也向一些大学和研究机构开放了强化学习的框架,同时提供了一些算力,方便他们在开悟平台上进行一些AI的研究及演练实操等……我们做这些事情,其实也是在探索游戏的附加价值,我们希望这个价值能够延伸出去,为其他产业带来一定的可能性。我们不敢保证100%解决问题,但至少可以提供对于可能性的探索。”
目前为止,王者开悟已经同国内超过20个大学和研究所进行了合作,我想,推动这些合作的,其实也正是他们的“开源精神”。阿文告诉我,腾讯会向合作伙伴提供基于《王者荣耀》训练而成的数据、强化学习的框架、模拟研究环境的内核以及算力,以帮助其进行研究。在未来,他们还准备把整套方案产品化和成熟化,帮助合作伙伴直接进行部署,从而进行有规模化的产业科技的研究。
仍然是在未来,王者开悟所产生的成果可能应用于多个方面,包括多智能体强化学习、多机器人自主避障导航、工业自动化等场景上。也许在未来,我们可以享受足够智能的机器人家政服务、更智能的无人驾驶或者仓储物流——而所有这些技术所依赖的运算中枢,那些我们看起来在未来聪明、智慧、强大到超越人类的AI,在一定意义上可能是从王者峡谷里启蒙、成长,最后走向社会的。
从开悟的例子,我们不难看出天美在产学研方面的一些尝试,从最早的“传统文化数字化”,再到“技术跨领域合作”、“高校合作”,甚至是最近的科幻题材探索。
因为刚好和星云奖颁奖活动冲突,几位天美J3工作室的成员与天美工作室群总裁姚晓光先生一同去了活动现场,没能按计划参与采访。关注科幻领域的朋友可能知道星云奖——如果你不熟悉,我可以用一句话简单介绍一下,星云奖是华语科幻界最权威的奖项活动,历史悠久,影响力巨大。很显然,在和科技仅一墙之隔的科幻领域,天美也在尝试“开源”。从后续的报道中我们可以大概猜测到,天美在科幻题材探索方面正在布局“中式科幻”,这场中国科幻文学和游戏科幻艺术的联手当然值得期待——实话说,我认为这是迟早发生的事情。
■ 5.
最后,让我们回到“今天”。
今天是10月24日,1024,对于计算机而言,这是个很重要的数字,它是2的十次方。计算机起源于二进制,而对二进制计数来说,1024也有着重要的意义,因此,10月24日也被称为程序员节。这是这篇文章最初的动因,我们的初衷是讲述天美在游戏领域所进行的技术积累和探索。我联系了天美的团队,希望他们为我介绍几位优秀的技术人员,让他们讲讲自己在做的事情。
自从诞生以来,游戏就同技术紧密地结合在一起——用结合可能有点儿抬举游戏,事实上,我认为,游戏的发展严重依赖于计算机技术的发展。计算机算力增加,我们得以在屏幕上感受更真实的游戏画面;计算机具备联网功能,我们才能玩到带有网络功能的游戏;计算机普及了光驱,游戏开发者们才得以在游戏中塞入高质量贴图和真人语音。伴随着技术的发展,游戏的形态、玩法和设计理念往往会迎来一次大的变革。
与此同时,包括游戏在内的诸多应用又往往促进和提升了计算机科技的发展——计算机的发展是过程而非目的,最终始终指向解决具体的问题。娱乐是人们最普遍也是频次最高的要求,许多科技进步由此而来,再逐渐扩散到方方面面,让我们的生活发生实际的改变。
诚然,“技术积累”一词在显得“尖端”的同时,也意味着它指向的东西是我们暂时用不上。我们总是很难去量化那些基础研究,很难量化那些大多数领域尚不贴近人类实用的AI实验和知识分享的“实际价值”。我们也偶尔会忽略那些为未来默默奉献的人——在这个方面,天美,或者说腾讯的付出并不被常人所知。
很多人喜欢说,“游戏不只是游戏”,在一定程度上,游戏技术亦然。游戏技术在协同跨产业合作上的推动作用比我们想象的可能还要大一些。在某种程度上,游戏、游戏开发者们参与了未来世界的构建,并帮助未来世界越来越好,比如AI的训练和算法完善,又比如场景建模、AR/VR的发展等等。我们经常会探讨游戏的价值,而这,或许就是游戏的价值之一。