機(jī)器之心報(bào)道
機(jī)器之心編輯部
今天,又一個(gè)「世界首創(chuàng)」頭銜被認(rèn)領(lǐng)了。以色列創(chuàng)業(yè)團(tuán)隊(duì) Enigma Labs 宣布造出了世上首個(gè) AI 生成的多人游戲Multiverse,即「多元宇宙」。
視頻鏈接:
https://mp.weixin.qq.com/s/F8BQg_xZVxA_pjEM71-BDA
很顯然,這是一個(gè)多人賽車游戲。「玩家可以超車、漂移、加速 —— 然后再次相遇。每一次行動(dòng)都會(huì)為重塑這個(gè)世界。」
開發(fā)者 Jonathan Jacobi 表示,多人游戲曾是 AI 生成世界中缺失的拼圖,而 Multiverse 成功補(bǔ)齊這一空白,而玩家能夠?qū)崟r(shí)地與這個(gè) AI 模擬的世界進(jìn)行交互并塑造它。
更讓人吃驚的是,Multiverse 的訓(xùn)練和研發(fā)成本加起來還不到 1500 美元,其中包括數(shù)據(jù)收集、標(biāo)注、訓(xùn)練、后訓(xùn)練和模型研究。并且,它還可以直接在個(gè)人電腦上運(yùn)行
Jonathan Jacobi 寫到:「多人世界模型遠(yuǎn)遠(yuǎn)不止于游戲——它們是模擬的下一步,可解鎖由玩家、智能體和機(jī)器人塑造的動(dòng)態(tài)的、共同進(jìn)化的世界。」
不僅如此,該團(tuán)隊(duì)也宣布將會(huì)開源與該研究成果相關(guān)的一切,包括代碼、數(shù)據(jù)、權(quán)重、架構(gòu)和研究。另外,Enigma Labs 也發(fā)布了一篇技術(shù)博客,介紹了 Multiverse 背后的一些故事和技術(shù)。
- GitHub:https://github.com/EnigmaLabsAI/multiverse
- Hugging Face:https://huggingface.co/Enigma-AI
- 技術(shù)博客:https://enigma-labs.io/blog
團(tuán)隊(duì)介紹
該團(tuán)隊(duì)來自以色列,成員包括以色列的前 8200 部隊(duì)成員以及一些領(lǐng)先的創(chuàng)業(yè)公司成員,擁有豐富的研究和工程開發(fā)經(jīng)驗(yàn),涵蓋漏洞研究、算法、芯片級(jí)研究和系統(tǒng)工程。
他們寫到:「我們秉持第一性原理思維,解決了 AI 生成世界中的一項(xiàng)開放性挑戰(zhàn):多人世界模型。」
Multiverse 架構(gòu)解讀
單人游戲架構(gòu)回顧
要了解多人世界模型的架構(gòu),首先回顧一下單人世界模型中使用的現(xiàn)有架構(gòu):
該模型接收視頻幀序列以及用戶的操作(如按鍵),并利用這些信息根據(jù)當(dāng)前操作預(yù)測(cè)下一幀。
它主要由三個(gè)部分組成:
- 動(dòng)作嵌入器——將動(dòng)作轉(zhuǎn)換為嵌入向量;
- 去噪網(wǎng)絡(luò)——根據(jù)前一幀和動(dòng)作嵌入生成一幀的擴(kuò)散模型;
- 上采樣器(可選)——另一個(gè)擴(kuò)散模型,用于接收世界模型生成的低分辨率幀,并增加輸出的細(xì)節(jié)和分辨率。
多人游戲架構(gòu)
為了構(gòu)建多人游戲世界模型,該團(tuán)隊(duì)保留了上面的核心構(gòu)建模塊,但對(duì)結(jié)構(gòu)進(jìn)行了拆解 —— 重新對(duì)輸入和輸出進(jìn)行了連接,并從頭開始重新設(shè)計(jì)了訓(xùn)練流程,以實(shí)現(xiàn)真正的合作游戲:
- 動(dòng)作嵌入器——獲取兩個(gè)玩家的動(dòng)作,并輸出一個(gè)代表它們的嵌入;
- 去噪網(wǎng)絡(luò)——一個(gè)擴(kuò)散網(wǎng)絡(luò),它能基于兩個(gè)玩家之前的幀和動(dòng)作嵌入,以一個(gè)實(shí)體的形式同時(shí)生成兩個(gè)玩家的幀;
- 上采樣器——此組件與單人游戲組件非常相似。不過這里的上采樣器會(huì)分別接收兩個(gè)玩家的幀,并同時(shí)計(jì)算上采樣后的版本。
為了打造多人游戲體驗(yàn),模型需要收集雙方玩家之前的幀和動(dòng)作,并輸出各自預(yù)測(cè)的幀。關(guān)鍵在于:這兩個(gè)輸出不能僅僅看起來美觀——它們需要在內(nèi)部保持一致
這是一個(gè)真正的挑戰(zhàn),因?yàn)槎嗳擞螒蛞蕾囉?strong>共享的世界狀態(tài)。例如,如果一輛車漂移到另一輛車前面或發(fā)生碰撞,雙方玩家都應(yīng)該從各自的視角看到完全相同的事件。
該團(tuán)隊(duì)提出了一個(gè)解決方案:將雙方玩家的視角拼接成一張圖像,將他們的輸入融合成一個(gè)聯(lián)合動(dòng)作向量,并將這一切視為一個(gè)統(tǒng)一的場景。
于是問題來了:怎樣才能最好地將兩個(gè)玩家視圖合并為模型可以處理的單一輸入?
- 顯而易見的做法是將它們垂直堆疊,就像經(jīng)典的分屏游戲一樣;
- 一個(gè)更有趣的選擇是沿通道軸堆疊,將兩幀圖像視為具有兩倍色彩通道的圖像。
答案是方案 2,即沿通道軸堆疊。因?yàn)檫@里的擴(kuò)散模型是一個(gè) U 型網(wǎng)絡(luò),主要由卷積層和解卷積層組成,所以第一層只處理附近的像素。如果將兩個(gè)幀垂直堆疊,那么直到中間層才會(huì)對(duì)幀進(jìn)行處理。這就降低了模型在幀間產(chǎn)生一致結(jié)構(gòu)的能力。
另一方面,如果將幀按通道軸堆疊,則網(wǎng)絡(luò)的每一層都會(huì)同時(shí)處理兩名玩家的視圖。
車輛運(yùn)動(dòng)學(xué)和相對(duì)運(yùn)動(dòng)的高效上下文擴(kuò)展
為了準(zhǔn)確預(yù)測(cè)下一幀,模型需要接收玩家的動(dòng)作(如轉(zhuǎn)向輸入)和足夠的幀數(shù),以計(jì)算兩輛車相對(duì)于道路和彼此的速度。
在研究中,作者發(fā)現(xiàn) 8 幀(30 幀/秒)的幀數(shù)可以讓模型學(xué)習(xí)車輛運(yùn)動(dòng)學(xué),如加速、制動(dòng)和轉(zhuǎn)向。但兩輛車的相對(duì)運(yùn)動(dòng)速度要比道路慢得多。例如,車輛的行駛速度約為 100 公里/小時(shí),而超車的相對(duì)速度約為 5 公里/小時(shí)。
為了捕捉這種相對(duì)運(yùn)動(dòng),需要將上下文的大小擴(kuò)大近三倍。但這樣做會(huì)使模型速度過慢,無法進(jìn)行實(shí)時(shí)游戲,增加內(nèi)存使用量,并使訓(xùn)練速度大大降低。
為了保持上下文大小,但又能提供更多的時(shí)間信息,作者為模型提供了前幾幀和動(dòng)作的稀疏采樣。具體來說,他們向模型提供最近的 4 個(gè)幀。然后在接下來的 4 個(gè)幀中每隔 4 個(gè)幀提供一次。上下文中最早的一幀為 20 幀,即過去 0.666 秒,足以捕捉到車輛的相對(duì)運(yùn)動(dòng)。此外,這還能讓模型更好地捕捉到與路面相比的速度和加速度,從而使駕駛的動(dòng)態(tài)效果更加出色。
多人游戲訓(xùn)練
為了學(xué)習(xí)駕駛和多人互動(dòng),模型需要對(duì)這些互動(dòng)進(jìn)行訓(xùn)練。世界模型中的行走、駕駛和其他常見任務(wù)需要較小的預(yù)測(cè)范圍,例如 0.25 秒的未來預(yù)測(cè)。
多人交互則需要更長的時(shí)間。在 0.25 秒內(nèi),玩家之間的相對(duì)運(yùn)動(dòng)幾乎可以忽略不計(jì)。訓(xùn)練多人世界模型需要更長的預(yù)測(cè)時(shí)間。因此,作者對(duì)模型進(jìn)行了訓(xùn)練,以預(yù)測(cè)未來 15 秒內(nèi)的自回歸預(yù)測(cè)(30 幀/秒)。
為了讓模型能夠執(zhí)行如此長的預(yù)測(cè)范圍,此處采用了課程學(xué)習(xí)的方法,并在訓(xùn)練過程中將預(yù)測(cè)范圍從 0.25 秒增加到 15 秒。這樣,在初始訓(xùn)練階段,即模型學(xué)習(xí)汽車和賽道幾何等低級(jí)特征時(shí),就能進(jìn)行高效訓(xùn)練。當(dāng)模型學(xué)會(huì)生成連貫的幀和車輛運(yùn)動(dòng)學(xué)建模后,就可以對(duì)球員的行為等高級(jí)概念進(jìn)行訓(xùn)練。
在增加預(yù)測(cè)范圍后,模型的目標(biāo)持久性和幀間一致性都有了顯著提高。
高效的長視野訓(xùn)練
訓(xùn)練未來 100 幀以上的模型對(duì) VRAM 提出了挑戰(zhàn)。在批尺寸較大的情況下,將幀加載到 GPU 內(nèi)存中進(jìn)行自回歸預(yù)測(cè)變得不可行。
為了解決內(nèi)存不足的問題,作者以頁面為單位進(jìn)行自回歸預(yù)測(cè)。
在訓(xùn)練開始時(shí),加載第一批幀并進(jìn)行預(yù)測(cè)。
然后加載下一頁,并放棄上下文窗口之外的幀。
Gran Turismo 數(shù)據(jù)集:生成與收集
該團(tuán)隊(duì)訓(xùn)練模型的數(shù)據(jù)收集自索尼的游戲《GT 賽車 4》(Gran Turismo 4)。他們打趣地表示:「這只是一個(gè)技術(shù)演示,我們是鐵粉,所以請(qǐng)不要起訴我們。」
設(shè)置和游戲修改
他們使用了較為簡單的測(cè)試用例:在筑波賽道(Tsukuba Circuit)上的 1v1 比賽,視角是第三人稱。筑波賽道比較短,道路也簡單,非常適合訓(xùn)練。
但問題也有:《GT 賽車 4》并不支持玩家以 1v1 模式全屏運(yùn)行筑波賽道。該游戲僅支持 1v5 或分屏對(duì)戰(zhàn)模式。因此,該團(tuán)隊(duì)對(duì)游戲進(jìn)行了逆向工程和修改,從而可以真正的 1v1 模式啟動(dòng)筑波賽道:
數(shù)據(jù)收集
為了收集雙方玩家的第三人稱視頻數(shù)據(jù),該團(tuán)隊(duì)利用了游戲內(nèi)置的回放系統(tǒng) —— 每場比賽回放兩次,并從每位玩家的視角進(jìn)行錄制。然后,該團(tuán)隊(duì)將兩段錄像同步,使其與原始的雙人比賽畫面一致,并將它們合并成一段兩位玩家同時(shí)比賽的視頻。
那么,該團(tuán)隊(duì)采用了什么方法來捕捉數(shù)據(jù)集中的按鍵動(dòng)作,更何況其中一位玩家是游戲機(jī)器人而非人類?
幸運(yùn)的是,該游戲會(huì)在屏幕上顯示足夠多的 HUD 元素(例如油門、剎車和轉(zhuǎn)向指示燈);這些信息可用于準(zhǔn)確地重建達(dá)到每個(gè)狀態(tài)所需的控制輸入:
該團(tuán)隊(duì)利用計(jì)算機(jī)視覺逐幀提取了這些方框中的信息,并解碼了其背后的控制輸入,進(jìn)而重建得到了完整的按鍵操作,從而無需任何直接輸入記錄即可構(gòu)建完整的數(shù)據(jù)集。
自動(dòng)的數(shù)據(jù)生成
乍一看,我們似乎不得不坐下來手動(dòng)玩游戲幾個(gè)小時(shí),為每場比賽錄制兩次回放 —— 這就有點(diǎn)痛苦了。
雖然 Multiverse 的部分開源數(shù)據(jù)集確實(shí)來自手動(dòng)游戲,但作者發(fā)現(xiàn)了一種更具可擴(kuò)展性的方法:B-Spec 模式。在這個(gè)模式下,玩家可以使用游戲手柄或方向盤來指示游戲機(jī)器人駕駛員代表他們進(jìn)行比賽。
由于 B-Spec 的控制功能有限且簡單,作者編寫了一個(gè)腳本,向 B-Spec 發(fā)送隨機(jī)輸入,自動(dòng)觸發(fā)比賽。之后,同一個(gè)腳本會(huì)從兩個(gè)視角錄制回放畫面,從而捕捉這些 AI 驅(qū)動(dòng)比賽的第三人稱視頻。
作者還嘗試使用 OpenPilot 的 Supercombo 模型來控制賽車,本質(zhì)上是將其變成了游戲中的自動(dòng)駕駛智能體。雖然這種方法有效,但最終顯得多余 —— 因此,最終版本中還是使用 B-Spec 進(jìn)行數(shù)據(jù)生成:
多人游戲世界模型不僅僅是游戲領(lǐng)域的一項(xiàng)突破,更是人工智能理解共享環(huán)境的下一步方向。通過使智能體能夠在同一個(gè)世界中學(xué)習(xí)、響應(yīng)和共同適應(yīng),這些模型開啟了新的可能性。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.