Installation | Quickstart | Documentation
Mava is a library for building multi-agent reinforcement learning (MARL) systems. Mava provides useful components, abstractions, utilities and tools for MARL and allows for simple scaling for multi-process system training and execution while providing a high level of flexibility and composability. Originating in the Research Team at InstaDeep, Mava is now developed jointly with the open-source community. βMavaβ means experience, or wisdom, in Xhosa - one of South Africaβs eleven official languages.
To join us in these efforts, please feel free to reach out, raise issues or read our contribution guidelines (or just star π to stay up to date with the latest developments)!
π UPDATE - 02/09/2022: As mentioned in our previous update, we are in the process of fully moving to JAX. In the next few weeks, we will release our first JAX system! Using a more modular and flexible build method, with many more develops to come soon. These will include more components and utilities, state-of-the-art system implementations, notebooks and tutorials as well as detailed benchmarking and performance guides. Please note that all TF2-based systems using the old build method will be deprecated in the near future. As part of this update, we have also restructured the readme and our documentation to reflect our move to JAX.
- π₯ Modular building blocks for MARL: modular abstractions and components for MARL to facilitate building multi-agent systems at scale.
- π¬ Environment Wrappers: easily connect to your favourite MARL environment including SMAC, PettingZoo, Flatland, 2D RoboCup, OpenSpiel and more. For details on our environment wrappers and how to add your own environment, please see here.
- π Educational Material: examples and user guides to facilitate Mava's adoption and highlight the added value of JAX-based MARL.
You can install the latest release of Mava for Tensorflow from PyPI (to be deprecated soon). Note that you will still be able to use TF2 systems by pinning to an older version of Mava.
pip install id-mava[reverb,tf,envs]
For JAX, please install the latest development version directly from GitHub (PyPI release coming soon!).
pip install "id-mava[reverb,jax,envs] @ git+https://github.com/instadeepai/mava.git"
We have tested mava
on Python 3.7, 3.8 and 3.9. Note that because the installation of JAX differs depending on your hardware accelerator,
we advise users to explicitly install the correct JAX version (see the official installation guide). For more in-depth instalations guides including Docker builds and virtual environments, please see our detailed installation guide.
We have a Quickstart notebook that can be used to quickly create and train your first Multi-Agent System. For more on Mava's implementation details, please visit our documentation.
Please read our contributing docs for details on how to submit pull requests, our Contributor License Agreement and community guidelines.
Please read our troubleshooting and FAQs guide.
If you use Mava in your work, please cite the accompanying technical report (to be updated soon to reflect our transition to JAX):
@article{pretorius2021mava,
title={Mava: A Research Framework for Distributed Multi-Agent Reinforcement Learning},
author={Arnu Pretorius and Kale-ab Tessera and Andries P. Smit and Kevin Eloff
and Claude Formanek and St John Grimbly and Siphelele Danisa and Lawrence Francis
and Jonathan Shock and Herman Kamper and Willie Brink and Herman Engelbrecht
and Alexandre Laterre and Karim Beguir},
year={2021},
journal={arXiv preprint arXiv:2107.01460},
url={https://arxiv.org/pdf/2107.01460.pdf},
}