本文来自微信公众号:游戏研究社 (ID:yysaag),作者:RMHO,原文标题:《AI已经可以学会看主播视频,来教自己打游戏了》,题图来自:视觉中国


今年6月底,知名科技公司OpenAI发布了一篇论文,主要围绕着一项名为“视频预训练”(VPT:Video PreTraining)的AI技术展开讨论。


这项研究的成果相当喜人,例如,在看了7万多个小时《我的世界》视频后,案例中的AI已经成功学会了求生所需的大部分必备技能:游泳、狩猎、建房、下矿,甚至搜刮村庄。


尽管依然存在着一些人类难以理解的操作,但就结果来说,这已经比许多同类AI表现得要好多了。


AI搜到东西后兴奋地撸起了天花板<br>
AI搜到东西后兴奋地撸起了天花板


当然,相比起背后堆积如山的代码与“逆动力模型”等看了就让人迷茫的技术词汇,作为普通玩家的我们,更关心的可能还是这么一款高智能、饶有趣味的AI到底什么时候才能实装进游戏里。


“给俺也整一个”<br>
“给俺也整一个”



无须等待,AI走进千万家的场景就在当下。


虽然OpenAI的模型目前仅提交给了专门负责研究《我的世界》AI的MineRL大赛,但就在他们论文发布的前后几天,另一个功能类似的AI也同样出现在了网上。更重要的是,研究团队直接将他们的代码放在了Github上供所有人下载研究。


MineDojo的Github页面<br>
MineDojo的Github页面


这个名叫MineDojo的项目由英伟达的工程师进行开发,同样是通过观看网上的视频资料进行训练,但与OpenAI略有不同的是,他们的资料库要庞大得多。


MineDojo一共搜集了73万个油管上的游戏视频、7000多个维基网页,甚至还有上百万条和《我的世界》有关的Reddit评论。


“互联网规模”<br>
“互联网规模”


这么做的目的,当然在于帮助AI理解人类语境中“建造“”求生“等词汇的意义,油管主们在教学视频中声情并茂地教导观众从哪里出发,到哪里寻找神庙,再到如何攻略末影龙——


对于AI来说,这就是上好的“网课”。


支持这一行为的,是一个被称为MineCLIP的学习算法。它可以帮助AI把主播的解说与视频中展示的操作联系起来,以此达到训练的目的;同样的,训练好的AI也能理解玩家直接下达的任务。


这是MineDojo最有趣的部分,工程师们准备了3000个可以直接下达给AI的指令,一类是程序化任务,例如“生存3天”或“收集两块木头”,这是可以用数字和名词客观衡量的任务;另一类是抽象化任务,例如“建造一座漂亮的海滨别墅”。


AI可能很难理解“漂亮”“海滨”“别墅”到底是什么意思,不过通过视频画面的讲解,再搜索玩家们相关评论的关键词之后,大多数时刻AI都能有模有样地完成目标。


在这些任务中,玩家可以给AI下令“把牛羊圈起来”“去沼泽里找鸡”“尽可能地活久一点”,或者干脆让它去搜刮一个海底神庙。因为使用了互联网上的常用语言,AI对某些人类特有的幽默感学得挺到位的。


下达”玩”的指令<br>
下达”玩”的指令


和OpenAI的模型比起来,MineDojo的技术难度或许并没有那么高,毕竟它直接接入了游戏端口,利用游戏内的数据直接控制AI行动要简单许多;而OpenAI则是从零开始建立了一个模仿人类的行动模型,指令都是直接模拟人类的键鼠操作。


并且MineDojo在部分时刻依然要借助修改游戏数据才能达到目的,比如攻略末影龙的时候,只有“作弊”让末影龙站在原地挨打才能通关。


手足相残的残忍录像<br>
手足相残的残忍录像


不过,MineDojo依然呈现出了AI可以通过现有视频、资料进行学习的能力。唯一遗憾的是,目前还没有看到多少MineDojo实装后的反馈,因此实际效果如何也存在一定的疑问。好处是它供所有人免费下载,当作AI入门的免费资料试试未尝不可。



得益于当代互联网的发展,AI能从视频资料中获取自己想要的知识。人类也是如此,制作一个会玩游戏的AI,有时候看视频就够了。


视频比教科书更进一步的是,哪怕观众什么也不明白,不知道python语言、架构、蒙特卡洛算法是什么,每个人依然能从视频里得到乐趣,随后潜移默化地了解知识。


在这一领域起代表性作用的,是那些致力于设计游戏AI的视频制作者们。


首先要提到的是人们或许更为熟知的“遗传算法”,一个在上个世纪的六十年代提出,被这个世纪所发扬广大的技术。


它类似生物学意义上的进化论,具体来说,就是通过系统生成一堆什么也不懂的婴儿,让他们在大自然(程序)世界里尝试各种操作,通过选择表现更好的子代,达到不断优化AI表现的目的。


用油管上一条《AI学习玩JUMP KING》的视频举例,大致场景就是这样的。


先生500个孩子试试<br>
先生500个孩子试试


视频作者Code Bullet(下文简称CB)已经用这个算法成功制作出了不少AI通关游戏的视频,《吃豆人》《Flappy Bird》这类强调优化AI行动的游戏都可以沿着类似的思路走下去。


思路是清晰的,做起来也很“简单”。翻阅一下CB大部分制作AI的视频,都可以看到他的过程主要分为了三个部分。


“制作一个会玩游戏的AI仅需要三步”<br>
“制作一个会玩游戏的AI仅需要三步”


重做游戏的原因我们稍后再进行讨论,CB视频中展现的精髓部分在于遗传算法的“筛选”功能。不同于物竞天择的大自然,这里我们才是负责挑选AI的上帝。


刚出生的AI当然是什么也不懂得的小婴儿,给它们添加行动指令,AI也不会懂得往哪里行动有什么意义。因此常见的做法是给随机行动的AI设置奖励和惩罚,例如跳跃一次加1分、达到下一关加2分、左右移动加0.5分,向下跌落则扣1分。


“往上走就好,往下是坏,这很简单”<br>
“往上走就好,往下是坏,这很简单”


每代AI只有五次行动机会,五次行动结束后,跳跃高度最高的AI就会成为下一代的模范,此后的每一代AI都会遵循上一代摸索出最好的路径前进——这就是很简单的进化了。


不过这么简单的规则还没有办法解决某些“思考”问题,如果某关需要先下降,再向上跳跃的话,死脑筋的AI就会因为扣分原则而拒绝往下跳。


解决办法可以是在降落地点设置同样可以提供奖励的收集品,引导AI通过收集奖励,前往更高的场景。


跟游戏引导玩家的方式其实很像<br>
跟游戏引导玩家的方式其实很像


等所有程序都准备好之后,只要让AI自己跑起来就行了,它们自然会一代代地找到最好走的路线,最终完成游戏通关的任务。


经历862代的演变后,就能到顶啦<br>
经历862代的演变后,就能到顶啦



自AlphaGo 2017年从赛场“退役”,已经过去了五年。自那之后,“民用AI”在游戏领域可谓发光发热,在油管上用AI玩《VALORANT》《大富翁》《糖豆人》的博主们也大有人在。


虽然没有公司的资金支持,也没有流着血泪帮忙标注数据的研究生们,但得益于Github的开放性,每个网民随手就可以下到一大堆经过一定训练的神经网络程序。



以一位油管上仅有7000粉丝的小博主River为例,他的一期视频就很简洁地展现了AI技术的低门槛


前期准备非常简单:你只需要两台电脑、一段网上下载的程序、一个视频采集卡,再加一个无线鼠标信号接收器。


而要做的工作也无非是标注一些供AI训练识别能力的图片,一“小”段指示行为模式的代码,然后直接扫描小地图指示方位,再把键盘信号都通过无线鼠标传送到电脑里。


虽然信号发送是麻烦了点,但好处也有,因为没有额外程序接入游戏,自然也不会被判断出使用了外挂。



一切操作都是由另一台电脑根据实时图像作出的<br>
一切操作都是由另一台电脑根据实时图像作出的


当然,在目前的表现上来看,River的AI也和普通的AI机器人差不多,并没有AlphaGo那种神奇的自我进化能力。


不过,只是想简单体验AI设计,已经没有了那么高的门槛。不断设计更新更强的AI也是一件颇有乐趣的行为,其中一项就是分辨正确与错误之间的“边界”。


那是人(确信)<br>
那是人(确信)


正如MineDojo要区分程式化任务与抽象类任务的区别,我们在教导AI时,同样能从AI分辨的结果当中,得到自己对于事物的定义和由此产生的解释,或许能启发人类解决生活中的矛盾。


朋友问你今天过得怎么样、相亲时怎么向对方介绍自己,如果每个问题都能用程序解答,未尝不是人类也已经进化到更高一层的体现。



谁训练了我,我又训练了谁?


本文来自微信公众号:游戏研究社 (ID:yysaag),作者:RMHO