All Projects → sjtu-marl → malib

sjtu-marl / malib

Licence: MIT license
A parallel framework for population-based multi-agent reinforcement learning.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to malib

Ray
An open source framework that provides a simple, universal API for building distributed applications. Ray is packaged with RLlib, a scalable reinforcement learning library, and Tune, a scalable hyperparameter tuning library.
Stars: ✭ 18,547 (+5339%)
Mutual labels:  parallel, distributed, ray
OpenABL
A domain-specific language for parallel and distributed agent-based simulations.
Stars: ✭ 24 (-92.96%)
Mutual labels:  parallel, distributed
ParallelUtilities.jl
Fast and easy parallel mapreduce on HPC clusters
Stars: ✭ 28 (-91.79%)
Mutual labels:  parallel, distributed
distributed
Library to provide Erlang style distributed computations. This library is inspired by Cloud Haskell.
Stars: ✭ 49 (-85.63%)
Mutual labels:  parallel, distributed
Modin
Modin: Speed up your Pandas workflows by changing a single line of code
Stars: ✭ 6,639 (+1846.92%)
Mutual labels:  distributed, ray
Optuna
A hyperparameter optimization framework
Stars: ✭ 5,679 (+1565.4%)
Mutual labels:  parallel, distributed
optuna-examples
Examples for https://github.com/optuna/optuna
Stars: ✭ 238 (-30.21%)
Mutual labels:  parallel, distributed
pooljs
Browser computing unleashed!
Stars: ✭ 17 (-95.01%)
Mutual labels:  parallel, distributed
Xyzpy
Efficiently generate and analyse high dimensional data.
Stars: ✭ 45 (-86.8%)
Mutual labels:  parallel, distributed
Lightgbm
A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.
Stars: ✭ 13,293 (+3798.24%)
Mutual labels:  parallel, distributed
Open spiel
OpenSpiel is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games.
Stars: ✭ 2,991 (+777.13%)
Mutual labels:  games, multiagent
Galaxy
Galaxy is an asynchronous parallel visualization ray tracer for performant rendering in distributed computing environments. Galaxy builds upon Intel OSPRay and Intel Embree, including ray queueing and sending logic inspired by TACC GraviT.
Stars: ✭ 18 (-94.72%)
Mutual labels:  parallel, distributed
gamesearch
A Simple Search Engine to help you find FREE Download Links to your Favourite Games
Stars: ✭ 30 (-91.2%)
Mutual labels:  games
monpad
A fully-customisable web-based gamepad, designed to be used from smartphones.
Stars: ✭ 34 (-90.03%)
Mutual labels:  games
sst-core
SST Structural Simulation Toolkit Parallel Discrete Event Core and Services
Stars: ✭ 82 (-75.95%)
Mutual labels:  parallel
Beacon
A simple UPnP Assistant that is capable of opening arbitrary ports.
Stars: ✭ 34 (-90.03%)
Mutual labels:  games
useful-scripts
common useful script
Stars: ✭ 30 (-91.2%)
Mutual labels:  parallel
ofxRaycaster
Plane, 2D and 3D Ray objects for openFrameworks.It checks for the intersection of a ray with a segment, a sphere, a triangle, a plane, an ofPrimitive, an ofPolyline an with an ofMesh.
Stars: ✭ 54 (-84.16%)
Mutual labels:  ray
funboost
pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和全球一切知名消息队列中间件,python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数。旧名字是function_scheduling_distributed_framework
Stars: ✭ 351 (+2.93%)
Mutual labels:  distributed
Credits
Credits(CRDS) - An Evolving Currency For An Evolving Society
Stars: ✭ 14 (-95.89%)
Mutual labels:  distributed

MALib: A parallel framework for population-based reinforcement learning

GitHub license Documentation Status Build Status codecov

MALib is a parallel framework of population-based learning nested with reinforcement learning methods, such as Policy Space Response Oracle, Self-Play, and Neural Fictitious Self-Play. MALib provides higher-level abstractions of MARL training paradigms, which enables efficient code reuse and flexible deployments on different distributed computing paradigms.

architecture

Installation

The installation of MALib is very easy. We've tested MALib on Python 3.6 and 3.7. This guide is based on ubuntu 18.04 and above. We strongly recommend using conda to manage your dependencies, and avoid version conflicts. Here we show the example of building python 3.7 based conda environment.

conda create -n malib python==3.7 -y
conda activate malib

# install dependencies
./install.sh

Environments

MALib integrates many popular reinforcement learning environments, we list some of them as follows.

  • OpenSpiel: A framework for Reinforcement Learning in games, it provides plenty of environments for the research of game theory.
  • Gym: An open source environment collections for developing and comparing reinforcement learning algorithms.
  • Google Research Football: RL environment based on open-source game Gameplay Football.
  • SMAC: An environment for research in the field of collaborative multi-agent reinforcement learning (MARL) based on Blizzard's StarCraft II RTS game.
  • PettingZoo: A Python library for conducting research in multi-agent reinforcement learning, akin to a multi-agent version of Gymnasium.
  • DexterousHands: An environment collection of bimanual dexterous manipulations tasks.

See malib/envs for more details. In addition, users can customize environments with MALib's environment interfaces. Please refer to our documentation.

Algorithms and Scenarios

MALib integrates population-based reinforcement learning, popular deep reinforcement learning algorithms. See algorithms table here. The supported learning scenarios are listed as follow:

  • Single-stream PSRO scenario: for single-stream population-based reinforcement learning algorithms, cooperating with empirical game theoretical analysis methods. See scenarios/psro_scenario.py
  • Multi-stream PSRO scenario: for multi-stream population-based reinforcement learning algorithms, cooperating with empirical game theoretical analysis methods. See scenarios/p2sro_scenario.py
  • Multi-agent Reinforcement Learning scenario: for multi-/single-agent reinforcement learning, with distributed techniques. See scenarios/marl_scenario.py

Quick Start

Before running examples, please ensure that you import python path as:

cd malib

# if you run malib installation with `pip install -e .`, you can ignore the path export
export PYTHONPATH=./
  • Running PSRO example to start training for Kuhn Poker game: python examples/run_psro.py
  • Running RL example to start training for CartPole-v1 game: python examples/run_gym.py

Documentation

See online documentation at MALib Docs, or you can also compile a local version by compiling local files as

pip install -e .[dev]
make docs-compile

Then start a web server to get the docs:

# execute following command, then the server will start at: http://localhost:8000
make docs-view

Contributing

Read CONTRIBUTING.md for more details.

Citing MALib

If you use MALib in your work, please cite the accompanying paper.

@misc{zhou2021malib,
      title={MALib: A Parallel Framework for Population-based Multi-agent Reinforcement Learning}, 
      author={Ming Zhou and Ziyu Wan and Hanjing Wang and Muning Wen and Runzhe Wu and Ying Wen and Yaodong Yang and Weinan Zhang and Jun Wang},
      year={2021},
      eprint={2106.07551},
      archivePrefix={arXiv},
      primaryClass={cs.MA}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].