隆重推出 ⚔️ AI vs. AI ⚔️:一個深度強化學習多智慧體競賽系統

我們很高興地向大家介紹我們建立的一個新工具:⚔️ AI vs. AI ⚔️,一個深度強化學習多智慧體競賽系統。
這個工具託管在 Spaces 上,可以讓我們建立多智慧體競賽。它由三個要素組成:
- 一個帶有配對演算法的 Space,它會使用後臺任務來執行模型間的對戰。
- 一個包含比賽結果的 Dataset。
- 一個 Leaderboard (排行榜),它會獲取比賽歷史結果並顯示模型的 ELO (埃洛) 等級分。
然後,當用戶將一個訓練好的模型推送到 Hub 時,它會得到評估,並與其他模型進行排名。這樣,我們就可以在多智慧體環境中評估你的智慧體與其他人的智慧體。
我們認為,這個工具除了可以用於舉辦多智慧體競賽外,也可以成為多智慧體環境中的一種強大的評估技術。透過與大量策略進行對戰,你的智慧體可以在各種行為中得到評估。這能讓你很好地瞭解自己策略的質量。
讓我們透過我們的第一個競賽:SoccerTwos 挑戰賽,來看看它是如何運作的。

AI vs. AI 是如何工作的?
AI vs. AI 是 Hugging Face 開發的一款開源工具,用於在多智慧體環境中對強化學習模型的實力進行排名。
其理念是,透過讓模型之間持續對戰,並利用比賽結果來評估它們相對於所有其他模型的表現,從而獲得一種相對的技能衡量標準,而非客觀標準,進而無需傳統指標即可瞭解其策略質量。
對於給定的任務或環境,提交的智慧體越多,評分就越具代表性。
為了在競爭環境中根據比賽結果生成排名,我們決定基於 ELO 等級分系統 進行排名。
其核心概念是,比賽結束後,根據比賽結果和雙方賽前的等級分來更新兩位玩家的評分。當高分的玩家擊敗低分的玩家時,他們不會獲得很多分數。同樣,在這種情況下,輸家也不會失去很多分數。
反之,如果低分玩家爆冷戰勝高分玩家,這將對雙方的等級分產生更顯著的影響。
在我們的系統中,我們儘可能保持其簡單,沒有根據玩家的初始等級分來調整得分或失分量。因此,得分和失分總是完全相反的 (例如 +10 / -10),平均 ELO 等級分將始終保持在初始值。選擇 1200 作為 ELO 等級分的起始值完全是隨意的。
如果你想了解更多關於 ELO 的資訊並檢視一些計算示例,我們在深度強化學習課程中寫了一篇解釋,請看這裡。
利用這個評級,可以自動在實力相當的模型之間生成比賽。建立配對系統有多種方法,但在這裡我們決定保持相當簡單,同時保證對戰的最小多樣性,並使大多數比賽的對手評級相當接近。

以下是該演算法的工作原理:
- 收集 Hub 上所有可用的模型。新模型的初始評分為 1200,而其他模型則保留它們透過之前比賽獲得/失去的評分。
- 用所有這些模型建立一個佇列。
- 從佇列中彈出第一個元素 (模型),然後從佇列中與第一個模型評分最接近的 n 個模型中隨機彈出另一個模型。
- 透過在環境 (例如 Unity 可執行檔案) 中載入兩個模型並收集結果來模擬這場比賽。在此實現中,我們將結果傳送到 Hub 上的一個 Hugging Face 資料集。
- 根據收到的結果和 ELO 公式計算兩個模型的新評級。
- 繼續兩個兩個地彈出模型並模擬比賽,直到佇列中只剩一個或零個模型。
- 儲存最終的評級,然後返回到步驟 1。
為了持續執行這個配對過程,我們使用免費的 Hugging Face Spaces 硬體和一個排程器 (Scheduler),將配對過程作為後臺任務持續執行。
Spaces 還用於獲取每個已經比賽過的模型的 ELO 評級,並由此顯示一個排行榜,每個人都可以透過它檢視模型的進展。

該過程通常使用多個 Hugging Face 資料集來提供資料永續性 (這裡是比賽歷史和模型評級)。
由於該過程還會儲存比賽歷史,因此可以精確地檢視任何給定模型的結果。例如,這可以讓你檢查你的模型為什麼在與另一個模型對抗時表現不佳,特別是可以利用另一個演示 Space 來視覺化比賽,比如這個。
目前,這個實驗正在為 Hugging Face 深度強化學習課程使用 MLAgent 環境 SoccerTwos 執行,但是,這個過程和實現總體上是與環境無關的,可以免費用於評估各種對抗性多智慧體場景。
當然,需要再次強調的是,這種評估是提交的智慧體之間實力的相對評級,評級本身與其他指標不同,沒有客觀意義。它僅代表一個模型與模型池中其他模型相比表現的好壞。但是,如果有一個足夠大且多樣化的模型池 (以及足夠多的比賽),這種評估就會成為一種非常可靠的表示模型總體效能的方式。
我們的第一個 AI vs. AI 挑戰實驗:SoccerTwos 挑戰賽 ⚽
這項挑戰是我們免費深度強化學習課程的第七單元。它於 2 月 1 日開始,將於 4 月 30 日結束。
如果你感興趣,你無需參加課程即可參與比賽。你可以從這裡開始 👉 https://huggingface.co/deep-rl-course/unit7/introduction
在本單元中,讀者透過訓練一個2對2的足球隊學習了多智慧體強化學習 (MARL) 的基礎知識。⚽
使用的環境是由 Unity ML-Agents 團隊製作的。目標很簡單:你的球隊需要進球。為此,他們需要擊敗對手球隊並與隊友合作。

除了排行榜,我們還建立了一個 Space 演示,人們可以在其中選擇兩支隊伍並觀看他們比賽 👉https://huggingface.co/spaces/unity/SoccerTwos
這個實驗進展順利,因為我們已經在排行榜上有了 48 個模型
我們還建立了一個名為 ai-vs-ai-competition 的 discord 頻道,以便人們可以與他人交流並分享建議。
總結與展望
由於我們開發的工具是與環境無關的,我們希望未來能與 PettingZoo 及其他多智慧體環境一起舉辦更多的挑戰賽。如果你有一些想要舉辦的環境或挑戰,請隨時與我們聯絡。
未來,我們將使用這個工具和我們自己建立的環境 (如 SnowballFight) 舉辦多場多智慧體競賽。

除了作為舉辦多智慧體競賽的有用工具外,我們認為這個工具還可以成為多智慧體環境中的一種強大的評估技術:透過與大量策略對戰,你的智慧體可以在各種行為中得到評估,你將對你的策略質量有一個很好的瞭解。
保持聯絡的最佳方式是加入我們的 discord 伺服器,與我們以及社群進行交流。
引用
引用:如果這對您的學術工作有用,請考慮在文中引用我們的工作
Cochet, Simonini, "Introducing AI vs. AI a deep reinforcement learning multi-agents competition system", Hugging Face Blog, 2023.
BibTeX 引用
@article{cochet-simonini2023,
author = {Cochet, Carl and Simonini, Thomas},
title = {Introducing AI vs. AI a deep reinforcement learning multi-agents competition system},
journal = {Hugging Face Blog},
year = {2023},
note = {https://huggingface.co/blog/aivsai},
}