今年 6 月底,知名科技公司 OpenAI 发布了一篇论文,主要围绕着一项名为 “视频预训练”(VPT:Video PreTraining)的 AI 技术展开讨论。
这项研究的成果相当喜人,例如,在看了 7 万多个小时《我的世界》视频后,案例中的 AI 已经成功学会了求生所需的大部分必备技能:游泳、狩猎、建房、下矿,甚至搜刮村庄。
尽管依然存在着一些人类难以理解的操作,但就结果来说,这已经比许多同类 AI 表现得要好多了。
AI 搜到东西后兴奋地撸起了天花板
当然,相比起背后堆积如山的代码与“逆动力模型”等看了就让人迷茫的技术词汇,作为普通玩家的我们,更关心的可能还是这么一款高智能、饶有趣味的 AI 到底什么时候才能实装进游戏里。
“给俺也整一个”
1
无须等待,AI 走进千万家的场景就在当下。
虽然 OpenAI 的模型目前仅提交给了专门负责研究《我的世界》AI 的 MineRL 大赛,但就在他们论文发布的前后几天,另一个功能类似的 AI 也同样出现在了网上。更重要的是,研究团队直接将他们的代码放在了 Github 上供所有人下载研究。
MineDojo 的 Github 页面
这个名叫 MineDojo 的项目由英伟达的工程师进行开发,同样是通过观看网上的视频资料进行训练,但与 OpenAI 略有不同的是,他们的资料库要庞大得多。
MineDojo 一共搜集了 73 万个油管上的游戏视频、7000 多个维基网页,甚至还有上百万条和《我的世界》有关的 Reddit 评论。
“互联网规模”
这么做的目的,当然在于帮助 AI 理解人类语境中“建造“”求生“等词汇的意义,油管主们在教学视频中声情并茂地教导观众从哪里出发,到哪里寻找神庙,再到如何攻略末影龙 ——
对于 AI 来说,这就是上好的“网课”。
支持这一行为的,是一个被称为 MineCLIP 的学习算法。它可以帮助 AI 把主播的解说与视频中展示的操作联系起来,以此达到训练的目的;同样的,训练好的 AI 也能理解玩家直接下达的任务。
这是 MineDojo 最有趣的部分,工程师们准备了 3000 个可以直接下达给 AI 的指令,一类是程序化任务,例如“生存 3 天”或“收集两块木头”,这是可以用数字和名词客观衡量的任务;另一类是抽象化任务,例如“建造一座漂亮的海滨别墅”。
AI 可能很难理解“漂亮”“海滨”“别墅”到底是什么意思,不过通过视频画面的讲解,再搜索玩家们相关评论的关键词之后,大多数时刻 AI 都能有模有样地完成目标。
在这些任务中,玩家可以给 AI 下令“把牛羊圈起来”“去沼泽里找鸡”“尽可能地活久一点”,或者干脆让它去搜刮一个海底神庙。因为使用了互联网上的常用语言,AI 对某些人类特有的幽默感学得挺到位的。
下达”玩”的指令
和 OpenAI 的模型比起来,MineDojo 的技术难度或许并没有那么高,毕竟它直接接入了游戏端口,利用游戏内的数据直接控制 AI 行动要简单许多;而 OpenAI 则是从零开始建立了一个模仿人类的行动模型,指令都是直接模拟人类的键鼠操作。
并且 MineDojo 在部分时刻依然要借助修改游戏数据才能达到目的,比如攻略末影龙的时候,只有“作弊”让末影龙站在原地挨打才能通关。
手足相残的残忍录像
不过,MineDojo 依然呈现出了 AI 可以通过现有视频、资料进行学习的能力。唯一遗憾的是,目前还没有看到多少 MineDojo 实装后的反馈,因此实际效果如何也存在一定的疑问。好处是它供所有人免费下载,当作 AI 入门的免费资料试试未尝不可。
2
得益于当代互联网的发展,AI 能从视频资料中获取自己想要的知识。人类也是如此,制作一个会玩游戏的 AI,有时候看视频就够了。
视频比教科书更进一步的是,哪怕观众什么也不明白,不知道 python 语言、架构、蒙特卡洛算法是什么,每个人依然能从视频里得到乐趣,随后潜移默化地了解知识。
在这一领域起代表性作用的,是那些致力于设计游戏 AI 的视频制作者们。
首先要提到的是人们或许更为熟知的“遗传算法”,一个在上个世纪的六十年代提出,被这个世纪所发扬光大的技术。
它类似生物学意义上的进化论,具体来说,就是通过系统生成一堆什么也不懂的婴儿,让他们在大自然(程序)世界里尝试各种操作,通过选择表现更好的子代,达到不断优化 AI 表现的目的。
用油管上一条《AI 学习玩 JUMP KING》的视频举例,大致场景就是这样的。
先生 500 个孩子试试
视频作者 Code Bullet(下文简称 CB)已经用这个算法成功制作出了不少 AI 通关游戏的视频,《吃豆人》《Flappy Bird》这类强调优化 AI 行动的游戏都可以沿着类似的思路走下去。
思路是清晰的,做起来也很“简单”。翻阅一下 CB 大部分制作 AI 的视频,都可以看到他的过程主要分为了三个部分。
“制作一个会玩游戏的 AI 仅需要三步”
重做游戏的原因我们稍后再进行讨论,CB 视频中展现的精髓部分在于遗传算法的“筛选”功能。不同于物竞天择的大自然,这里我们才是负责挑选 AI 的上帝。
刚出生的 AI 当然是什么也不懂得的小婴儿,给它们添加行动指令,AI 也不会懂得往哪里行动有什么意义。因此常见的做法是给随机行动的 AI 设置奖励和惩罚,例如跳跃一次加 1 分、达到下一关加 2 分、左右移动加 0.5 分,向下跌落则扣 1 分。
“往上走就好,往下是坏,这很简单”
每代 AI 只有五次行动机会,五次行动结束后,跳跃高度最高的 AI 就会成为下一代的模范,此后的每一代 AI 都会遵循上一代摸索出最好的路径前进 —— 这就是很简单的进化了。
不过这么简单的规则还没有办法解决某些“思考”问题,如果某关需要先下降,再向上跳跃的话,死脑筋的 AI 就会因为扣分原则而拒绝往下跳。
解决办法可以是在降落地点设置同样可以提供奖励的收集品,引导 AI 通过收集奖励,前往更高的场景。
经历 862 代的演变后,就能到顶啦3
自 AlphaGo 2017 年从赛场“退役”,已经过去了五年。自那之后,“民用 AI”在游戏领域可谓发光发热,在油管上用 AI 玩《VALORANT》《大富翁》《糖豆人》的博主们也大有人在。
虽然没有公司的资金支持,也没有流着血泪帮忙标注数据的研究生们,但得益于 Github 的开放性,每个网民随手就可以下到一大堆经过一定训练的神经网络程序。
以一位油管上仅有 7000 粉丝的小博主 River 为例,他的一期视频就很简洁地展现了 AI 技术的低门槛。
前期准备非常简单:你只需要两台电脑、一段网上下载的程序、一个视频采集卡,再加一个无线鼠标信号接收器。
而要做的工作也无非是标注一些供 AI 训练识别能力的图片,一“小”段指示行为模式的代码,然后直接扫描小地图指示方位,再把键盘信号都通过无线鼠标传送到电脑里。
虽然信号发送是麻烦了点,但好处也有,因为没有额外程序接入游戏,自然也不会被判断出使用了外挂。
一切操作都是由另一台电脑根据实时图像作出的
当然,在目前的表现上来看,River 的 AI 也和普通的 AI 机器人差不多,并没有 AlphaGo 那种神奇的自我进化能力。
不过,只是想简单体验 AI 设计,已经没有了那么高的门槛。不断设计更新更强的 AI 也是一件颇有乐趣的行为,其中一项就是分辨正确与错误之间的“边界”。
那是人(确信)
正如 MineDojo 要区分程式化任务与抽象类任务的区别,我们在教导 AI 时,同样能从 AI 分辨的结果当中,得到自己对于事物的定义和由此产生的解释,或许能启发人类解决生活中的矛盾。
朋友问你今天过得怎么样、相亲时怎么向对方介绍自己,如果每个问题都能用程序解答,未尝不是人类也已经进化到更高一层的体现。
谁训练了我,我又训练了谁?