OpenAI剛剛開源了一個大規(guī)模多智能體游戲環(huán)境,這是一個大規(guī)模強化學習模擬器,支持大量智能體同時在線,而訓練只需一個桌面CPU。
OpenAI今天重磅發(fā)布Neural MMO,這是一個“大規(guī)模多智能體”虛擬訓練平臺,它將AI智能體扔進一個類似RPG的世界——一個擁有資源收集機制和玩家對戰(zhàn)機制的完整游戲世界!
OpenAI在最新博客文章中寫道:“大型多人在線游戲(Massively Multiplayer Online Games, MMOs)這個游戲類型模擬了一個龐大的生態(tài)系統(tǒng),其中有數(shù)量不等的玩家在持續(xù)而廣闊的環(huán)境中進行競爭?!?/p>
“包含許多智能體和物種能夠帶來更好的探索、迥異的生態(tài)位形成,以及更強的整體能力。”
AI智能體在Neural MMO環(huán)境中隨機生成,Neural MMO環(huán)境中還包含自動生成的預(yù)定大小的瓦片地圖(tile maps)。其中一些tile是可穿越的,如“森林”(里邊有食物),其他則不能穿越(如水和石頭)。
agent觀察以各自位置為中心的方塊tile,在每個 timestamp 進行一次移動和一次攻擊,解決諸如尋找有限的“食物”和“水”資源的任務(wù)(通過踩到forest tile或走到water tile旁邊),以及與其他 agent 戰(zhàn)斗(“近戰(zhàn),” “遠攻”, “法術(shù)”等)。
OpenAI使用Neural MMO訓練了一個AI系統(tǒng),通過獎勵agent的lifetime (即agent能夠維持活著的時間)來實現(xiàn)。
他們發(fā)現(xiàn),智能體之間彼此交互的時間越長,它們在某些任務(wù)中的表現(xiàn)就越好,并且增加同時存在的智能體的最大數(shù)量有助于“放大”它們的探索。
有趣的是,他們還發(fā)現(xiàn),增加智能體的種群規(guī)??梢源偈顾鼈兎稚⒌降貓D的不同區(qū)域,而在較大環(huán)境中訓練的智能體“始終”優(yōu)于在較小環(huán)境中訓練的智能體。
OpenAI在GitHub上發(fā)布了Neural MMO,它的設(shè)計支持大量智能體(100臺并行服務(wù)器每臺最多支持128個智能體)。Neural MMO封裝在基線中(在100多個世界中訓練),可以比較agent的性能,并且計算開銷相對較低——訓練只需要單個桌面CPU。
OpenAI 在博客文章中詳細介紹了Neural MMO 強化學習環(huán)境的技術(shù)細節(jié):
多智能體強化學習兩大挑戰(zhàn)
近年來,多智能體設(shè)置已經(jīng)成為深入強化學習研究的一個有效平臺。盡管取得了許多進展,多智能體強化學習仍然面臨兩個主要挑戰(zhàn)。
我們需要創(chuàng)建具有高度復雜性上限的開放式任務(wù):當前的環(huán)境要么雖然復雜但過于狹窄,要么雖然開放但過于簡單。持續(xù)性和大規(guī)模等屬性也很關(guān)鍵,但是我們還需要更多的基準環(huán)境(benchmark environments)來量化在具有大規(guī)模和持續(xù)性條件下的學習進度。
大型多人在線游戲(Massively Multiplayer Online Games, MMOs)這個游戲類型模擬了一個大型生態(tài)系統(tǒng),該系統(tǒng)由數(shù)量不等的玩家在持續(xù)且廣闊的環(huán)境中進行競爭。
為了應(yīng)對這些挑戰(zhàn),我們構(gòu)建了Neural MMO,它符合以下標準:
持續(xù)性(Persistence):在沒有環(huán)境重置的情況下,agent可以在其他學習agent存在的情況下同時學習。策略必須考慮長期范圍,并適應(yīng)其他agent行為中潛在的快速變化。
規(guī)模(Scale):環(huán)境支持大量且可變數(shù)量的實體。我們的實驗考慮了在100個并行服務(wù)器中,每個服務(wù)器128個并行智能體的長達100M的lifetimes。
效率(Efficiency):進入Neural MMO的計算障礙很低。我們可以在單個桌面CPU上訓練有效的策略。
擴展(Expansion):與現(xiàn)有MMO類似,Neural MMO的設(shè)計旨在更新新內(nèi)容。目前的核心功能包括tile-based地形的程序化生成、食物和水的覓食系統(tǒng),以及戰(zhàn)略作戰(zhàn)系統(tǒng)。未來有機會進行開源的擴展。
Neural MMO環(huán)境
玩家(智能體)可以加入任何可用的服務(wù)器(環(huán)境),每個服務(wù)器(環(huán)境)都包含一個自動生成的可配置大小的tile-based游戲地圖。有些tile,如生長食物的森林瓦片和草地瓦片,是可穿越的。其他的,如水和固體石頭,則不能穿越。
智能體在環(huán)境邊緣的隨機位置生成。它們必須獲得食物和水,并避免被其他智能體打倒,以維持生命。踩在森林瓦片上或靠近水的地方,分別會重新補充食物供應(yīng)或水供應(yīng)。
然而,森林瓦片的食物供應(yīng)有限,隨著時間的推移,食物會緩慢再生。這意味著智能體們必須競爭食物瓦片,同時周期性地從無限的水瓦片中補充水的供應(yīng)。
玩家在戰(zhàn)斗中使用三種戰(zhàn)斗風格,分別是近戰(zhàn)(Melee),遠攻(Range)和法術(shù)(Mage)。
輸入:智能體觀察以當前位置為中心的方形瓦片地圖,包括瓦片地形類型和入侵者的屬性(健康、食物、水和位置)。
輸出:智能體為下一個timestep輸出動作選項,動作包括一次移動和一次攻擊。
平臺為價值函數(shù)、地圖瓦片可視化分布和學習策略的agent-agent依賴關(guān)系提供了一個程序環(huán)境生成器(procedural environment generator)和可視化工具。Baseline使用超過100個世界的策略梯度進行訓練。
模型
作為一個簡單的baseline,我們使用普通的策略梯度訓練了一個小型的、完全連接的架構(gòu),將值函數(shù)基線和獎勵折扣作為唯一的增強。智能體不會因為實現(xiàn)了特定的目標而獲得獎勵,而是只根據(jù)其lifetime(軌跡長度)進行優(yōu)化:在其lifetime中,每個tick都會獲得1的獎勵。我們通過計算所有玩家的最大值將可變長度的觀察值(比如周圍玩家的列表)轉(zhuǎn)換為單個長度向量(OpenAI Five也使用了這個技巧)。
GitHub開源的版本包含了完全分布式訓練實現(xiàn),基于PyTorch和Ray。
評估結(jié)果
訓練時的最大population size在(16、32、64、128)之間。為了提高效率,策略在由16個智能體組成的組之間共享。在測試時,我們將在成對實驗中的populations合并,并在一個固定的population size下評估lifetime。我們只對覓食任務(wù)進行評估,因為作戰(zhàn)策略更難直接比較。結(jié)果顯示,在更大的population中訓練出來的智能體總是表現(xiàn)得更好。
智能體的策略是從多個群體中均勻采樣的——不同群體的智能體共享架構(gòu),但只有相同群體中的智能體共享權(quán)重。初步實驗表明,隨著多智能體交互作用的增加,智能體的能力逐漸增強。增加同時存在的玩家的最大數(shù)量能夠放大探索;群體數(shù)量的增加擴大了生態(tài)位的形成,也就是說,擴大了群體在地圖不同區(qū)域的擴散和覓食的趨勢。
服務(wù)器合并錦標賽:多智能體增強了競爭力
MMO之間沒有標準的程序來評估跨多個服務(wù)器的相對玩家能力。然而,MMO服務(wù)器有時會經(jīng)歷合并,即來自多個服務(wù)器的玩家基地被放置在單個服務(wù)器中。我們通過合并在不同服務(wù)器上訓練的玩家基地來實現(xiàn)“錦標賽”風格的評估。這使我們能夠直接比較在不同實驗環(huán)境中學習到的策略。我們改變了測試時間范圍,發(fā)現(xiàn)在較大環(huán)境中訓練的智能體始終優(yōu)于在較小環(huán)境中訓練的智能體。
增大群體規(guī)模擴大了探索
Population size的增大擴大了探索范圍:智能體會分散開來,以避免競爭。視頻最后幾幀顯示了學習值函數(shù)疊加。
在自然界中,動物之間的競爭可以激勵它們分散開來,以避免沖突。我們觀察到,隨著同時存在的智能體數(shù)量的增加,地圖覆蓋率也在增加。智能體學習探索僅僅是因為其他智能體的存在提供了這樣做的自然動機。
物種數(shù)量的增加擴大了生態(tài)位的形成
物種數(shù)量(populations的數(shù)量)放大了生態(tài)位形成(niche formation)。探索地圖覆蓋了游戲地圖;不同的顏色對應(yīng)不同的物種。訓練單一種群往往會產(chǎn)生單一的深度探索路徑。訓練8個種群會導致許多更淺的路徑:種群分散以避免物種間的競爭。
在一個足夠大且資源豐富的環(huán)境中,我們發(fā)現(xiàn)不同的智能體種群分布在整個地圖上,以避免在種群增長時與其他智能體競爭。由于實體無法在競爭中勝過其種群中的其他智能體(即與它們共享權(quán)重),它們傾向于在地圖上尋找包含足夠資源以維持其人口的區(qū)域。DeepMind在并發(fā)多智能體研究中也獨立觀察到類似的效果。
其他啟發(fā)
每個方形地圖顯示了位于地圖中心的智能體對其周圍智能體存在的響應(yīng)。我們展示了初始化和訓練早期的覓食地圖,額外的依賴關(guān)系圖對應(yīng)于不同的覓食和戰(zhàn)斗形式。
我們通過將智能體固定在假想地圖的中心來可視化agent-agent依賴關(guān)系。對于該智能體可見的每個位置,我們將顯示如果在該位置有第二個智能體,值函數(shù)將是什么。我們發(fā)現(xiàn),在覓食和戰(zhàn)斗環(huán)境中,agent學習依賴于其他agent的策略。當智能體學習環(huán)境中的戰(zhàn)斗機制時,它們開始適當?shù)卦u估有效的接近范圍和接近的角度。
下一步的研究
我們的Neural MMO解決了之前基于游戲環(huán)境的兩個主要限制,但仍有許多問題尚未解決。NeuralMMO在環(huán)境復雜性和人口規(guī)模之間找到了一個中間地帶。我們在設(shè)計這個環(huán)境時考慮到了開源擴展,并將其作為研究社區(qū)的基礎(chǔ)。
開源
此存儲庫包含基于 THREE.js 的主要神經(jīng) MMO 項目的 3D 瀏覽器客戶端。它雖然是用 Javascript 寫的,但讀起來像 Python。
安裝
你不需要手動 clone 這個庫,只需遵循 OpenAI Repo 中的安裝說明 (下方鏈接):
https://docs.google.com/document/d/1_76rYTPtPysSh2_cFFz3Mfso-9VL3_tF5ziaIZ8qmS8/edit?usp=sharing
該鏈接將下載 THREE.js。如果你不希望下載整個源代碼庫,可以手動完成此操作。
性能
在高端臺式機上大約 50-60 FPS,負載在 3s 左右,在 Razer 筆記本電腦上大約 30 FPS,負載在 10s 左右。
已知局限性
客戶端已經(jīng)在 Ubuntu 上用 Firefox 進行了測試。不要使用 Chrome。它應(yīng)該可以在其他 Linux 發(fā)行版和 mac 上運行。
如果硬件設(shè)置允許,請使用 Nvidia 驅(qū)動程序。唯一真正的需求是支持每個著色器超過 16 個紋理。這只在 Counts visualizer 中需要 —— 如果在切換疊加時地形圖消失,那么你將知道你的設(shè)置是錯誤的。
這是因為研究疊加層被編寫為原始 glsl 著色器。特別地,計數(shù)探索可視化器硬編碼對應(yīng)于探索地圖的八個紋理。 這超出了允許的紋理數(shù)量。
-
智能體
+關(guān)注
關(guān)注
1文章
144瀏覽量
10575 -
生態(tài)系統(tǒng)
+關(guān)注
關(guān)注
0文章
702瀏覽量
20723 -
強化學習
+關(guān)注
關(guān)注
4文章
266瀏覽量
11246
原文標題:OpenAI重磅發(fā)布Nueral MMO:一個CPU支撐大量智能體同時在線
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論