跳转到主要内容

多智能体强化学习测试场景套件。

项目描述

熔炉

多智能体强化学习测试场景套件。

Melting Pot substrates

熔炉2.0技术报告 2023年NeurIPS熔炉竞赛

关于

熔炉评估了将熟悉和不熟悉个体涉及的新颖社交情境的泛化能力,并被设计来测试广泛的社会互动,例如:合作、竞争、欺骗、互惠、信任、固执等。熔炉为研究人员提供了一套超过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源代码进行工作,可以按照以下方式进行可编辑安装

  1. 克隆Melting Pot

    git clone -b main https://github.com/google-deepmind/meltingpot
    cd meltingpot
    
  2. (可选)激活虚拟环境,例如

    python -m venv venv
    source venv/bin/activate
    
  3. 安装Melting Pot

    pip install --editable .[dev]
    
  4. (可选)测试安装

    pytest --pyargs meltingpot
    

Devcontainer(仅限x86)

注意:此Devcontainer仅适用于x86平台。对于arm64(较新的M1 Mac)用户,必须遵循手动安装步骤。

此项目包含一个预配置的开发环境(devcontainer)。

您可以使用一键操作启动工作开发环境,例如使用Github CodespacesVSCode Containers扩展。

CUDA支持

要启用CUDA支持(对于GPU训练是必需的),请确保已安装nvidia-container-toolkit包,然后使用带有---gpus all标志启用的Docker运行。请注意,对于GitHub Codespaces,这不是必需的,因为它是自动为您完成的。

示例用法

评估

可以使用evaluation库来评估在Melting Pot子图上训练的SavedModel

可以从Melting Pot 2.0技术报告中查看评估结果,在评估笔记本中。

Open In Colab

与子图互动

您可以使用human_players脚本来交互式地尝试子图。例如,要玩clean_up子图,您可以运行

python meltingpot/human_players/play_clean_up.py

您可以使用WASD键移动,使用QE键转向,使用1键发射zapper,使用2键发射清洁光束。您可以使用TAB键在玩家之间切换。在human_players目录中还有其他子图可供选择。其中一些有多个变体,您可以使用--level_name标志选择。

训练智能体

我们提供了两个示例脚本:一个使用RLlib,另一个使用PettingZooStable-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 (390.4 kB 查看哈希值)

上传时间 源代码