首頁  >  文章  >  科技週邊  >  讓AI學會打王者,有什麼用?

讓AI學會打王者,有什麼用?

王林
王林轉載
2023-04-11 19:28:101134瀏覽

11月28日,NeurIPS 2022正式開幕。

作為目前全球最負盛名的人工智慧盛會之一,NeurIPS在每年年末都是電腦科學領域矚目的焦點。被NeurIPS接收的論文,代表著當今神經科學和人工智慧研究的最高水平,也反映著產業趨勢的變化。

有趣的是,這屆「參賽者」們的研究似乎都對「遊戲」情有獨鍾。

例如,李飛飛團隊基於Minecraft遊戲環境的MineDojo,就拿下了最佳數據集和基準論文獎。依托遊戲的開放性,研究人員可以在MineDojo中透過各種類型的任務對智能體進行訓練,讓AI具有更通用的能力。

讓AI學會打王者,有什麼用?

而透過嚴苛的錄取率,同樣是在遊戲領域收錄的另一篇論文,可能跟很多遊戲玩家都相關。

畢竟,誰沒玩過王者呢。

讓AI學會打王者,有什麼用?

論文《競技場:競爭強化學習的泛化環境》

網址:https://openreview.net/pdf?id=7e6W6LEOBg3

讓AI學會打王者,有什麼用?文中,研究者提出了一個基於MOBA遊戲《王者榮耀》的測試環境。目的嘛,其實和MineDojo類似——訓練AI。

為何MOBA類遊戲環境被青睞?

自DeepMind推出AlphaGo開始,遊戲作為一個擁有高自由度、高複雜性的擬真環境,早已成為了AI研究和實驗的重要選擇。

讓AI學會打王者,有什麼用?

然而,相較於能夠不斷從開放式任務中學習的人類,在較低複雜度的遊戲裡訓練出的智能體,並不能將自己的能力泛化到特定的任務之外。簡單來說就是,這些AI只能下棋,或是打古的雅達利遊戲。

為了開發出能夠更「泛用」的AI,學界的研究重心也開始逐漸從棋盤類遊戲轉向了更複雜的遊戲,包括非完美資訊博弈遊戲(例如撲克)以及策略性遊戲(如MOBA和RTS遊戲)。

同時,正如李飛飛團隊在獲獎論文裡所言,想要讓智能體能夠泛化到更多的任務之中,訓練環境還需要能提供足夠多的任務。 #####################憑藉著AlphaGo及其衍生版AlphaZero打遍圍棋圈無敵手的DeepMind,很快也意識到了這一點。 ############2016年,DeepMind便聯合暴雪,基於空間複雜度為10的1685次方的《星海爭霸II》,推出了「星海爭霸II 學習環境」(StarCraft II Learning Environment,SC2LE),為研究人員提供了智能體的行動和獎勵規範,以及一個開源的Python介面,用於與遊戲引擎進行通訊。 #####################而在國內也有一個資質極佳的「AI訓練場」—############作為知名的MOBA遊戲,玩家在《王者榮耀》中的動作狀態空間高達10的20000次方,遠大於圍棋及其他遊戲,甚至超過整個宇宙的原子總數(10的80次方)。 ######

和DeepMind一樣,騰訊的AI Lab也聯合《王者榮耀》,共同開發了更適合進行AI研究的「王者榮耀AI開放研究環境」。

讓AI學會打王者,有什麼用?

目前,「王者榮耀AI開放研究環境」包含了1v1對戰環境與baseline演算法模型,並支援20位英雄的鏡像對戰任務以及非鏡像類別對戰任務。

具體來說,「王者榮耀AI開放研究環境」在只考慮雙方英雄選擇條件下,可以支援20×20=400對戰子任務。如果算上召喚師技能,將會有40000種子任務。

為了讓大家更能理解智能體在「王者榮耀AI開放研究環境」中所接受的泛化性挑戰,我們可以利用論文中的兩個測試,對其進行驗證:

讓AI學會打王者,有什麼用?

首先製作一個行為樹AI(BT),其等級為入門級的「黃金」。與之相對的是就是由強化學習演算法訓練出來的智能體(RL)。

在第一個實驗中,只讓貂蟬(RL)和貂蟬(BT)進行對戰,然後再拿訓練好的RL(貂蟬)去挑戰不同英雄(BT) 。

經過98輪測試後的結果如下圖所示:

當對手英雄改變時,同一訓練的策略的表現急劇下降。因為對手英雄的變化使測試環境與訓練環境不同,因此現有方法學到的策略缺乏泛化性。

讓AI學會打王者,有什麼用?

圖1  跨對手的泛化挑戰

在第二實驗中,依然只讓貂蟬(RL)和貂蟬(BT)進行對戰,然後拿訓練好的RL模型控制其他英雄去挑戰貂蟬(BT)。

經過98輪測試後的結果如下圖所示:

當模型控制的目標從貂蟬變成其他英雄時,相同的訓練策略的表現急劇下降。因為目標英雄的變化使行動的意義與訓練環境中貂蟬的行動不同。

讓AI學會打王者,有什麼用?

圖2 跨目標的泛化挑戰

造成這個結果的原因很簡單,每個英雄本身都有自己獨特的操作技巧,經過單一訓練的智能體在拿到新的英雄之後,並不知道如何使用,就只能兩眼一抹黑了。

人類玩家也是類似,能在中路「亂殺」的選手,換了打野之後,也未必能打出不錯的KDA。

不難看出,這其實就回到了我們一開始提出的問題,簡單的環境難以訓練出「通用」的AI。而複雜度高的MOBA類遊戲,正好提供了一個方便測試模型泛化性的環境。

當然,遊戲並不能直接拿來訓練AI,於是經過特別優化的「訓練場」應運而生。

由此,研究者就可以在「星海爭霸 II 學習環境」和「王者榮耀AI開放研究環境」中,測試和訓練自己的模型了。

國內研究人員如何連結合適的平台資源?

#

DeepMind的發展,離不開實力雄厚的Google托底。李飛飛團隊提出的MineDojo,不僅用上了史丹佛這個頂尖名校的資源,還有來自英偉達的大力支持。

而國內現階段的人工智慧產業在基礎設施層面仍然不夠紮實,尤其對於普通公司和大學來說,正面臨著研發資源短缺的問題。

為了讓更多研究者參與進來,騰訊於今年11月21日正式將「王者榮耀AI開放研究環境」面向大眾開放。

使用者只需在開悟平台官網註冊帳號、提交資料並通過平台審核,即可免費下載。

讓AI學會打王者,有什麼用?

網站連結:https://aiarena.tencent.com/aiarena/zh/open-gamecore

#值得一提的是,為了更好地支持學者和演算法開發者進行研究,開悟平台不僅對「王者榮耀AI開放研究環境」進行了易用性封裝,還提供標準代碼與訓練框架。

讓AI學會打王者,有什麼用?

接下來,我們就來「淺淺」地體驗一下,如何在開悟平台開始一個AI訓練專案吧!

既然要讓AI「玩」《王者榮耀》,那麼我們要做的第一件事就是,把用來操控英雄的「智能體」做出來。

聽起來好像有點複雜?不過,在「王者榮耀AI開放研究環境」中,這其實非常簡單。

首先,啟動gamecore伺服器:

cd gamecoregamecore-server.exe server --server-address :23432

安裝hok_env套件:

git clone https://github.com/tencent-ailab/hok_env.gitcd hok_env/hok_env/pip install -e .

#並執行測試腳本:

cd hok_env/hok_env/hok/unit_test/python test_env.py

現在,就可以導入hok,並且呼叫hok.HoK1v1.load_game創建環境了:

import hok
env = HoK1v1.load_game(runtime_id=0, game_log_path="./game_log", gamecore_path="~/.hok", config_path="config.dat",config_dicts=[{"hero":"diaochan", "skill":"rage"} for _ in range(2)])

緊接著,我們透過重置環境從智能體那裡獲得我們的第一個觀察結果:

obs, reward, done, infos = env.reset()

obs是一個NumPy數組的列表,描述了代理對環境的觀察。

reward是一個浮點標量的列表,描述了從環境中獲得的即時獎勵。

done是一個布林列表,描述了遊戲的狀態。

infos變數是一個字典的元組,其長度為智能體的數量。

然後在環境中執行操作,直到時間用完或智能體被幹掉。

此處,只需採用env.step方法即可。

done = False
while not done:
action = env.get_random_action()
obs, reward, done, state = env.step(action)

和「星海爭霸 II 學習環境」一樣,在「王者榮耀AI開放研究環境」中同樣可以利用視覺化工具來檢視智能體的回放。

至此,你的第一個智能體就已經創建完畢。

接下來,就可以拉著「她/他」去進行各種各樣的訓練了!

讓AI學會打王者,有什麼用?

說到這,想必大家也不難發現,「王者榮耀AI開放研究環境」不只是單純地拋出一個可以訓練AI的環境,而是透過熟悉的操作和豐富的文檔,使整個流程變得簡單易懂。

如此一來,也就讓更多有志於進入AI領域的人輕鬆上手了。

遊戲 AI,還有哪些可能?

看到這,其實還有一個問題沒有回答-騰訊開悟平台作為一個由企業主導的研究平台,為何要選擇大規模開放?

今年8月,成都市人工智慧產業生態聯盟聯合智庫雨前顧問,共同發布了全國首個遊戲AI報告。從報告中不難看出,遊戲是促進人工智慧發展的關鍵點之一,具體來說,遊戲可以從三個方面提升AI的落地應用。

讓AI學會打王者,有什麼用?


首先,遊戲是AI極佳的訓練測試場。

  • 迭代快速:遊戲可以隨便互動、隨便試錯,沒有任何真實成本,同時存在明顯的獎勵機制,能讓演算法的有效性充分訓練展現出來。
  • 任務豐富:遊戲種類繁多,難度和複雜性也很多樣,人工智慧必須採用複雜的策略來應對,攻克不同類型的遊戲反映了演算法水平的提升。
  • 成敗標準清晰:透過遊戲得分標定人工智慧的能力,以便進一步優化人工智慧。

其次,遊戲能夠訓練AI的不同能力,牽引不同應用。

例如,棋類遊戲訓練AI序列決策,獲得長線推演能力;牌類遊戲訓練AI動態自適應,獲得隨機應變能力;即時戰略遊戲訓練了AI的機器記憶能力、長期規劃能力、多智能體協作能力、動作連貫性。

另外,遊戲還能打破環境制約,推動決策智慧落地。

例如,遊戲可以推動虛擬模擬即時渲染與虛擬模擬資訊同步,升級虛擬模擬互動終端機。

讓AI學會打王者,有什麼用?

而開悟平台依托騰訊AI Lab和王者榮耀在演算法、算力、複雜場景等方面的優勢,開放之後,可以為遊戲與AI發展之間搭建一座有效合作的橋樑,連結大學學科建設、競賽組織、產業人才孵化。當人才儲備足夠了,科研的進步和商業應用的落地都將如雨後春筍般冒頭。

過去兩年,開悟平台在產學研領域的佈局舉措就很多:舉辦了「開悟多智能體強化學習大賽」,引來包括清北這樣的TOP2名校在內的一片頂尖高校團隊參加;組成了高校科教聯合體,北大資訊科學技術學院爆火的選修課《遊戲AI中的演算法》,課後作業便是用王者榮耀1V1的環境做實驗…

展望未來,可以期待:借助「開悟」平台走出去的這些人才,將輻射到AI產業的各個領域,實現平台上下游生態的全面開花。

以上是讓AI學會打王者,有什麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除