一句话就能让AI找到3A游戏Bug?准确率达86%,Demo在线可玩

为了让游戏顺畅运行,这群AI测试员真的拼了…

博雯 发自 凹非寺

量子位 | 公众号 QbitAI

输入简单的关键字,就能给3A大作找Bug?

好,先来看看GTA5,输入A car flying in the air(空中汽车):

随手点开一个视频……这牛逼的物理引擎,不愧是你!

就用这种简单的方法,我们找到了荒野大镖客的空中飞马:

(打一枪还能变成真·马达)

还有老滚5的“桶中人”:

目前,Bug的搜索范围包括赛博朋克2077、巫师3、孤岛惊魂5等多个3大作在内的1873个游戏,共计26954个视频。

而且还不需要任何的视频标题和其他属性,只输入文字,AI就会基于视频内容进行搜索。

就是这么一个找Bug的AI,现在已经登上了MSR 2022,一个鼓励研究者开发建立新的数据集,并基于软件系统进行有趣的应用开发的会议。

输入关键字就能给出Bug视频的AI

所以这位AI游戏测试员到底是如何工作的?

要开发AI模型自然少不了数据集,研究团队收集了reddit社区中GamePhysics版块里的2万多个视频,首次建立了一个游戏Bug数据集。

抓取工具则是他们基于Reddit API和PushShift.io API自己开发了的一个爬虫软件。

其中PushShift.io API用来获取论坛中每个提交内容的高级信息,而Reddit API则用来更新内容得分和其他元数据。

基于上面的数据集,研究团队提出了一种以对比性语言-图像预训练模型CLIP为基础的方法。

这一模型由OpenAI在去年推出,能够判别文本与图像是否相关,其zero shot效果堪比ResNet50。

因此,团队便依靠CLIP模型的零次迁移学习(Zero-shot Transfer Learning),在不需要任何数据标签和训练的情况下,以英文文本查询为输入,从上面的游戏Bug数据集中检索相关视频。

整体架构如下,主要分为三步。

首先, 对视频帧和文本查询进行编码

这一步会从每个视频中提取所有帧,将一段视频当做一种“图像的合集”,然后使用CLIP模型将输入的文本和视频帧转化为第嵌入向量表示。

然后是计算嵌入向量的相似性

这里使用余弦相似度来衡量成对的嵌入向量的相似度,通过穷举式搜索计算输入的与视频帧的相似性得分。

最后,将每个视频帧的得分汇总起来。

研究团队提供了两种汇总方法:

一种是选取一段视频所有的帧里与输入文本的相似性得分最高的帧,根据这一帧来对视频进行排名,这种方法是高度敏感的。

另一种则是将视频所有的帧与输入文本的相似度分数进行排序,然后根据池大小的超参数,在所有视频中选择一个排名最高的帧。

团队选择了基于上述AI系统的两种架构:RN101和ViT-B/32,然后分别测试了其在不同情况下的准确率。

首先是简单查询,比如输入文本只有单个物体:飞机、汽车、猫、狗等等,在这种情况下,模型检索出来的前五名视频准确率分别为76%和86%:

将单个物体与一些场景组合起来,进行复合查询时,模型检索出来的前五名视频准确率也能达到78%和82%:

如此看来,CLIP不仅掀起多模态学习的新一波浪潮,从驱动图像生成到为游戏找Bug,应用领域上也在不断拓展。

那些专找Bug的AI测试员们

像这篇论文里的这种,专为(游戏)程序找Bug的AI测试员并不是真的要来抢游戏测试的活儿,而是人力来测试实在是时间成本又高,还容易出错。

于是,业界早早就开始了AI测试的研究。

早在2018年的时候,育碧就曾经推出过一款叫做Commit Assistant的AI助手。

这款AI测试员会利用深度学习和大数据分析已有的Bug并进行标注,然后在Bug再次出现时为程序猿们提供最快的修复方案,甚至还能依据已有的经验提前触发警报。

不过当时就有粉丝怀疑,知名土豆服务器厂商做出来的抓Bug的AI,会不会自己先出了Bug,然后变成两群Bug之间的混战……

往近处说,EA在去年还推出了一款能够在给定的测试场景中进行自动探索的AI,基于强化学习的智能体会像真的测试工程师一样,在探索中发现并收集Bug:

微软也曾在2021年推出过一款叫做BugLabs的AI助手,通过GAN检测并修复代码中的错误:

这样看起来,有一个任劳任怨的AI测试员来兢兢业业地遍历玩家社区搜集Bug、或者一遍又一遍地玩游戏找问题、甚至直接从代码层面揪出问题……这多是一件美事啊!

甚至,这些负责测试的AI还能搭配那些会玩游戏的AI【加链接】,一个肝游戏,一个从游戏录像里找Bug……

那或许这种场面,就不会再出现了【狗头】。

论文:
https://arxiv.org/abs/2203.11096

在线试玩:
http://165.232.141.160:50001/

参考链接:
[1]https://asgaardlab.github.io/CLIPxGamePhysics/
[2]https://github.com/asgaardlab/CLIPxGamePhysics
[3]https://arxiv.org/abs/2103.13798
[4]https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247514447&idx=5&sn=ad3c5776f8562fe2ea353f7289add602&chksm=e8d00e3ddfa7872bfc456180d3be0c130b50a64718576712349c533329e07b9895b5ed66a4bf&token=2079333933&lang=zh_CN#rd

版权所有,未经授权不得以任何形式转载及使用,违者必究。