去年,OpenAI 在 DOTA 的 1v1 比賽中戰(zhàn)勝了職業(yè)玩家 Dendi,而在距離進階版 OpenAI Five 系統(tǒng)戰(zhàn)勝人類業(yè)余玩家不過一個月的時間,今天凌晨,它又以 2:1 的戰(zhàn)績再次完成對人類高級玩家的“屠殺”,GG(人類贏的最后一局純屬耍賴)。
相比之下,人類這次輸給的是怎樣的進階版“AI 英雄”?
此次,OpenAI Five 對陣 5 個高級玩家(解說員+前職業(yè)玩家)——Blitz, Cap, Fogged, Merlini 和 Moonmeander,他們的平均天梯分 6000 以上。反觀 OpenAI Five,根據(jù)公開資料,它的實力相當于人類玩了 180 年的游戲,而且每天都與自己進行對抗學(xué)習(xí),學(xué)習(xí)過程非常復(fù)雜,需要在 256 個 GPU 和 128,000 個 CPU 上運行擴展版本的近端策略優(yōu)化(PPO)進行訓(xùn)練。
它對每個英雄使用了單獨的 LSTM(長短期記憶遞歸神經(jīng)網(wǎng)絡(luò)),并且沒有人類數(shù)據(jù),它會學(xué)習(xí)可識別的策略,這表明強化學(xué)習(xí)可以產(chǎn)生可實現(xiàn)規(guī)模的長期規(guī)劃。
此外,就應(yīng)用環(huán)境而言,不同于棋牌游戲的固定規(guī)則,像 DOTA2 這樣的復(fù)雜視頻游戲是 5v5 對決的戰(zhàn)略游戲,況且,DOTA 游戲已經(jīng)不斷開發(fā)了十幾年,游戲邏輯中有數(shù)十萬行代碼,且每兩周更新一次,游戲語義在不斷產(chǎn)生變化。
因此,AI 玩 DOTA 的難度可想而知,它首先需要解決以下四大問題:長時視野;局部觀察狀態(tài);高維、連續(xù)的動作空間;高維、連續(xù)的觀察空間。
▌模型架構(gòu)
OpenAI Five 的每個網(wǎng)絡(luò)都包含一個單層的、1024-unit 的 LSTM,它可以查看當前的游戲狀態(tài)(從 Valve 的 Bot API 中抓?。⑼ㄟ^幾個可能的 action heads 發(fā)出動作。每個 head 都具有語義含義,例如延遲動作的刻度數(shù),選擇哪一個動作,該動作在單元周圍網(wǎng)格中的 X 或 Y 坐標等。Action heads 是獨立計算的。
OpenAI Five 使用觀察空間(observation space)和動作空間(action space)進行交互式演示。OpenAI Five 將世界視為 20000 個數(shù)字的列表,并通過發(fā)出一個包含 8 個枚舉值(enumeration values)的列表來執(zhí)行操作。通過選擇不同的行動和目標,我們可以了解 OpenAI Five 如何編碼每個動作,以及如何觀察世界。下圖是人類會看到的場景。
OpenAI Five 可以對與它所看到的相關(guān)的丟失狀態(tài)片段做出反應(yīng)。例如,直到最近,OpenAI Five 的觀察區(qū)域才包括狙擊手的技能范圍(子彈落在敵人身上的區(qū)域)。然而,我們觀察到 OpenAI Five 可以學(xué)習(xí)走出(雖然不能避免進入)狙擊手的技能范圍,因為當進入這個區(qū)域時,它可以看到自己的血量是在減少的。
▌探索
就算有學(xué)習(xí)算法能夠處理較長的視野,我們?nèi)匀恍枰獙Νh(huán)境進行探索。因為即使我們設(shè)定了各種限制,仍然有數(shù)百種道具、幾十種建筑、法術(shù)、單元類型、長尾游戲機制,以及因此產(chǎn)生的各種組合,想要有效地探索這個巨大的空間其實并不容易。
OpenAI Five 可以從隨機權(quán)重開始,從自我博弈中學(xué)習(xí)。 為了避免“策略崩潰”,智能體在訓(xùn)練的時候,80% 的游戲都是自我對抗, 另外 20% 則是與過去的自己進行對抗。在自我對抗時,英雄首先會漫無目的繞著地圖游走。經(jīng)過幾個小時的訓(xùn)練后,智能體開始有了一些概念,例如建造、中路對線等。幾天之后,他們始終采用基本的人類策略:試圖從對手那里偷走 Bountyrunes等。 通過進一步的訓(xùn)練,它們可以熟練掌握 5 個英雄集中推塔的高級策略。
OpenAI Five 使用了 1v1 機器人里的隨機化的方法 。它還使用了一個新的路線分配(lane assignment)策略。 在每個訓(xùn)練游戲開始時,他們隨機地將每個英雄“分配”到一些 lane 的子集,在到隨機選擇的時間之前,如果英雄偏離這些路線,就會受到懲罰。
當然,也有獎勵來幫助智能體探索環(huán)境,主要包括凈值(net worth)、殺敵數(shù)(kills)、死亡數(shù)(deaths)、助攻(assists)、最后一擊(last hits) 等指標。他們通過減少其他團隊的平均獎勵,來對每個智能體的獎勵進行后續(xù)處理,以防止智能體找到正和博弈(positive-sum)的情況。
他們也對道具和技能構(gòu)建進行了硬編碼,同時,也通過腳本基線( scripted baseline)引入了信使管理(Courier management)。
▌Rapid
這個系統(tǒng)的實現(xiàn)使用了被稱為“Rapid”的通用 RL 訓(xùn)練系統(tǒng),它適用于任何多人模式環(huán)境。
訓(xùn)練系統(tǒng)分為 rolloutworkers,運行游戲副本,智能體(agent),用來收集經(jīng)驗,優(yōu)化器節(jié)點(optimizer nodes)執(zhí)行跨 GPU 組的同步梯度下降。每次訓(xùn)練還包括分別對訓(xùn)練機器人以及樣本機器人進行評估的組件,以及監(jiān)視軟件,比如 TensorBoard,Sentry 以及 Grafana。
在同步梯度下降運算過程中,每一個 GPU 組件都會運算自己負責(zé)的批處理部分的梯度計算,隨后整體梯度再進行平均計算。他們原本使用消息傳遞借口的規(guī)約算法進行平均計算,現(xiàn)在則使用英偉達的多卡通型框架 NCCL2 的封裝函數(shù)來實行 GPU 并行計算以及網(wǎng)絡(luò)間數(shù)據(jù)傳輸。同步 58MB 大小數(shù)據(jù)(用于 OpenAI Five 的參數(shù))的延遲顯示在表格之中,延遲時間足夠低能滿足大部分數(shù)據(jù)被進行并行運算的 GPU 標記。
▌與人類的不同
OpenAI Five 獲取的信息和人類完全一致,但是系統(tǒng)能馬上反應(yīng)到類似位置、生命值以及物品更新情況等等人類玩家需要定時觀察的信息。OpenAI Five 的平均 APM 在 150-170 之間(理論上最快可以達到 450 考慮到每四幀一動),平均反應(yīng)時間為 80 毫秒,比人類平均速度要快很多。
很多職業(yè)選手在去年 TI 結(jié)束后都使用 bot 進行訓(xùn)練。根據(jù) Blitz 的說法 solo bot已經(jīng)改變了人們對 solo 賽節(jié)奏的看法,bot 偏向于快節(jié)奏風(fēng)格,現(xiàn)在大多數(shù)選手也已經(jīng)使用快節(jié)奏風(fēng)格來和 bot 抗衡。
AI 在 Dota2 中的節(jié)奏和執(zhí)行力非常強了,這是不是意味著它沒有優(yōu)化空間了?當然不是,此次的 OpenAI Five 還是有諸多限制,比如系統(tǒng)在進行最后一擊時較弱,其客觀優(yōu)先級與一個共同的專業(yè)策略相匹配,獲得戰(zhàn)略地圖控制等長期獎勵往往需要犧牲短期獎勵。
Open AI 方面稱,在今年后續(xù)的 TI 表演賽上,還會有職業(yè)玩家繼續(xù)挑戰(zhàn) AI,但結(jié)果想來也是實力“嘲諷”人類?;蛟S,更讓人期待的是,在 Dota2 這樣的復(fù)雜游戲中,是否會出現(xiàn)“AI vs AI”的神仙打架比賽?
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4777瀏覽量
100989 -
AI
+關(guān)注
關(guān)注
87文章
31338瀏覽量
269747
原文標題:Dota2團戰(zhàn)實力蔑視人類,解剖5只“AI英雄”
文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論