OpenAI Dota 2 1v1 機器人結果

OpenAI 已經展示,自我對戰強化學習可以將機器學習系統從次人類表現推進到 Dota 2 1v1 的超人類能力。在一個月內,該系統從僅能匹配高排名玩家演進到擊敗頂尖職業選手,說明自我對戰使得訓練數據能隨著代理技能的提升而自動改進。

超人類表現與訓練時間線

OpenAI 的機器人透過擴展計算資源並實施演算法改進,達成超人類狀態,導致 TrueSkill 評分隨時間線性增加。機器人能力的進展透過以下里程碑標示:

  • 3 月 1 日:初始的古典強化學習在簡單環境中產生結果(Drow Ranger 躲避 Earthshaker)。
  • 5 月 8 日:一名 1.5k MMR 測試者報告其進步速度快於機器人。
  • 早期 6 月:機器人開始擊敗 1.5k MMR 測試者。
  • 6 月 30 日:機器人在對戰 3k MMR 測試者時贏得了大多數比賽。
  • 7 月 8 日:機器人首次擊敗 7.5k MMR 半職業測試者。
  • 8 月 7 日:機器人以 3–0 擊敗 Blitz(6.2k)、以 2–1 擊敗 Pajkatt(8.5k)以及以 3–0 擊敗 CC&C(8.9k)。
  • 8 月 9 日:機器人以 10–0 擊敗 Arteezy(10k 職業)。
  • 8 月 10 日:機器人以 6–0 擊敗 Sumail(8.3k 職業)。Sumail 描述機器人為「無法擊敗」。
  • 8 月 11 日:機器人以 2–0 擊敗 Dendi(7.3k 職業)。

技術實作與介面

該機器人在標準賽事規則下進行 1v1 對戰,未使用 AI 特定的簡化。它使用了以下介面:

  • 觀測:機器人透過 Bot API 存取人類可見的特徵,包括英雄、小兵、快遞以及附近地形的資訊。環境是部分可觀測的。
  • 動作:機器人透過 Bot API 以與人類相近的頻率執行動作,例如移動、攻擊和使用道具。
  • 回饋:根據贏得比賽以及基本指標(如生命值和最後一擊)提供激勵。

為了促進訓練,OpenAI 將幾十種道具構建列入白名單,並使用傳統強化學習技巧單獨訓練初始的小兵阻擋。

在 The International 期間的迭代改進

OpenAI 結合「指導」與自我對戰,在 The International 錦標賽期間快速迭代代理。主要改進包括:

  • 道具構建適應:在 Pajkatt 使用早期魔法棒贏得一場比賽後,OpenAI 將該具體道具構建加入訓練白名單。
  • 策略演進:機器人學會透過在第一波故意損失生命值來引誘對手進攻,這種策略後來經過進一步的自我對戰被對應。
  • 機制發現:機器人發現一種機制:在敵人視線外施放技能可防止敵人獲得魔法棒充能。

已知漏洞與限制

儘管表現優異,機器人在訓練中未遇到的情境下可能會感到困惑。在 The International 的 LAN 活動中,玩家發現了三種主要的漏洞類型:

  1. 小兵拉扯:吸引機器人第二層與第三層塔之間的路線小兵,導致塔因 attrition(消耗)而死亡。
  2. 毒之球 + 風繩:使用這些道具在等級 1 時獲得移動速度優勢,以快速取得第一滴血。
  3. 等級 1 割裂:高技能玩家(6–7k MMR)能夠在等級 1 時透過快速連續擊中 3–5 次割裂來殺死機器人。

基礎設施與未來目標

為了在雲端運行 Dota 2,OpenAI 開發了一個 shim 來 stub out OpenGL 呼叫,並配置雲端 GPU 實例以模擬實體監控器連接,以繞過啟動錯誤。

OpenAI 也開發了一個腳本機器人作為基線。儘管腳本機器人在空曠航道上十分鐘內達成了 70 次最後一擊,強化學習機器人在相同時間內達到了約 97 次最後一擊(理論最大值為 101)。

該項目的最終目標是解決 5v5 Dota 2。為此,OpenAI 已蒐集了 580 萬份專家級重播資料集(每份約 45 分鐘,包含 10 名人類玩家),以利用行為克隆。

Sources