多智能體強化學習算法評估Hard模式來了!浙大、南棲仙策聯手推出
本文作者來自浙江大學、中國科學技術大學、中科院自動化所和南棲仙策。作者列表:鄧悅、喻言、馬瑋彧、王子瑞、朱文輝、趙鑒和張寅。第一作者鄧悅是浙江大學計算機系博士生。通訊作者是南棲仙策趙鑒博士和浙江大學計算機系教授張寅。
在人工智能領域,具有挑戰性的模擬環境對于推動多智能體強化學習(MARL)領域的發展至關重要。在合作式多智能體強化學習環境中,大多數算法均通過星際爭霸多智能體挑戰(SMAC)作為實驗環境來驗證算法的收斂和樣本利用率。然而隨著 MARL 算法的不斷進步,很多算法在 SMAC 環境上均表現出接近最優的性能,這使得對算法的真實有效性的評估變得更為復雜。盡管 SMACv2 環境在任務初始化時采用概率生成的方式以削弱開環控制的特性,但是兩個環境均是以默認的、單一的、且確定的腳本作為對手腳本。這使得智能體學習到的策略模型更容易過擬合到某一個對手策略,或利用對手策略的漏洞而擬合到取巧方法上。
圖一:SMACv1(左)和 SMACv2(右)的默認腳本。分別為:“操控所有玩家 2 的角色攻擊 Team1 位置” 和 “操控每個玩家 2 的角色攻擊玩家 1 的最近角色”。
為說明默認腳本帶來的影響,如下的三個視頻回放分別來自 SMACv1、SMACv2 的默認對手策略和合適的對手策略。
在 SMACv1 環境中,對手 zealot 被仇恨范圍和腳本卡在 Team1 的位置,脫離其他角色的戰斗。
在 SMACv2 環境中,因為默認對手策略為攻擊最近角色,對手 zealot 被 stalker 吸引,脫離其他角色的戰斗。
在 SMAC-HARD 中,豐富對手策略給智能體帶來更正常更大的挑戰。
近期,浙江大學和南棲仙策聯合推出了基于 SMAC 模擬環境的 SMAC-HARD 環境。該環境支持可編輯的對手策略、隨機化對手策略以及 MARL 自博弈接口,從而使智能體訓練過程能夠適應不同的對手行為進而提高模型的穩定性。此外,智能體還可以通過 SMAC-HARD 環境完成黑盒測試來評估 MARL 算法的策略覆蓋性和遷移能力,即智能體在訓練過程中僅通過與默認對手策略或自博弈模型進行推演,但在測試過程中與環境提供的腳本進行交互。
團隊在 SMAC-HARD 上對廣泛使用的先進算法進行了評估,展示了當前的 MARL 算法在面對混合可編輯對手策略時會得到更保守的行為價值,進而導致策略網絡收斂到次優解。此外,黑盒策略測試也體現了將所學策略轉移到未知對手身上的難度。團隊希望通過推出 SMAC-HARD 環境來為后續 MARL 算法評估提出新的挑戰,并促進多智能體系統社區中自博弈方法的發展。
- 論文標題:SMAC-Hard: Enabling Mixed Opponent Strategy Script and Self-play on SMAC
- 論文地址:https://arxiv.org/abs/2412.17707
- 項目地址:https://github.com/devindeng94/smac-hard
- 知乎鏈接:https://zhuanlan.zhihu.com/p/14397869903
環境介紹
就源代碼而言,基于 Python 的 pysc2 代碼包是對《星際爭霸 II》二進制游戲文件中的 sc2_protocol 的抽象。通過 pysc2 對 sc2_protocolAPI 的抽象,玩家可以操控游戲的進程。而 SMAC 框架是通過將 pysc2 的原始觀測數據轉化為標準化、結構化、向量化的觀測和狀態表示,進一步封裝了 pysc2 提供的 API。因此,《星際爭霸 II》環境本身既支持來自 SMAC 的標準化動作,也支持由 pysc2 腳本生成的動作,這為對手可編輯腳本提供了支持。如圖二所示,SMAC-HARD 修改了 SMAC 中的地圖(SC2Map)以啟用多玩家模式并禁用了默認攻擊策略以防止默認腳本策略中的行動干擾。除了對地圖的修改外,對原 SMAC 的 starcraft.py 文件也進行了修改,以容納兩個玩家進入游戲,檢索兩個玩家的原始觀測數據,并同時處理兩個玩家的行動。為了減輕行動執行順序的影響,環境對兩名玩家的行動步進過程進行了并行化處理。
圖二:SMAC-HARD 環境、對手策略腳本、自博弈接口封裝,與原始 SMAC、PySC2、StarCraftII 的關系示意圖。
除了為對手提供了決策樹建模外,當存在多個對手策略時,環境還引入了由預定義概率設置的隨機策略選擇功能以提升對手策略的豐富度。這些概率以浮點值列表的形式表示,默認設置為所有策略相等概率。此外,為了進一步擴大對手的策略豐富度,環境還根據智能體的觀測、狀態和可用行為等的封裝,為對手提供了類似的對稱接口以促進 MARL 自博弈模式的發展。用戶可以通過 "mode" 參數來控制使用自博弈模式或決策樹模式且該模式默認為決策樹模式。以此為前提,用戶將 import 中的 smac 更換為 smac_hard,即可將實驗環境從 SMAC 無縫過渡到 SMAC-HARD。
圖三:由大模型生成雙方策略腳本過程。在對稱的環境中,最終生成的雙方策略均被采用為可選備受策略。
雖然決策樹在面對不同對手策略時表現出更高的穩定性且可以提供更強的可解釋性。參考最近的工作 LLM-SMAC,對手策略的生成可以通過代碼大模型完成以輔助策略腳本編寫。如圖三所示:將角色信息、地圖信息、與任務描述合成為環境提示,并利用規劃大模型為雙方規劃策略架構。雙方分別利用代碼大模型實現各自的策略架構,并利用生成的代碼在 SMAC-HARD 中進行測評。再利用大模型作為批評家多輪分析測評結果和代碼,進而為規劃大模型和代碼大模型提供優化建議。
測試結果
經過對五個經典算法的測試,SMAC-HARD 環境表現出對基礎 MARL 算法更大的挑戰。在最初的 SMAC 任務中,幾乎所有算法都能在 1000 萬個時間步內實現接近 100% 的勝率,相比之下,SMAC-HARD 則引入了更高的難度和收斂挑戰。例如,如圖四和表一所示,2m_vs_1z 任務在原始 SMAC 環境中相對容易,但在 SMAC-HARD 中卻變成了超難任務。在 SMAC-HARD 中,Zealot 始終以一名 Marine 為目標,這就要求一名 Marine 負責移動躲避傷害,而另一名則專注于攻擊。這使得每個智能體需要連續做出正確的行為,這對 MARL 算法構成了巨大挑戰。
圖四:經典算法在 SMAC-HARD 環境中 10M 步的測試曲線。
表一:經典算法在 SMAC-HARD 環境中 10M 步的測試結果。
為測試 MARL 算法的策略覆蓋率和遷移能力,SMAC-HARD 提供了黑盒測試模式。MARL 算法面向默認對手策略訓練 10M 步后再針對混合對手策略進行測試,測試結果如表二所示。值得注意的是:與黑盒評估的勝率隨著任務難度的增加而增加,在 3s_vs_3z、3s_vs_4z 和 3s_vs_5z 任務中產生了相反的趨勢。在 Stalker 面對 Zealot 的時候,Stalker 角色可以通過更高的移速來 “風箏” Zealot 角色。3s_vs_5z 的環境更具挑戰性,智能體必須采用嚴格的 “風箏” 機制這一最優的應對策略才能獲勝。學習到了最佳應對策略的智能體更有可能在黑盒測試的對手腳本前取得成功。
表二:經典算法在 SMAC 環境中訓練 10M 步后在 SMAC-HARD 的黑盒模式測試結果。
除此之外,原 SMAC 環境中對于對手血量和盾量回復的獎勵結算錯誤,使得智能體容易陷入最大化獎勵的最優解,但是是勝率結算的次優解。而 SMAC 作為實驗環境已經測評了多個算法,所以雖然發現了 SMAC 的獎勵結算錯誤,SMAC 也不方便修正使實驗結果不具備可比性。由于提出了新的測評環境,SMAC-HARD 修正了這個來自 SMAC 的獎勵結算 bug。
圖五:SMAC 環境作者對獎勵結算問題的回應。
總結
綜上所述,論文針對 SMAC 中使用的單一默認對手策略缺乏策略空間的多樣性問題,引入了支持對手腳本編輯、預定概率混合對手策略、和自博弈接口對齊的 SMAC-HARD 環境。研究結果展示,即使是在傳統 SMAC 環境中性能近乎完美的流行的 MARL 算法,在 SMAC-HARD 環境中也難以保持高勝率。此外,環境還對使用 MARL 算法訓練的模型進行了黑盒評估,強調在面對單一、脆弱的對手策略時,MARL 策略的可轉移性有限。最后,環境將對手方的訓練接口與智能體方的訓練接口進行了對齊,為潛在的 MARL 自博弈領域研究提供了一個平臺。希望 SMAC-HARD 可以作為一個可編輯的且具有挑戰性的環境,為 MARL 社區研究做出貢獻。