hidden_agenda
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: caoshiyue
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 29.9 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 13
- Releases: 0
Metadata Files
README.md
Melting Pot
A suite of test scenarios for multi-agent reinforcement learning.
NEWS! Melting Pot Contest at NeurIPS 2023
About
Melting Pot assesses generalization to novel social situations involving both familiar and unfamiliar individuals, and has been designed to test a broad range of social interactions such as: cooperation, competition, deception, reciprocation, trust, stubbornness and so on. Melting Pot offers researchers a set of over 50 multi-agent reinforcement learning substrates (multi-agent games) on which to train agents, and over 256 unique test scenarios on which to evaluate these trained agents. The performance of agents on these held-out test scenarios quantifies whether agents:
- perform well across a range of social situations where individuals are interdependent,
- interact effectively with unfamiliar individuals not seen during training
The resulting score can then be used to rank different multi-agent RL algorithms by their ability to generalize to novel social situations.
We hope Melting Pot will become a standard benchmark for multi-agent reinforcement learning. We plan to maintain it, and will be extending it in the coming years to cover more social interactions and generalization scenarios.
If you are interested in extending Melting Pot, please refer to the Extending Melting Pot documentation.
Installation
pip install
Melting Pot is available on PyPI and can be installed using:
shell
pip install dm-meltingpot
NOTE: Melting Pot is built on top of DeepMind Lab2D
which is distributed as pre-built wheels. If there is no appropriate wheel for
dmlab2d, you will need to build it from source (see
the dmlab2d README.md
for details).
Manual install
If you want to work on the Melting Pot source code, you can perform an editable installation as follows:
Clone Melting Pot:
shell git clone -b main https://github.com/google-deepmind/meltingpot cd meltingpot(Optional) Activate a virtual environment, e.g.:
shell python -m venv venv source venv/bin/activateInstall Melting Pot:
shell pip install --editable .[dev](Optional) Test the installation:
shell pytest --pyargs meltingpot
Devcontainer (x86 only)
NOTE: This Devcontainer only works for x86 platforms. For arm64 (newer M1 Macs) users will have to follow the manual installation steps.
This project includes a pre-configured development environment (devcontainer).
You can launch a working development environment with one click, using e.g. Github Codespaces or the VSCode Containers extension.
CUDA support
To enable CUDA support (required for GPU training), make sure you have the
nvidia-container-toolkit
package installed, and then run Docker with the ---gpus all flag enabled. Note
that for GitHub Codespaces this isn't necessary, as it's done for you
automatically.
Example usage
Evaluation
The evaluation library can be used to evaluate SavedModels trained on Melting Pot substrates.
Evaluation results from the Melting Pot 2.0 Tech Report can be viewed in the Evaluation Notebook.
Interacting with the substrates
You can try out the substrates interactively with the
human_players scripts. For example, to play
the clean_up substrate, you can run:
shell
python meltingpot/human_players/play_clean_up.py
You can move around with the W, A, S, D keys, Turn with Q, and E,
fire the zapper with 1, and fire the cleaning beam with 2. You can switch
between players with TAB. There are other substrates available in the
human_players directory. Some have multiple
variants, which you select with the --level_name flag.
Training agents
We provide two example scripts: one using RLlib, and another using PettingZoo with Stable-Baselines3 (SB3). Note that Melting Pot is agnostic to how you train your agents, and as such, these scripts are not meant to be a suggestion on how to achieve good scores in the task suite.
RLlib
This example uses RLlib to train agents in self-play on a Melting Pot substrate.
First you will need to install the dependencies needed by the examples:
shell
cd <meltingpot_root>
pip install -r examples/requirements.txt
Then you can run the training experiment using:
shell
cd examples/rllib
python self_play_train.py
PettingZoo and Stable-Baselines3
This example uses a PettingZoo wrapper with a fully parameter shared PPO agent from SB3.
The PettingZoo wrapper can be used separately from SB3 and can be found here.
shell
cd <meltingpot_root>
pip install -r examples/requirements.txt
cd examples/pettingzoo
python sb3_train.py
Documentation
Full documentation is available here.
Citing Melting Pot
If you use Melting Pot in your work, please cite the accompanying article:
bibtex
@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}
}
Disclaimer
This is not an officially supported Google product.
Owner
- Login: caoshiyue
- Kind: user
- Repositories: 11
- Profile: https://github.com/caoshiyue
Citation (CITATION.bib)
@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}
}
GitHub Events
Total
Last Year
Dependencies
- ./.github/actions/install-meltingpot * composite
- actions/cache/restore 13aacd865c20de90d75de3b17ebe84f7a17d57d2 composite
- actions/cache/save 13aacd865c20de90d75de3b17ebe84f7a17d57d2 composite
- actions/setup-python 0a5c61591373683505ea898e09a3ea4f39ef2b9c composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- github/codeql-action/analyze e8893c57a1f3a2b659b6b55564fdfdbbd2982911 composite
- github/codeql-action/autobuild e8893c57a1f3a2b659b6b55564fdfdbbd2982911 composite
- github/codeql-action/init e8893c57a1f3a2b659b6b55564fdfdbbd2982911 composite
- ./.github/actions/install-examples * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- ./.github/actions/install-meltingpot * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- pypa/gh-action-pypi-publish 2f6f737ca5f74c637829c0f5c3acd0e29ea5e8bf composite
- actions/setup-python 0a5c61591373683505ea898e09a3ea4f39ef2b9c composite
- ./.github/actions/install-examples * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- ./.github/actions/install-meltingpot * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- actions/upload-artifact 26f96dfa697d77e81fd5907df203aa23a56210a8 composite
- github/codeql-action/upload-sarif e8893c57a1f3a2b659b6b55564fdfdbbd2982911 composite
- ossf/scorecard-action 0864cf19026789058feabb7e87baa5f140aac736 composite
- ./.github/actions/install-examples * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- ./.github/actions/install-meltingpot * composite
- actions/checkout b4ffde65f46336ab88eb53be808477a3936bae11 composite
- nvidia/cuda 12.3.1-devel-ubuntu22.04@sha256 build
- absl_py *
- dm_env *
- dm_meltingpot *
- dm_tree *
- dmlab2d *
- gymnasium *
- matplotlib *
- ml_collections *
- numpy *
- pettingzoo >=1.22.3
- ray ==2.5.0
- stable_baselines3 *
- supersuit >=3.7.2
- torch *
- Farama-Notifications ==0.0.4
- Jinja2 ==3.1.2
- Markdown ==3.5.2
- MarkupSafe ==2.1.5
- PyYAML ==6.0.1
- Pygments ==2.17.2
- SuperSuit ==3.8.1
- Werkzeug ==3.0.1
- absl-py ==2.1.0
- aiohttp ==3.9.3
- aiohttp-cors ==0.7.0
- aiosignal ==1.3.1
- ale-py ==0.7.5
- annotated-types ==0.6.0
- astunparse ==1.6.3
- async-timeout ==4.0.3
- attrs ==23.2.0
- blessed ==1.20.0
- cachetools ==5.3.3
- certifi ==2024.2.2
- charset-normalizer ==3.3.2
- chex ==0.1.7
- click ==8.1.7
- cloudpickle ==3.0.0
- colorful ==0.5.6
- contextlib2 ==21.6.0
- contourpy ==1.2.0
- cycler ==0.12.1
- decorator ==5.1.1
- distlib ==0.3.8
- dm-env ==1.6
- dm-meltingpot ==2.2.0
- dm-tree ==0.1.8
- dmlab2d ==1.0.0
- filelock ==3.9.0
- flatbuffers ==24.3.6
- fonttools ==4.49.0
- frozenlist ==1.4.1
- fsspec ==2023.4.0
- gast ==0.5.4
- google-api-core ==2.17.1
- google-auth ==2.28.1
- google-auth-oauthlib ==1.2.0
- google-pasta ==0.2.0
- googleapis-common-protos ==1.62.0
- gpustat ==1.1.1
- grpcio ==1.51.3
- gym ==0.21.0
- gymnasium ==0.29.1
- gymnasium-notices ==0.0.1
- h5py ==3.10.0
- idna ==3.6
- imageio ==2.34.0
- immutabledict ==4.2.0
- importlib-metadata ==4.13.0
- importlib_resources ==6.1.3
- jax ==0.4.19
- jaxlib ==0.4.19
- joblib ==1.3.2
- jsonschema ==4.21.1
- jsonschema-specifications ==2023.12.1
- keras ==2.15.0
- kiwisolver ==1.4.5
- lazy_loader ==0.3
- libclang ==16.0.6
- lz4 ==4.3.3
- markdown-it-py ==3.0.0
- matplotlib ==3.8.3
- mdurl ==0.1.2
- ml-collections ==0.1.1
- ml-dtypes ==0.2.0
- mpmath ==1.3.0
- msgpack ==1.0.8
- multidict ==6.0.5
- networkx ==3.2.1
- numpy ==1.26.4
- nvidia-cublas-cu11 ==11.11.3.6
- nvidia-cuda-cupti-cu11 ==11.8.87
- nvidia-cuda-nvrtc-cu11 ==11.8.89
- nvidia-cuda-runtime-cu11 ==11.8.89
- nvidia-cudnn-cu11 ==8.7.0.84
- nvidia-cufft-cu11 ==10.9.0.58
- nvidia-curand-cu11 ==10.3.0.86
- nvidia-cusolver-cu11 ==11.4.1.48
- nvidia-cusparse-cu11 ==11.7.5.86
- nvidia-ml-py ==12.535.133
- nvidia-nccl-cu11 ==2.19.3
- nvidia-nvtx-cu11 ==11.8.86
- oauthlib ==3.2.2
- opencensus ==0.11.4
- opencensus-context ==0.1.3
- opencv-python ==4.9.0.80
- opt-einsum ==3.3.0
- packaging ==23.2
- pandas ==2.2.1
- pettingzoo ==1.23.0
- pillow ==10.2.0
- platformdirs ==3.11.0
- prometheus_client ==0.20.0
- protobuf ==4.25.3
- psutil ==5.9.8
- py-spy ==0.3.14
- pyarrow ==15.0.0
- pyasn1 ==0.5.1
- pyasn1-modules ==0.3.0
- pydantic ==1.10.14
- pydantic_core ==2.16.3
- pygame ==2.5.2
- pyglet ==2.0.14
- pyparsing ==3.1.2
- python-dateutil ==2.9.0.post0
- pytz ==2024.1
- ray ==2.5.0
- reactivex ==4.0.4
- referencing ==0.33.0
- requests ==2.31.0
- requests-oauthlib ==1.3.1
- rich ==13.7.1
- rpds-py ==0.18.0
- rsa ==4.9
- scikit-image ==0.22.0
- scipy ==1.12.0
- six ==1.16.0
- smart-open ==7.0.1
- stable-baselines3 ==2.2.1
- sympy ==1.12
- tensorboard ==2.15.2
- tensorboard-data-server ==0.7.2
- tensorboardX ==2.6.2.2
- tensorflow ==2.15.0.post1
- tensorflow-estimator ==2.15.0
- tensorflow-io-gcs-filesystem ==0.36.0
- tensorflow-probability ==0.23.0
- termcolor ==2.4.0
- tifffile ==2024.2.12
- tinyscaler ==1.2.7
- toolz ==0.12.1
- torch ==2.2.1
- triton ==2.2.0
- typer ==0.9.0
- typing_extensions ==4.10.0
- tzdata ==2024.1
- urllib3 ==2.2.1
- virtualenv ==20.21.0
- wcwidth ==0.2.13
- wrapt ==1.14.1
- yarl ==1.9.4
- zipp ==3.17.0
- absl-py *
- chex *
- dm-env *
- dm-tree *
- dmlab2d *
- immutabledict *
- ml-collections *
- networkx *
- numpy *
- opencv-python *
- pandas *
- pygame *
- reactivex *
- tensorflow *