多智能体强化学习测试场景套件。
项目描述
熔炉
多智能体强化学习测试场景套件。
关于
熔炉评估了将熟悉和不熟悉个体涉及的新颖社交情境的泛化能力,并被设计来测试广泛的社会互动,例如:合作、竞争、欺骗、互惠、信任、固执等。熔炉为研究人员提供了一套超过50个多智能体强化学习基础(多智能体游戏)来训练智能体,以及超过256个独特的测试场景来评估这些训练过的智能体。这些保留测试场景中智能体的表现量化了智能体是否
- 在各种个人相互依存的社交情境中表现良好,
- 与训练过程中未见过的陌生人有效互动
得到的分数可以用来根据算法将不同多智能体强化学习算法按其推广到新颖社交情况的能力进行排名。
我们希望Melting Pot将成为多智能体强化学习的一个标准基准。我们计划维护它,并在未来几年将其扩展以涵盖更多的社交互动和泛化场景。
如果您有兴趣扩展Melting Pot,请参阅扩展Melting Pot文档。
安装
pip
安装
Melting Pot可在PyPI上找到,可以使用以下方式安装
pip install dm-meltingpot
注意:Melting Pot建立在DeepMind Lab2D之上,作为预构建的wheel分发。如果没有适用于dmlab2d
的适当wheel,您需要从源代码构建它(有关详细信息,请参阅dmlab2d的README.md
)。
手动安装
如果您想对Melting Pot源代码进行工作,可以按照以下方式进行可编辑安装
-
克隆Melting Pot
git clone -b main https://github.com/google-deepmind/meltingpot cd meltingpot
-
(可选)激活虚拟环境,例如
python -m venv venv source venv/bin/activate
-
安装Melting Pot
pip install --editable .[dev]
-
(可选)测试安装
pytest --pyargs meltingpot
Devcontainer(仅限x86)
注意:此Devcontainer仅适用于x86平台。对于arm64(较新的M1 Mac)用户,必须遵循手动安装步骤。
此项目包含一个预配置的开发环境(devcontainer)。
您可以使用一键操作启动工作开发环境,例如使用Github Codespaces或VSCode Containers扩展。
CUDA支持
要启用CUDA支持(对于GPU训练是必需的),请确保已安装nvidia-container-toolkit包,然后使用带有---gpus all
标志启用的Docker运行。请注意,对于GitHub Codespaces,这不是必需的,因为它是自动为您完成的。
示例用法
评估
可以使用evaluation库来评估在Melting Pot子图上训练的SavedModel。
可以从Melting Pot 2.0技术报告中查看评估结果,在评估笔记本中。
与子图互动
您可以使用human_players脚本来交互式地尝试子图。例如,要玩clean_up
子图,您可以运行
python meltingpot/human_players/play_clean_up.py
您可以使用W
、A
、S
、D
键移动,使用Q
和E
键转向,使用1
键发射zapper,使用2
键发射清洁光束。您可以使用TAB
键在玩家之间切换。在human_players目录中还有其他子图可供选择。其中一些有多个变体,您可以使用--level_name
标志选择。
训练智能体
我们提供了两个示例脚本:一个使用RLlib,另一个使用PettingZoo和Stable-Baselines3(SB3)。请注意,Melting Pot对您如何训练智能体是中立的,因此这些脚本不是关于如何在任务套件中取得高分的一些建议。
RLlib
此示例使用RLlib在Melting Pot子图上进行自我玩游戏的智能体训练。
首先,您需要安装示例所需的依赖项
cd <meltingpot_root>
pip install -r examples/requirements.txt
然后您可以使用以下方式运行训练实验
cd examples/rllib
python self_play_train.py
宠物动物园和Stable-Baselines3
本示例使用了一个与SB3完全参数共享的PPO智能体相结合的PettingZoo包装器。
该PettingZoo包装器可以独立于SB3使用,可以在此处找到。
cd <meltingpot_root>
pip install -r examples/requirements.txt
cd examples/pettingzoo
python sb3_train.py
文档
完整文档可在此处查看:https://github.com/google-deepmind/meltingpot/blob/main/docs/index.md。
引用Melting Pot
如果您在您的作品中使用了Melting Pot,请引用随附的文章
@inproceedings{leibo2021meltingpot,
title={Scalable Evaluation of Multi-Agent Reinforcement Learning with
Melting Pot},
author={Joel Z. Leibo AND Edgar Du\'e\~nez-Guzm\'an AND Alexander Sasha
Vezhnevets AND John P. Agapiou AND Peter Sunehag AND Raphael Koster
AND Jayd Matyas AND Charles Beattie AND Igor Mordatch AND Thore
Graepel},
year={2021},
journal={International conference on machine learning},
organization={PMLR},
url={https://doi.org/10.48550/arXiv.2107.06857},
doi={10.48550/arXiv.2107.06857}
}
免责声明
这不是一个官方支持的Google产品。
项目详情
dm_meltingpot-2.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9815bb3569b5833f426ac787c46bf7c8a52f0376c8b062de3c902a15df59d90b |
|
MD5 | adacf5522abe32fd2bfb2a1d37ec9852 |
|
BLAKE2b-256 | 440f4f131b05ab87361c54a6f5ba805280d4e81f5c48b44c6ccbd2d9dfd8ff4b |