一句話就能讓 AI 找到 3A 遊戲 Bug?準確率達 86%,Demo 線上可玩
輸入簡單的關鍵字,就能給 3A 大作找 Bug?
好,先來看看《GTA5》,輸入 A car flying in the air(空中汽車):
隨手點開一個視訊…… 這牛逼的物理引擎,不愧是你!
就用這種簡單的方法,我們找到了《荒野大鏢客》的空中飛馬:
(打一槍還能變成真・馬達)
還有《上古卷軸 5》的“桶中人”:
目前,Bug 的搜尋範圍包括《賽博朋克 2077》《巫師 3》《孤島驚魂 5》等多個 3A 大作在內的 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 在去年推出,能夠判別文字與影象是否相關
因此,團隊便依靠 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
線上試玩: