訓練遊戲 AI 往往需要耗費巨量的計算,並且依賴配備數百個 CPU 和 GPU 的伺服器。大的科技公司有能力和資金支撐,但學術實驗室卻「心有餘而錢不足」。在本文中,南加州大學和英特爾實驗室的研究者展示了在第一人稱射擊遊戲《毀滅戰士》中,使用單個高階工作站訓練具備 SOTA 效能的遊戲 AI,最多時用到了 36 核 CPU 和單個 RTX 2080 Ti GPU 的系統。
我們都清楚,訓練 SOTA 人工智慧系統往往需要耗費大量的計算資源,這意味著資金雄厚的科技公司的發展程序會遠遠超過學術團隊。但最近的一項研究提出了一種新方法,該方法有助於縮小這種差距,使得科學家可以在單個計算機上解決前沿的 AI 問題。OpenAI 2018 年的一份報告顯示,用於訓練遊戲 AI 的處理能力正在快速地提升,每 3.4 個月翻一番。其中對資料需求量最大的一種方法是深度強化學習,透過在數百萬個模擬中迭代,AI 在反覆試錯中進行學習。《星際爭霸》和《Dota2》等電子遊戲領域取得了令人矚目的新進展,但都依賴封裝了數百個 CPU 和 GPU 的伺服器。針對這種情況,Cerebras System 開發的 Wafer Scale 引擎能夠使用單個大晶片來替換這些處理器,這個晶片為訓練 AI 進行了完美的最佳化。但是由於價格高達數百萬,所以對於資金短缺的研究人員來說是可望不可即的。最近,來自南加州大學和英特爾實驗室的研究團隊建立了一種新方法,該方法可以在學術實驗室常見的硬體上訓練深度強化學習演算法。該研究被 ICML 2020 會議接收。在這項研究中,研究者展示瞭如何使用單個高階工作站,在第一人稱射擊電子遊戲《毀滅戰士》(Doom)中訓練具有 SOTA 效能的 AI。不僅如此,他們使用正常計算能力的一小部分解決了 DeepMind 建立的 30 種不同的 3D 挑戰套件。在具體配置上,研究者分別採用了一個具有 10 核 CPU 和 GTX 1080 Ti GPU 的工作站級 PC,以及配備了伺服器級 36 核 CPU 和單個 RTX 2080 Ti GPU 的系統。該研究提出了一個針對單機設定最佳化的高通量訓練系統「Sample Factory」。該架構將一個基於 GPU 的高效非同步取樣器與離策略校正方法結合在一起,從而在不損失取樣效率的情況下,在 3D 非平凡控制問題上實現高於每秒 105 環境幀的吞吐量。此外,研究者還擴充套件了 Sample Factory,以支援自我對弈(self-play)和基於群體的訓練,並應用這些技術來訓練多人第一視角射擊遊戲中的高效能智慧體。Sample Factory 是在一臺機器上進行高吞吐量強化學習的架構。在設計系統時,研究者專注於使所有關鍵計算完全非同步,以及充分利用快速本地訊息傳遞(fast local messaging)來最小化元件之間的延遲和通訊成本。下圖 1 為 Sample Factory 的架構圖:典型的強化學習場景涉及三個主要的計算工作負載:環境模擬、模型推斷和反向傳播。該研究的主要動機是建立一個系統,在這個系統中,三個工作負載中最慢的一個負載不必等待其他程序來提供執行下一步計算所需的資料,這是因為該演算法的總體吞吐量最終由最低吞吐量的工作負載來決定。與此同時,為了最小化過程等待所花費的時間,還需要保證新輸入始終可用,在下一步計算開始之前也是如此。如果在一個系統中,計算強大最大的工作負載永遠不會閒置,則該系統可以實現最高的資源利用率,進而達到最佳效能。由於該研究的主要動機是增加吞吐量和減少實驗週轉時間,因此研究者主要從系統效能的計算方面進行評估。具體而言,研究者在兩個類似於深度學習研究實驗室中常見硬體設定的硬體系統上測量訓練幀率。其中系統 1 是一個具有 10 核 CPU 和 GTX 1080 Ti GPU 的工作站級 PC。系統 2 則配備了伺服器級 36 核 CPU 和單個 RTX 2080 Ti GPU。此外,測試環境使用三個模擬器:Atari(Bellemare 等,2013)、VizDoom(Kempka 等,2016)和 DeepMind Lab(Beattie 等,2016)。研究者首先對 Sample Factory 與其他高吞吐量策略梯度方法的效能進行了比較。下圖 3 展示了不同配置下連續訓練 5 分鐘內的平均訓練吞吐量,以解釋由事件重置(episode reset)和其他因素引起的效能波動。可以看到, 在大多數訓練場景中,Sample Factory 的效能優於基準方法。下圖 4 演示了系統吞吐量如何轉化為原始的訓練效能。Sample Factory 和 SeedRL 實現了相似的非同步體系架構,並在超引數相同的情況下實現了非常接近的取樣效率。因此,研究者直接對這兩者的訓練時間進行了比較。下表 1 表明,在 Atari、VizDoom 和 DMLab 三個模擬環境中,與 DeepMind IMPALA、RLlib IMPALA、SeedRL V-trace 和 rlpyt PPO 等基線方法相比,Sample Factory 更接近於理想的效能。實驗還表明,進一步最佳化也是可能實現的。為了證明 Sample Factory 的效率和靈活性,該研究在 DMLab-30 上訓練了四個代理的種群(圖 5)。雖然最初的實現依賴於分散式多伺服器設定,但該代理在單核 36 核 4-GPU 機器上進行了訓練。Sample Factory 減少了大規模實驗的計算需求,並使諸如 DMLab-30 之類的多工基準可供更廣泛的研究團體使用。研究者進一步使用 Sample Factory 在一系列 VizDoom 模擬環境上訓練智慧體。VizDoom 提供了具有挑戰性的場景,這些場景通常具有極高的潛在技能上限。此外,VizDoom 還以相當高的輸入解析度支援快速的經驗收集(rapid experience collection)。 藉助 Sample Factory,我們可以在幾小時內對智慧體進行數十億次環境轉變的訓練(具體請參見上圖 3)。如下圖 6 所示,研究者首先檢查了一系列 VizDoom 標準場景中的智慧體效能,結果表明該演算法在大多數任務上都達到或超越了以往研究(Beeching 等人,2019)中的效能。他們研究了 Sample Factory 智慧體在四種高階單人遊戲模式下的效能,這四種模式分別是 Battle、Battle2、Duel 和 Deathmatch。其中,在 Battle 和 Battle2 中,智慧體的目標是在維持生命值和彈藥的同時擊敗封閉迷宮中的敵方。如下圖 7 所示,在 Battle 和 Battle2 兩種遊戲模式中,Sample Factory 的最終得分大大超過了以往研究(Dosovitskiy&Koltun,2017;Zhou 等人,2019)中的得分。接著,在 Duel 和 Deathmatch 這兩種遊戲模式中,研究者使用配備 4 個 GPU 的 36 核 PC 來充分發揮 Sample Factory 的效能,並透過基於群體的訓練來訓練 8 個智慧體。最後,智慧體在全部對弈中擊敗了最高難度設定下的機器人角色。在 Deathmatch 模式中,智慧體以 80.5 對 12.6 的平均分分值比擊敗敵方。在 Duel 模式中,每局對弈的平均分值比為 34.7 對 3.6 分。利用 VizDoom 的聯網功能,研究者為 Duel 和 Deathmatch 遊戲模式的多人版本建立了一個 Gym 介面(Brockman 等人,2016)。研究者對指令碼控制的對手(scripted opponent)進行了實驗,其中 8 個智慧體都在單個 36 核 4-GPU 伺服器上接受 2.5×109 個環境幀的訓練,整個群體需要花費 18 年的模擬經驗。然後,研究者模擬了自我對弈智慧體對戰指令碼控制敵方的 100 局比賽,並從這兩個群體中選擇得分最高的智慧體。結果是自我對弈智慧體 78 勝 3 負 19 平。這表明,基於群體的訓練產生了更為穩健的策略,而基於機器人角色訓練的智慧體在單人對戰模式中會出現過擬合。參考連結:https://spectrum.ieee.org/tech-talk/artificial-intelligence/machine-learning/powerful-ai-can-now-be-trained-on-a-single-computer