强化学习相关框架整理(包含分布式多智能体)

参考:

强化学习开源框架整理

基本框架:

baselines - openai

github: https://github.com/openai/baselines

多机多卡:不支持

多GPU训练是不支持,具体原因见 https://github.com/openai/basel

stable-baselines3

github:https://github.com/hill-a/stable-baselines

多机多卡:不支持

基于OpenAI Baselines的改进版强化学习(RL: Reinforcement Learning)实现。目前由 DLR-RM 维护。不仅文档清晰,还提供了很多常用环境和RL算法的调优超参数。

spinningup - openai

github:https://github.com/openai/spinningup

多机多卡:不支持

Open AI推出的免费强化学习教学项目。

优点是写的通俗易懂上手简单,并且效果有保障,而且同时tf和Pytorch的支持;缺点是没有value-based的算法,做DQN系列的就没办法了

Dopamine - google

github: https://github.com/google/dopamine

多机多卡:不支持

基于 TensorFlow,主打灵活性、稳定性、复现性,能够提供快速的基准测试。

实现算法较少

rlpyt - BAIR

github:https://github.com/astooke/rlpyt

多机多卡:支持

专门基于pytorch实现的rl框架,说是有单机/多机分配资源的黑科技,使用 SyncRl 作为 runner 可以使用多卡进行采样,可以参考 https://github.com/astooke/rlpy

PARL - 百度

github:https://github.com/PaddlePaddle/PARL

多机多卡:支持

百度出品,基于PaddlePaddle的RL框架,其核心卖点一是使用了黑科技可以消除python多线程GIL锁的限制,使得可以高效利用多核CPU来环境并行。经过他们的测试PARL的吞吐效率是比Ray高一些。

缺点是使用这个框架需要使用 paddlepaddle,而不能使用pytorch这些熟悉的框架。

CleanRL

github:https://github.com/vwxyzjn/cleanrl

多机多卡:目前看起来是支持的

不是一个模块化的库,更像是一个完整的算法系统

ElegantRL

github:https://github.com/AI4Finance-Foundation/ElegantRLR

多机多卡:不支持

ElegantRL 基于Actor-Critic 框架搭建深度强化学习算法,每一个Agent(即DRL 算法)由Actor 网络和Critic 网络组成。

Deep Reinforcement Learning Algorithms with PyTorch

github:https://github.com/p-christ/Deep-Reinforcement-Learning-Algorithms-with-PyTorch

多机多卡:不支持

深度强化学习算法和环境的 PyTorch 实现,适合学习和研究。

Tianshou - 清华

github:https://github.com/thu-ml/tianshou

多机多卡:目前支持多卡,多机不支持

是纯基于 PyTorch 代码的强化学习框架,代码里面写了多卡的支持,但是只是把网络使用 DataParallel 包了一下。

rainbow-is-all-you-need

github:https://github.com/Curt-Park/rainbow-is-all-you-need

Pytorch强化学习教程,一共有八章,从DQN(Deep Q-Learning)开始,步步深入,最后展示Rainbow到底是什么。不仅有Jupyter Notebook,作者还在Colab上配置好了代码,很适合新手学习。但是只有 Value based 的方法,没有 Policy Based 的方法。

PureJaxRL

github:https://github.com/luchris429/purejaxrl?tab=readme-ov-file

来源于牛津大学,基于Jax,受CleanRL的启发

OpenRL

github:https://github.com/OpenRL-Lab/openrl

多智能体or分布式:

Acme

github: https://github.com/deepmind/acme

多机多卡:支持

由 DeepMind 于 2020 年开源。

缺点也是不能使用pytorch。使用多卡训练具体可以参考:https://github.com/deepmind/acme/issues/188

rl_games

github:https://github.com/Denys88/rl_games

多机多卡:支持

基于 pytorch 实现的一个 RL 算法框架,支持端到端的 GPU 加速的环境,比如 IsaacGym或者Brax。支持多智能体训练。

但是这个库的 example 几乎不能直接跑起来(除了Cartpole这种简单的环境),都需要修改才能跑起来。

该框架使用 ray 和 ddp 来完成分布式强化学习。

RLLib - UC Berkeley

github:https://github.com/ray-project/ray/tree/master/rllib

多机多卡:支持

基于 Ray 的分布式强化学习框架,Ray 是一个面向大规模机器学习和增强学习应用的高性能分布式执行框架。业级的强化学习库,优势在于分布式计算和自动调参,支持 TensorFlow/PyTorch,很多大企业比如谷歌、亚马逊、蚂蚁金服都在用。该框架社区活跃、开源代码更新频繁。

但是这个库太通用了,上手比较困难,它使用的是自己的分布式集群定义,具体参考:https://stefanbschneider.github.io

Mava

github:https://github.com/instadeepai/Mava/tree/develop?tab=readme-ov-file

基于Jax,代码参考了PureJaxRL和CleanRL

Seed-rl

github:https://github.com/google-research/seed_rl

一个研究项目库,不会更新的

环境:

Gym - openai

github: https://github.com/StanfordVL/Gym

基于 Gym 有一些拓展出来的第三方开源环境,具体可以参考:https://github.com/StanfordVL/Gym/blob/master/docs/environments.md

  • gym-anytrading: 用来做单只期货和股票交易的环境
  • GymGo:围棋环境
  • Pybullet:开源的 3D 仿真环境

Gymnasium - openai

github: https://github.com/Farama-Foundation/Gymnasium

Gym 迁移过来的,Gym已经交给外部团队了,Gymnasium 从 2022 年 10 月开始由 OpenAI 维护。

目前(2022年11月)的功能和用法与 Gym 一致。

IsaacGym - nvidia

环境的 github:https://github.com/NVIDIA-Omniverse/IsaacGymEnvs

Isaac Gym由英伟达开发,提供了一个高性能的学习平台,使得各种智能体训练能够直接在GPU上进行。

与使用CPU模拟器和GPU神经网络的传统RL训练相比,Isaac Gym大幅度缩减了复杂机器任务在单个GPU上的训练时间,使其训练速度提高了1-2个数量级。

EnvPool - Sea AI Lab

github: https://github.com/sail-sg/envpool

基于 C++ 、高效、通用的强化学习并行环境(vectorized environment)模拟器 ,不仅能够兼容已有的 gym/dm_env API,还支持了多智能体环境。来自 Sea AI Lab 团队

但是他的环境并行是在 CPU 上的并行。他的观点是“基于 GPU 的解决方案虽然可以达到千万 FPS,但并不是所有环境都能使用 CUDA 重写,不能很好兼容生态以及不能复用一些受商业保护的代码。”所以他在 CPU 上进行更加极致的速度优化。

Gymnax

github:https://github.com/RobertTLange/gymnax

包含多个常用的环境,可用于大规模分布式训练,支持metaRL

Brax

github:https://github.com/google/brax

使用JAX运行类似Mujoco的连续控制环境的方法,包含许多强化学习环境,可微

Jumanji

github:https://github.com/instadeepai/jumanji

库里很多环境都来自于行业需求,很多与现实相关的问题,如著名的旅行推销员问题

  • 23
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值