天天看點

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

在深度學習領域,算力從來都是我們關心的一個重點,也是影響人工智能算法落地的一個關鍵因素。在很多應用場景裡面,足夠的算力支援可以顯著加快算法從提出、訓練到落地的效率,像是 OpenAI Five 的億級參數量的使用,其每天的 GPU 計算用量在 770±50~820±50 PFlops/s。而在深度強化學習領域,随着應用場景從單智能體擴充到多智能體,算法的求解複雜度也呈現指數級增長,這也對算力要求提出了新的挑戰,要求更多的計算資源能夠被調用。特别是當所要處理的問題規模,涉及的智能體數量較多時,單機訓練算法的可行度顯著下降。

多智能體強化學習要解決群體智能相關的問題,其研究往往涉及群體内智能體之間的協作與對抗。目前已有衆多現實任務應用涉及大規模智能體和複雜多樣化互動,例如人群模拟、自動駕駛以及軍事場景中的無人機叢集控制:

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

人群模拟(http://gamma.cs.unc.edu/CompAgent/imgs/sitterson3.jpg)。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

自動駕駛(

https://github.com/huawei-noah/SMARTS/blob/master/docs/_static/smarts_envision.gif

)。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

無人機叢集(https://defensesystems.com/-/media/GIG/Defense-Systems/Web/2015/JanFeb/CODEdrones.png)。

在算法方面,解決此類群體問題的一個重要的途徑是基于群體的多智能體強化學習方法,也是 MALib 目前階段的重點瞄準方向。基于群體的多智能體強化學習(Population-based MARL, PB-MARL)涉及多個政策集合互動問題,下圖展示了通常意義上基于群體的多智能體強化學習算法的主要流程。PB-MARL 算法是結合了深度強化學習和動态種群選擇方法(例如,博弈論,進化政策)以自動拓展政策集。PB-MARL 能夠以此不斷産生新的智能,因而在一些複雜任務上都取得了不錯的效果,如實時決策遊戲 Dota2 、StrarCraftII,以及紙牌任務 Leduc Poker。但在實際問題中,目前的多智能體強化學習算法與應用尚有差距,一個亟待解決的問題便是算法在大規模場景下的訓練效率。由于種群算法内在耦合了多智能體算法,緻使其訓練過程對資料的需求量極大,因而也需要一個靈活、可擴充的訓練架構來保證其有效性。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

如何提高算法訓練效率?對于依賴深度學習技術的很多領域,在面臨任務規模變大,模型參數變多的情況下,都需要引入額外的技術來提高訓練效率。分布式計算是一個最直接考慮的方法,通過多程序或者多機的方式,提高算法對計算資源的使用效率進而提升算法訓練效率。而分布式技術在深度強化學習領域的應用,也催生了分布式深度強化學習這個領域的産生,其研究的重點包括計算架構的設計,以及大規模分布式強化學習算法的開發。

近年來,為了更好地進行大規模深度強化學習算法的訓練,研究人員發展了更加專用的訓練架構,通過在算法接口和系統設計上進行抽象,來支援更為複雜的實時資料采樣、模型訓練和推理需求。然而,分布式強化學習技術的發展似乎還未觸及群體智能這一問題。實際上,現有分布式強化學習架構對于一般多智能體強化學習算法的分布式計算支援是完全不夠的,像 RLlib、Sample-Factory、SEED RL 這樣的典型分布式強化學習架構,在設計模式上都是将多智能體任務當作單智能體任務來處理,而忽略了多智能體算法之間的異構性。對于其他強調智能體互動的學習範式,如中心化訓練(centralized training)、基于網絡的分布式算法以及帶有通信功能的協作性算法都沒有進行顯式支援,缺乏對應的統一接口來簡化算法實作和訓練流程。是以,研究人員想要進行更多類型多智能體強化學習算法的分布式訓練探索時,往往需要進行大量額外的編碼工作。而對于多智能體強化學習算法架構方面的發展,現有的工作更多聚焦在算法實作,并不太注重算法在大規模場景下的擴充性,或者更多的是專為某些場景設計的算法庫,像 PyMARL、SMARTS 這樣的架構,其作用更偏向于服務專門領域内的 benchmark,在算法類型上,大部分架構也做得并不全面。是以對于多智能體強化學習算法架構支援這一塊,也一直是缺乏一套比較全面的架構來打通算法實作、訓練和部署測試這一套流程。

我們認為以上兩個發展現狀的主要原因至少會有兩點:(1)一個是因為多智能體算法本身在結構上具有的異構性較高,導緻算法在接口實作的一緻性和複用性上不是太高;(2)另一方面也是因為多智能體分布式算法依然處于早期探索階段。此外,在分布式部署方面,現有分布式強化學習架構對 independent learning 算法的支援更友好,也更自然和直接。就像通常分布式技術在機器學習領域的應用一樣,要解決目前分布式技術在大規模多智能體強化學習領域的更深層次的應用,算法和架構都必不可少,兩者相輔相成。

在算法方面,一個重要的途徑是基于群體的多智能體強化學習方法,也是 MALib 目前階段所重點瞄準的方向。基于群體的多智能體強化學習(Population-based MARL, PB-MARL)涉及到多個政策集合互動問題,下圖展示了通常意義上基于群體的多智能體強化學習算法的主要流程。PB-MARL 算法特點是結合了深度強化學習和動态種群選擇方法(例如,博弈論,進化政策)來進行自動政策集擴充。通過這種方式,PB-MARL 能夠不斷産生新的智能,并且在解決一些複雜任務上都取得了不錯的效果,如實時決策遊戲 Dota2 、StrarCraftII,以及紙牌任務 Leduc Poker。

然而,也正是由于種群算法内在耦合了多智能體算法,導緻這一類算法在訓練過程對資料的需求極大,是以也需要一個靈活的、可擴充的訓練架構來保證其有效性。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練
上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

MALib架構圖

為了應對這些需求,我們提出了 MALib,從三個方面提出了針對大規模群體多智能體強化學習算法的解決方案:(1)中心化任務排程:自動遞進式生成訓練任務,作業程序的半主動執行能夠提高訓練任務的并行度;(2)Actor-Evaluator-Learner 模型:解耦資料流,以滿足多節點靈活的資料存儲和分發;(3)從訓練層面對多智能體強化學習進行抽象:嘗試提高多智能體算法在不同訓練模式之間的複用率,比如 DDPG 或者 DQN 可以很友善地嫁接到中心化訓練模式中。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

中心化任務排程模型 (c) 與以往分布式強化學習架構排程模型的對比:(a)完全分布式;(b)層級式

具體而言,MALib 的架構特點如下:

  • 支援大規模基于種群的多智能體強化訓練。星際争霸 2,Dota2,王者榮耀等遊戲上超越人類頂尖水準的 AI,都得益于大規模基于種群的多智能體強化學習訓練,但現在沒有一個開源通用的架構支援相關研究與應用。針對這一場景,MALib 基于 Ray 的分布式執行架構,實作了一個靈活可自定義的多智能體強化學習并行訓練架構,并且對基于種群的訓練做了特别優化,不僅僅可以實作類似于星際争霸 2 中的 League 機制,也支援更靈活的 PSRO(政策空間應對預言機)等算法。同時,除了電子競技遊戲之外,MALib 也将提供體育(Google Football),自動駕駛等場景的支援。
  • MALib 的采樣吞吐量較現有多智能體強化學習架構大幅度提升。通過利用所提出的中心化任務分發模型,MALib 的吞吐量在相同 GPU 計算節點情況下,最大采樣效率相較于 UC Berkeley RISELab 開發的著名通用架構 RLlib 可提升 15 倍,系統吞吐量較高度優化的 SOTA 架構 SampleFactory 提升近 100%;純 CPU 環境 MALib 的吞吐量優勢較進一步擴大至近 450%;同類算法訓練速度較 DeepMind 開發的 open spiel 提升三倍以上。
  • 最全的多智能體強化學習算法的支援。在訓練範式層面,MALib 使用同步 / 異步,中心化 / 去中心化等模式,對不同類型的多智能體強化學習算法的訓練進行抽象,并通過統一的 AgentInterface,實作了包括獨立學習者,中心化訓練去中心化執行,自對弈,策論空間應對預言機(PSRO)等算法。同時,對原先不支援并行異步訓練的算法,也可以使用 MALib 進行并行采樣與訓練的加速。

部分訓練效果

我們和一些現有的分布式強化學習架構進行了對比,以 MADDPG 為例,下圖展示的是在 multi-agent particle environments 上使用不同并行程度訓練 simple-spread 任務的學習曲線。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

與 RLlib 對比訓練 MADDPG 的效果。

對照架構是 RLlib。随着 worker 的數量增多,RLlib 的訓練越來越不穩定,而 MALib 的效果一直表現穩定。包括更複雜的環境,比如 StarCraftII 的一些實驗,我們對比 PyMARL 的實作,比較 QMIX 算法訓練到勝率達到 80% 所花費的時間,MALib 有顯著的效率提升(worker 數量都是設定成 32)。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

與 PyMARL 在星際任務上的效率對比。

另一方面,我們比較關注的是訓練過程的采樣效率。我們也對比了與其他分布式強化學習架構的吞吐量對比,在多智體版本的 Atari 遊戲上,MALib 在吞吐量和擴充性上都表現了不錯的性能。

上海交大開源MALib多智能體并行訓練架構,支援大規模基于種群的多智能體強化學習訓練

在星際及多智能體 Atari 任務上不同架構的吞吐量對比。

目前,我們的項目已經開源在 GitHub 上(

),更多的功能正在積極開發中,歡迎使用并向我們提出寶貴的改進意見!同時如果有興趣參與項目開發,歡迎聯系我們!聯系方式:[email protected]

團隊介紹

本項目由上海交通大學與倫敦大學學院(UCL)聯合的多智能體強化學習研究團隊開發。MALib 項目主要由上海交通大學溫穎助理教授指導下進行開發,核心開發成員包括上海交通大學三年級博士生周銘,ACM 班大四大學生萬梓煜,一年級博士生王翰竟,通路學者溫睦甯,ACM 班大三大學生吳潤哲,并得到上海交通大學張偉楠副教授和倫敦大學學院的楊耀東博士、汪軍教授的聯合指導。

團隊長期緻力于從理論算法、系統與應用三個層面入手,針對開放、真實、動态的多智能場景下的智能決策進行研究。理論團隊核心成員在人工智能和機器學習頂會發表多智能體強化學習相關論文共計五十餘篇,并獲得過 CoRL 2020 最佳系統論文、AAMAS 2021 Blue Sky Track 最佳論文獎。系統方面,除了面向多智能體強化學習種群訓練的系統 MALib,本團隊研發 SMARTS、CityFlow、MAgent 等大規模智能體強化學習仿真引擎,累計在 Github 上獲得了超過 2000 加星。此外,團隊在遊戲、自動駕駛、搜尋與推薦等場景下具有強化學習技術的真實應用落地的經驗。

繼續閱讀