隆重推出 ⚔️ 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},
}