上個月,谷歌的GameNGen AI 模型顯示, 廣義圖像擴散技術可用於生成可接受、可玩的《毀滅戰士》版本。現在,研究人員正在將一些類似的技術與一個名為 MarioVGG 的模型結合使用,看看AI是否可以根據用戶輸入生成可信的《超級馬里奧兄弟》視頻。
MarioVGG 模型的結果(由加密貨幣相關 AI 公司Virtuals Protocol 以預印本形式發佈)仍然顯示出許多明顯的缺陷,並且它目前對於任何接近實時遊戲的東西來說都太慢了。但結果表明,即使是一個有限的模型,只要研究一點視頻和輸入數據,也可以推斷出一些令人印象深刻的物理和遊戲動態。
研究人員希望這代表著“製作和展示可靠且可控的視頻遊戲生成器”的第一步,甚至可能在未來“完全使用視頻生成模型取代遊戲開發和遊戲引擎”。
為了訓練他們的模型,MarioVGG 的研究人員(貢獻者包括 GitHub 用戶erniechew和Brian Lim )從《超級馬里奧兄弟》遊戲的公共數據集開始,該數據集包含 280 個“關卡”的輸入和為機器學習目的而安排的圖像數據(從訓練數據中刪除了 1-1 關,以便可以使用其中的圖像進行評估)。該數據集中的 737,000 多個單獨幀被“預處理”成 35 幀的塊,因此模型可以開始瞭解各種輸入的直接結果通常是什麼樣的。
為了“簡化遊戲情況”,研究人員決定只關注數據集中的兩個潛在輸入:“向右跑”和“向右跑並跳躍”。然而,即使是這種有限的運動集也給機器學習系統帶來了一些困難,因為預處理器必須在跳躍前向後查看幾幀,才能確定“跑步”是否開始以及何時開始。任何包括空中調整(即“左”按鈕)的跳躍也必須被丟棄,因為“這會給訓練數據集帶來噪音”,研究人員寫道。
經過預處理(以及在單個 RTX 4090 顯卡上進行約 48 小時的訓練)後,研究人員使用標準卷積和去噪過程從靜態起始遊戲圖像和文本輸入(在此有限情況下為“運行”或“跳躍”)生成新的視頻幀。研究人員表示,雖然這些生成的序列僅持續幾幀,但一個序列的最後一幀可以用作新序列的第一幀,從而可以創建任意長度的遊戲視頻,同時仍顯示“連貫一致的遊戲玩法”。
即使經過了所有這些設置,MarioVGG 也無法生成與真正的 NES 遊戲毫無二致的流暢視頻。為了提高效率,研究人員將輸出幀從 NES 的 256×240 分辨率縮小到模糊得多的 64×48。他們還將 35 幀的視頻時間壓縮為僅 7 個生成的幀,這些幀以“均勻間隔”分佈,從而創建出比真實遊戲輸出看起來粗糙得多的“遊戲”視頻。
儘管存在這些限制,但目前 MarioVGG 模型甚至還無法實現實時視頻生成。研究人員使用的單個 RTX 4090 需要整整六秒鐘才能生成六幀視頻序列,即使在極其有限的幀速率下,也只相當於半秒多一點的視頻。研究人員承認,這“對於交互式視頻遊戲來說並不實用且不友好”,但他們希望未來對權重量化的優化(以及可能使用更多的計算資源)可以提高這一速率。
不過,考慮到這些限制,MarioVGG 可以從靜態起始圖像創建一些馬里奧奔跑和跳躍的可信視頻,類似於谷歌的 Genie 遊戲製作器。研究人員寫道,該模型甚至能夠“僅從訓練數據中的視頻幀中學習遊戲的物理原理,而無需任何明確的硬編碼規則”。研究人員寫道,這包括推斷馬里奧從懸崖邊緣跑下來時摔倒的行為(具有可信的重力)以及(通常)當馬里奧靠近障礙物時停止前進的動作。
雖然 MarioVGG 專注於模擬馬里奧的動作,但研究人員發現,當視頻滾動通過想象的關卡時,該系統可以有效地為馬里奧幻化出新的障礙。研究人員寫道,這些障礙“與遊戲的圖形語言一致”,但目前無法受到用戶提示的影響(例如,在馬里奧面前放一個坑,讓他跳過去)。
然而,與所有概率 AI 模型一樣,MarioVGG 也有令人沮喪的傾向,有時會給出完全無用的結果。有時這意味著只是忽略用戶輸入提示(研究人員寫道:“我們觀察到輸入操作文本並不總是被遵循的。”其他時候,它意味著產生明顯的視覺故障幻覺:馬里奧有時會落在障礙物內,穿過障礙物和敵人,閃爍不同的顏色,從一幀縮小/增大到另一幀,或者在重新出現之前完全消失多幀。
研究人員分享的一段特別荒謬的視頻顯示,馬里奧從橋上掉下來,變成了 Cheep-Cheep,然後飛回橋上,再次變成了馬里奧。這正是我們期望在《神奇之花》中看到的東西,而不是原版《超級馬里奧兄弟》的 AI 視頻。
研究人員推測,在“更多樣化的遊戲數據”上進行更長時間的訓練可以幫助解決這些重大問題,並幫助他們的模型模擬不僅僅是向右奔跑和跳躍。不過,MarioVGG 是一個有趣的概念驗證,它表明即使是有限的訓練數據和算法也可以創建一些不錯的基本遊戲起始模型。
本故事最初發表於Ars Technica 。