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