來源:新智元
編輯:Aeneas 好困
給遊戲行業來點GPT-4式震撼?這個叫Voyager的智能體不僅可以根據遊戲的反饋自主訓練,而且還能自行寫代碼推動遊戲任務。
繼斯坦福的25人小鎮後,AI智能體又出爆款新作了。
最近,英偉達首席科學家Jim Fan等人把GPT-4整進了「我的世界」(Minecraft)——提出了一個全新的AI智能體Voyager。
Voyager的厲害之處在於,它不僅性能完胜AutoGPT,而且還可以在遊戲中進行全場景的終身學習
比起之前的SOTA,Voyager獲得的物品多出了3.3倍,旅行距離變長了2.3倍,解鎖關鍵技能樹的速度快了15.3倍。
對此,網友直接震驚了:我們離通用人工智能AGI,又近了一步。
所以,未來的遊戲,就是由大模型帶動NPC來玩的吧?
真·數字生命
接入GPT-4之後,Voyager根本不用人類操心,完全就是自學成才。
它不僅掌握了挖礦、建房屋、收集、打獵這些基本的生存技能,還學會了自個進行開放式探索。
它會自己去到不同的城市,路過一片片海洋,一座座金字塔,甚至還會自己搭建傳送門。
通過自我驅動,它不斷探索著這個神奇的世界,擴充著自己的物品和裝備,配備不同等級的盔甲,用盾牌格擋上海,用柵欄圈養動物……
論文地址:https://arxiv.org/abs/2305.16291
項目地址:https://voyager.minedojo.org/
Voyager的英勇事蹟包括但不限於——
大戰末影人
造基地
挖紫水晶
挖金子
收集仙人掌
打獵
釣魚
數字生命的潛能究竟有多大?我們只知道,現在Voyager仍然在Minecraft中一刻不停地探索,不斷擴展著自己的疆域。
「訓練」無需梯度下跌
此前,AI領域的一大挑戰就是,構建具有通用能力的具身智能體,讓它們在開放世界中自主探索,自行發展新技能。
以往,學界都是採用強化學習和模仿學習,但這些方法在系統化的探索、可解釋性和泛化性等方面,表現往往差強人意。
大語言模型的出現,給構建具身智能體帶來了全新的可能性。因為基於LLM的智能體可以利用預訓練模型中蘊含的世界知識,生成一致的行動計劃或可執行策略,這就非常適合應用於遊戲和機器人之類的任務。
此前,斯坦福研究者構建出生活著25個AI智能體的虛擬小鎮,震驚了AI社區
這種智能體還有一個好處就是,不需要具體化的自然語言處理任務。
然而,這些智能體仍然無法擺脫這樣的缺陷——無法終身學習,因而不能在較長時間跨度上逐步獲取知識,並且將它們增持下來。
而這項工作最重要的意義就在於,GPT-4開啟了一種新的範式:這個過程中是靠代碼執行「訓練」,而非靠梯度下跌。
Jim Fan解釋道:我們在BabyAGI/AutoGPT之前就有了這個想法,花了很多時間找出最好的無梯度架構
「訓練模型」是Voyager迭代式構建的技能代碼庫,而非浮點數矩陣。通過這種方法,團隊正在將無梯度架構推向極限。
在這種情況下訓練出的智能體,已經具備了同人類一樣的終身學習能力。
比如,Voyager如果發現自己處在沙漠而非森林中,就會知道學會收集沙子和仙人掌就比學會收集鐵礦更重要。
而且,它不僅能根據目前的技能水平和世界狀態明確自己最合適的任務,還能根據反饋不斷完善技能,保存在記憶中,留在下次調用。
所以,我們離矽基生命出現還有多遠?
剛剛回到OpenAI的Karpathy對這個工作表示盛讚:這是個用於高級技能的「無梯度架構」。在這裡,LLM就相當於是前額葉皮層,通過代碼生成了較低級的mineflayer API。
Karpathy回憶起,在2016年左右,智能體在Minecraft環境中的表現還很讓人絕望。當時的RL只能從超稀疏的獎勵中隨機地探索執行長期任務的方式,讓人感覺非常stuck。
而現在,這個障礙已經在很大程度上被解除了——正確的做法是另闢蹊徑,首先訓練LLM從互聯網文本上學習世界知識、推理和工具使用(尤其是編寫代碼),然後直接把問題拋給它們。
最後他感慨道:如果我在2016年就讀到這種對智能體的「無梯度」方法,我肯定會大吃一驚。
微博大V「寶玉xp」也對這個工作給予了高度評價——
真的是了不起的嘗試,整個代碼都是開源的,這種自動生成任務->自動寫代碼執行任務->保存一個代碼庫可以重用的思路,應該是可以很容易應用到其他領域。
Voyager
與其他AI研究中常用的遊戲不同,Minecraft並沒有強加預定義的終點目標或固定的劇情線,而是提供了一個具有無盡可能性的遊樂場。
對於一個有效的終身學習智能體來說,它應該具有與人類玩家類似的能力:
1. 根據其當前的技能水平和世界狀態提出適當的任務,例如,如果它發現自己是在沙漠而不是森林中,就會在學習收集鐵之前學習收集沙子和仙人掌
2. 基於環境反饋來完善技能,並將掌握的技能記入記憶,以便在類似情況下重複使用(例如,與殭屍戰鬥與與蜘蛛戰鬥類似)
3. 持續探索世界,以自我驅動的方式尋找新的任務。
為了讓Voyager具有上述這些能力,來自英偉達、加州理工學院、得克薩斯大學奧斯汀分校和亞利桑那州立大學的團隊提出了3個關鍵組件:
1. 一個迭代提示機制,能結合遊戲反饋、執行錯誤和自我驗證來改進程序
2. 一個技能代碼庫,用來存儲和檢索複雜行為
3. 一個自動教程,可以最大化智能體的探索
首先,Voyager會嘗試使用一個流行的Minecraft JavaScript API(Mineflayer)來編寫一個實現特定目標的程序。
雖然程序在第一次嘗試時就出錯了,但是遊戲環境反饋和JavaScript執行錯誤(如果有的話)會幫助GPT-4改進程序。
左:環境反饋。 GPT-4意識到在製作木棒之前還需要2塊木板。
右: 執行錯誤。 GPT-4意識到它應該製作一把木斧,而不是一把「相思木」斧,因為Minecraft中並沒有「相思木」斧。
通過提供智能體當前的狀態和任務,GPT-4會告訴程序是否完成了任務。
此外,如果任務失敗了,GPT-4還會提出批評,建議如何完成任務。
自我驗證
其次,Voyager通過在向量數據庫中存儲成功的程序,逐步建立一個技能庫。每個程序可以通過其文檔字符串的嵌入來檢索。
複雜的技能是通過組合簡單的技能來合成的,這會使Voyager的能力隨著時間的推移迅速增長,並緩解災難性遺忘。
上:添加技能。每個技能都由其描述的嵌入索引,可以在將來的類似情況中檢索。
下:檢索技能。當面對自動價格提出的新任務時,會進行查詢並識別前5個相關技能。
第三,自動價格會根據智能體當前的技能水平和世界狀態,提出合適的探索任務。
例如,如果它發現自己在沙漠而非森林中,就學習採集沙子和仙人掌,而不是鐵。
具體來說,價格是由GPT-4基於「發現盡可能多樣化的東西」這個目標生成的。
自動價格
實驗
接下來,讓我們看一些實驗
團隊將Voyager與其他基於LLM的智能體技術進行了系統性的比較,比如ReAct、Reflexion,以及在Minecraft中廣受歡迎的AutoGPT。
在160次提示迭代中,Voyager發現了63個獨特的物品,比之前的SOTA多出3.3倍。
尋求新奇的自動價格自然會驅使Voyager進行廣泛的旅行。即使沒有明確的指示,Voyager也會遍歷更長的距離(2.3倍),訪問更多的地形。
相比之下,之前的方法就顯得非常「懶散」了,經常會在一小片區域裡兜圈子。
地圖探索率
那麼,經過終身學習後的「訓練模型」——技能庫,表現如何呢?
團隊清空了物品/護甲,生成了一個新的世界,並用從未見過的任務對智能體進行了測試。
可以看到,Voyager解決任務的速度明顯比其他方法更快。
值得注意的是,從終身學習中構建的技能庫不僅提高了Voyager的性能,也提升了AutoGPT的性能。
這表明,技能庫作為一種通用工具,可以有效地作為一個即插即用的方法來提高性能。
零樣本泛化
上圖中的數字是三次試驗中提示迭代的平均值。迭代次數越少,方法越有效。可以看到,Voyager解決了所有的任務,而AutoGPT經過50次提示迭代都無法解決。
此外,與其他方法相比,Voyager在解鎖木工具上快了15.3倍,石工具快8.5倍,鐵工具快6.4倍。而且擁有技能庫的Voyager是唯一解鎖鑽石工具的。
技能樹掌握情況(木工具→ 石工具→ 鐵工具→ 鑽石工具)
目前,Voyager只支持文本,但在未來可以通過視覺感知進行增強。
在團隊進行的一個初步研究中,人類可以像一個圖像標註模型一樣,向智能體提供反饋。
從而讓Voyager能夠構建複雜的3D結構,比如地獄門和房子。
結果表明,Voyager的性能優於所有替代方案。此外,GPT-4在代碼生成方面也明顯優於GPT-3.5。
消融實驗
結論
Voyager是第一個由LLM驅動、可以終身學習的具身智能體。它可以利用GPT-4不停地探索世界,開發越來越複雜的技能,並始終能在沒有人工干預的情況下進行新的發現。
在發現新物品、解鎖Minecraft技術樹、穿越多樣化地形,以及將其學習到的技能庫應用於新生成世界中的未知任務方面,Voyager表現出了優越的性能。
對於通用智能體的開發來說,無需調整模型參數的Voyager是可以作為一個起點的。
參考資料:
https://voyager.minedojo.org/
資訊來源:由0x資訊編譯自8BTC。版權歸作者所有,未經許可,不得轉載