Mava 开源项目教程
1. 项目介绍
Mava 是一个研究友好的代码库,旨在快速实验多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)。它基于 JAX 框架,允许在多个设备上轻松并行化。Mava 由 InstaDeep 的研究团队发起,提供了多种 MARL 算法的实现,支持多种环境,并提供了统计上稳健的评估方法。
2. 项目快速启动
安装
Mava 目前不作为库安装,而是作为研究工具使用。你可以通过克隆仓库并使用 pip 安装依赖来使用 Mava。
git clone https://github.com/instadeepai/mava.git
cd mava
pip install -e .
快速启动
要开始训练你的第一个 Mava 系统,只需运行以下命令:
python mava/systems/ff_ippo.py
Mava 使用 Hydra 进行配置管理。要查看默认系统配置,请查看 mava/configs/
目录。你可以通过终端动态覆盖配置。例如,要在 LBF 环境中运行系统,可以按如下方式调整代码:
python mava/systems/ff_ippo.py env=lbf
3. 应用案例和最佳实践
应用案例
Mava 支持多种环境,包括 Jumanji 的 Robotic Warehouse 和 Level-Based Foraging。以下是一些应用案例:
- Robotic Warehouse: 使用 Mava 的 feedforward MAPPO 系统在 tiny-2ag、tiny-4ag 和 small-4ag RWARE 任务中进行训练。
- Level-Based Foraging: 使用 Mava 的 recurrent MAPPO 系统在 2s-8x8-2p-2f-coop 和 15x15-4p-3fz Level-Based Foraging 任务中进行评估。
最佳实践
- 使用 JAX 加速: Mava 充分利用 JAX 的
pmap
和vmap
功能,建议在支持 JAX 的硬件上运行以获得最佳性能。 - 配置管理: 使用 Hydra 进行配置管理,可以通过终端动态调整配置,方便实验和调试。
4. 典型生态项目
Mava 作为一个研究友好的代码库,与多个生态项目兼容和集成:
- Jumanji: 一个 JAX 环境库,提供了多种环境,如 Robotic Warehouse 和 Level-Based Foraging,与 Mava 无缝集成。
- MARL-eval: 一个用于多智能体强化学习实验评估的库,Mava 支持将日志记录到 json 文件,方便使用 MARL-eval 进行下游实验绘图和聚合。
通过这些生态项目的集成,Mava 提供了完整的 MARL 研究工具链,帮助研究人员和从业者快速迭代和验证想法。