• Stars
    star
    704
  • Rank 64,316 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 3 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿฆ A research-friendly codebase for fast experimentation of multi-agent reinforcement learning in JAX

Mava logo

A framework for distributed multi-agent reinforcement learning in JAX

Welcome to Mava! ๐Ÿฆ

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 - 01/10/2022: In the next few weeks, we will release our first JAX system! Using a more modular and flexible build method, with many more developments 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. After this release, our TF2-based systems will be deprecated. To still use them please install v0.1.3 of Mava (e.g. pip install id-mava==0.1.3). Please note, we will no longer be supporting these systems after our next release (v0.1.4).


Overview ๐Ÿฆœ

  • ๐Ÿฅ‘ 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 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.

Installation ๐ŸŽฌ

You can install the latest release of Mava as follows:

pip install id-mava[reverb,jax,envs]

You can also install directly from source:

pip install "id-mava[reverb,jax,envs] @ git+https://github.com/instadeepai/mava.git"

We have tested mava on Python 3.8, 3.9 and 3.10. 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.

Quickstart โšก

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.

Contributing ๐Ÿค

Please read our contributing docs for details on how to submit pull requests, our Contributor License Agreement and community guidelines.

Troubleshooting and FAQs

Please read our troubleshooting and FAQs guide.

Citing Mava

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},
}

More Repositories

1

jumanji

๐Ÿ•น๏ธ A diverse suite of scalable reinforcement learning environments in JAX
Python
600
star
2

nucleotide-transformer

๐Ÿงฌ Nucleotide Transformer: Building and Evaluating Robust Foundation Models for Human Genomics
Python
363
star
3

flashbax

โšก Flashbax: Accelerated Replay Buffers in JAX
Python
142
star
4

og-marl

Datasets with baselines for offline multi-agent reinforcement learning.
Python
127
star
5

tunbert

TunBERT is the first release of a pre-trained BERT model for the Tunisian dialect using a Tunisian Common-Crawl-based dataset. TunBERT was applied to three NLP downstream tasks: Sentiment Analysis (SA), Tunisian Dialect Identification (TDI) and Reading Comprehension Question-Answering (RCQA)
Python
92
star
6

AlphaNPI

Adapting the AlphaZero algorithm to remove the need of execution traces to train NPI.
Python
77
star
7

manyfold

๐Ÿงฌ ManyFold: An efficient and flexible library for training and validating protein folding models
Python
71
star
8

catx

๐Ÿˆโ€โฌ› Contextual bandits library for continuous action trees with smoothing in JAX
Python
61
star
9

marl-eval

A tool for aggregating and plotting MARL experiment data.
Python
59
star
10

poppy

๐ŸŒบ Population-Based Reinforcement Learning for Combinatorial Optimization
Python
58
star
11

fastpbrl

Vectorization techniques for fast population-based training.
Python
52
star
12

FrameDiPT

FrameDiPT: an SE(3) diffusion model for protein structure inpainting
Jupyter Notebook
49
star
13

sebulba

๐Ÿช The Sebulba architecture to scale reinforcement learning on Cloud TPUs in JAX
Python
46
star
14

InstaNovo

De novo peptide sequencing with InstaNovo: Accurate, database-free peptide identification for large scale proteomics experiments
Python
46
star
15

awesome-marl

A categorised list of Multi-Agent Reinforcemnt Learning (MARL) papers
46
star
16

compass

๐Ÿงญ COMPASS: Combinatorial Optimization with Policy Adaptation using Latent Space Search
Python
21
star
17

EGTA-NMARL

Experiments for performing empirical game-theoretic analysis of networked system control for common-pool resource management using multi-agent reinforcement learning.
Python
16
star
18

protein-sequence-bfn

Supporting code for our paper "Protein Sequence Modelling with Bayesian Flow Networks"
Python
14
star
19

bioclip

Contrasting Sequence with Structure: Pre-training Graph Representations with PLMs
Python
12
star
20

DebateLLM

Benchmarking Multi-Agent Debate between Language Models for Truthfulness in Q&A.
Jupyter Notebook
12
star
21

gtc-course-2020

Tutorial on Multi-Agent Reinforcement for Train Scheduling
Python
11
star
22

LightMHC

LightMHC: A Light Model for pMHC Structure Prediction with Graph Neural Networks
Python
11
star
23

gcp-gpu-metrics

๐Ÿ“ˆ Tiny Go binary that aims to export Nvidia GPU metrics to GCP monitoring, based on nvidia-smi.
Go
11
star
24

outer-value-function-meta-rl

Code of the paper: Debiasing Meta-Gradient Reinforcement Learning by Learning the Outer Value Function
Jupyter Notebook
10
star
25

matrax

A collection of matrix games in JAX
Python
9
star
26

qd-skill-discovery-benchmark

Neuroevolution is a Competitive Alternative to Reinforcement Learning for Skill Discovery
Python
9
star
27

scaling-resnets

โšก๏ธ A framework that investigates the scaling limit of ResNets and compares it to Neural ODEs. Tested on synthetic and standardized datasets. ๐Ÿ“ˆ
Python
5
star
28

IndabaX-TN-2023-RL

Jupyter Notebook
4
star
29

selective-reincarnation-marl

Official repository for Reduce, Reuse, Recycle: Selective Reincarnation in Multi-Agent Reinforcement Learning paper, accepted at the Reincarnating RL workshop at ICLR 2023.
Python
4
star
30

amld-africa-2021

Repository for the workshop at AMLD Africa 2021.
Jupyter Notebook
3
star
31

Indabax-Tunisia-2019

This repository contains the practical notebooks for the Indabax Tunisia 2019, held in Tunis on 13 April.
Jupyter Notebook
3
star
32

IndabaX-SA-2021

IndabaX-SA-2021
Jupyter Notebook
2
star
33

locust-predict

Locust breeding ground prediction using pseudo-absence generation and machine learning.
Jupyter Notebook
2
star
34

tpu-workshop

Materials for the TPU Workshop
Jupyter Notebook
1
star
35

SKAInnotate

Jupyter Notebook
1
star