Skip to main content

Melting Pot

A suite of test scenarios for multi-agent reinforcement learning.

Melting Pot substrates

Melting Pot 2.0 Tech Report 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

Melting Pot is available on PyPI](https://pypi.python.org/pypi/dm-meltingpot) and can be installed using:

pip install dm-meltingpot

After doing this you can then import meltingpot in your own code.

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).

Development

Codespace

The easiest way to work on the Melting Pot source code, is to use our pre-configured development environment via a Github CodeSpace.

This provides a tested development workflow that allows for reproducible builds, and minimizes dependency management. We strongly advise preparing all Pull Requests for Melting Pot via this workflow.

Manual setup

If you want to work on the Melting Pot source code within your own development environment you will have to handle installation and dependency management yourself.

For example, you can perform an editable installation as follows:

  1. Clone Melting Pot:

    git clone -b main https://github.com/google-deepmind/meltingpot
    cd meltingpot
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate
    
  3. Install Melting Pot:

    pip install --editable .[dev]
    
  4. Test the installation:

    pytest --pyargs meltingpot
    

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.

Open In Colab

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:

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.

Documentation

Full documentation is available here.

Citing Melting Pot

If you use Melting Pot in your work, please cite the accompanying articles:

@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}
}
@article{agapiou2022melting,
  title={Melting Pot 2.0},
  author={Agapiou, John P and Vezhnevets, Alexander Sasha and Du{\'e}{\~n}ez-Guzm{\'a}n, Edgar A and Matyas, Jayd and Mao, Yiran and Sunehag, Peter and K{\"o}ster, Raphael and Madhushani, Udari and Kopparapu, Kavya and Comanescu, Ramona and Strouse, {DJ} and Johanson, Michael B and Singh, Sukhdeep and Haas, Julia and Mordatch, Igor and Mobbs, Dean and Leibo, Joel Z},
  journal={arXiv preprint arXiv:2211.13746},
  year={2022}
}

Disclaimer

This is not an officially supported Google product.

Metadata

Release files for dm-meltingpot 2.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dm-meltingpot 2.4.1
File Size Uploaded
dm_meltingpot-2.4.1.tar.gz 400.3 kB Details

Release files / dm_meltingpot-2.4.1.tar.gz

Download URL dm_meltingpot-2.4.1.tar.gz
Size 400.3 kB
Tags Source
SHA-256 checksum
How to use checksums
572e3512b089ced24e3e4fe17857d54029d5937d3d8c0c0b5e32229d02f609f7
BLAKE2b-256 checksum
How to use checksums
466360ebbd136ca858995a00f78d4c1adb84a78a4d97ae61ce55960f825d2857
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page