From 14016535a5272ee593391a850d9d0676b1521d1b Mon Sep 17 00:00:00 2001 From: Eric Liang Date: Mon, 20 Jan 2020 15:22:21 -0800 Subject: [PATCH] [rllib] Add TF and Torch icons to show which are available for each algo (#6869) --- doc/source/pytorch.png | Bin 0 -> 12449 bytes doc/source/rllib-algorithms.rst | 31 ++++++++++++++++++++------- doc/source/rllib-toc.rst | 36 +++++++++++++++++++------------- doc/source/rllib.rst | 8 ++++++- doc/source/tensorflow.png | Bin 0 -> 2685 bytes 5 files changed, 51 insertions(+), 24 deletions(-) create mode 100644 doc/source/pytorch.png create mode 100644 doc/source/tensorflow.png diff --git a/doc/source/pytorch.png b/doc/source/pytorch.png new file mode 100644 index 0000000000000000000000000000000000000000..9856f592d1be82d05350237d9849e842561539ce GIT binary patch literal 12449 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 literal 0 HcmV?d00001 diff --git a/doc/source/rllib-algorithms.rst b/doc/source/rllib-algorithms.rst index 64f2b0eda..2cab15da9 100644 --- a/doc/source/rllib-algorithms.rst +++ b/doc/source/rllib-algorithms.rst @@ -6,6 +6,7 @@ High-throughput architectures Distributed Prioritized Experience Replay (Ape-X) ------------------------------------------------- +|tensorflow| `[paper] `__ `[implementation] `__ Ape-X variations of DQN, DDPG, and QMIX (`APEX_DQN `__, `APEX_DDPG `__, `APEX_QMIX `__) use a single GPU learner and many CPU workers for experience collection. Experience collection can scale to hundreds of CPU workers due to the distributed prioritization of experience prior to storage in replay buffers. @@ -51,7 +52,7 @@ SpaceInvaders 646 ~300 Importance Weighted Actor-Learner Architecture (IMPALA) ------------------------------------------------------- - +|tensorflow| `[paper] `__ `[implementation] `__ In IMPALA, a central learner runs SGD in a tight loop while asynchronously pulling sample batches from many actor processes. RLlib's IMPALA implementation uses DeepMind's reference `V-trace code `__. Note that we do not provide a deep residual network out of the box, but one can be plugged in as a `custom model `__. Multiple learner GPUs and experience replay are also supported. @@ -98,7 +99,7 @@ SpaceInvaders 843 ~300 Asynchronous Proximal Policy Optimization (APPO) ------------------------------------------------ - +|pytorch| |tensorflow| `[paper] `__ `[implementation] `__ We include an asynchronous variant of Proximal Policy Optimization (PPO) based on the IMPALA architecture. This is similar to IMPALA but using a surrogate policy loss with clipping. Compared to synchronous PPO, APPO is more efficient in wall-clock time due to its use of asynchronous sampling. Using a clipped loss also allows for multiple SGD passes, and therefore the potential for better sample efficiency compared to IMPALA. V-trace can also be enabled to correct for off-policy samples. @@ -123,8 +124,9 @@ Gradient-based Advantage Actor-Critic (A2C, A3C) --------------------------------- +|pytorch| |tensorflow| `[paper] `__ `[implementation] `__ -RLlib implements A2C and A3C using SyncSamplesOptimizer and AsyncGradientsOptimizer respectively for policy optimization. These algorithms scale to up to 16-32 worker processes depending on the environment. Both a TensorFlow (LSTM), and PyTorch version are available. +RLlib implements A2C and A3C using SyncSamplesOptimizer and AsyncGradientsOptimizer respectively for policy optimization. These algorithms scale to up to 16-32 worker processes depending on the environment. A2C also supports microbatching (i.e., gradient accumulation), which can be enabled by setting the ``microbatch_size`` config. Microbatching allows for training with a ``train_batch_size`` much larger than GPU memory. See also the `microbatch optimizer implementation `__. @@ -157,6 +159,7 @@ SpaceInvaders 692 ~600 Deep Deterministic Policy Gradients (DDPG, TD3) ----------------------------------------------- +|tensorflow| `[paper] `__ `[implementation] `__ DDPG is implemented similarly to DQN (below). The algorithm can be scaled by increasing the number of workers, switching to AsyncGradientsOptimizer, or using Ape-X. The improvements from `TD3 `__ are available as ``TD3``. @@ -175,6 +178,7 @@ Tuned examples: `Pendulum-v0 `__ `[implementation] `__ RLlib DQN is implemented using the SyncReplayOptimizer. The algorithm can be scaled by increasing the number of workers, using the AsyncGradientsOptimizer for async DQN, or using Ape-X. Memory usage is reduced by compressing samples in the replay buffer with LZ4. All of the DQN improvements evaluated in `Rainbow `__ are available, though not all are enabled by default. See also how to use `parametric-actions in DQN `__. @@ -207,7 +211,8 @@ SpaceInvaders 650 1001 1025 Policy Gradients ---------------- -`[paper] `__ `[implementation] `__ We include a vanilla policy gradients implementation as an example algorithm in both TensorFlow and PyTorch. This is usually outperformed by PPO. +|pytorch| |tensorflow| +`[paper] `__ `[implementation] `__ We include a vanilla policy gradients implementation as an example algorithm. .. figure:: a2c-arch.svg @@ -224,6 +229,7 @@ Tuned examples: `CartPole-v0 `__ `[implementation] `__ PPO's clipped objective supports multiple SGD passes over the same batch of experiences. RLlib's multi-GPU optimizer pins that data in GPU memory to avoid unnecessary transfers from host memory, substantially improving performance over a naive implementation. RLlib's PPO scales out using multiple workers for experience collection, and also with multiple GPUs for SGD. @@ -268,6 +274,7 @@ HalfCheetah 9664 ~7700 Soft Actor Critic (SAC) ------------------------ +|tensorflow| `[paper] `__ `[implementation] `__ .. figure:: dqn-arch.svg @@ -298,6 +305,7 @@ Derivative-free Augmented Random Search (ARS) ----------------------------- +|tensorflow| `[paper] `__ `[implementation] `__ ARS is a random search method for training linear policies for continuous control problems. Code here is adapted from https://github.com/modestyachts/ARS to integrate with RLlib APIs. @@ -312,6 +320,7 @@ Tuned examples: `CartPole-v0 `__ `[implementation] `__ Code here is adapted from https://github.com/openai/evolution-strategies-starter to execute in the distributed setting with Ray. @@ -333,10 +342,9 @@ Tuned examples: `Humanoid-v1 `__ `[implementation] `__ Q-Mix is a specialized multi-agent algorithm. Code here is adapted from https://github.com/oxwhirl/pymarl_alpha to integrate with RLlib multi-agent APIs. To use Q-Mix, you must specify an agent `grouping `__ in the environment (see the `two-step game example `__). Currently, all agents in the group must be homogeneous. The algorithm can be scaled by increasing the number of workers or using Ape-X. -Q-Mix is implemented in `PyTorch `__ and is currently *experimental*. - Tuned examples: `Two-step game `__ **QMIX-specific configs** (see also `common configs `__): @@ -348,6 +356,7 @@ Tuned examples: `Two-step game `__ `[implementation] `__ MADDPG is a specialized multi-agent algorithm. Code here is adapted from https://github.com/openai/maddpg to integrate with RLlib multi-agent APIs. Please check `justinkterry/maddpg-rllib `__ for examples and more information. **MADDPG-specific configs** (see also `common configs `__): @@ -361,7 +370,7 @@ Tuned examples: `Multi-Agent Particle Environment `__ `[implementation] `__ MARWIL is a hybrid imitation learning and policy gradient algorithm suitable for training on batched historical data. When the ``beta`` hyperparameter is set to zero, the MARWIL objective reduces to vanilla imitation learning. MARWIL requires the `offline datasets API `__ to be used. Tuned examples: `CartPole-v0 `__ @@ -375,7 +384,7 @@ Tuned examples: `CartPole-v0 `__ `[implementation] `__ AlphaZero is an RL agent originally designed for two-player games. This version adapts it to handle single player games. The code can be used with the SyncSamplesOptimizer as well as with a modified version of the SyncReplayOptimizer, and it scales to any number of workers. It also implements the ranked rewards `(R2) `__ strategy to enable self-play even in the one-player setting. The code is mainly purposed to be used for combinatorial optimization. Tuned examples: `CartPole-v0 `__ @@ -386,3 +395,9 @@ Tuned examples: `CartPole-v0 `__ + - |tensorflow| `Distributed Prioritized Experience Replay (Ape-X) `__ - - `Importance Weighted Actor-Learner Architecture (IMPALA) `__ + - |tensorflow| `Importance Weighted Actor-Learner Architecture (IMPALA) `__ - - `Asynchronous Proximal Policy Optimization (APPO) `__ + - |pytorch| |tensorflow| `Asynchronous Proximal Policy Optimization (APPO) `__ - - `Single-Player AlphaZero (contrib/AlphaZero) `__ + - |pytorch| `Single-Player AlphaZero (contrib/AlphaZero) `__ * Gradient-based - - `Advantage Actor-Critic (A2C, A3C) `__ + - |pytorch| |tensorflow| `Advantage Actor-Critic (A2C, A3C) `__ - - `Deep Deterministic Policy Gradients (DDPG, TD3) `__ + - |tensorflow| `Deep Deterministic Policy Gradients (DDPG, TD3) `__ - - `Deep Q Networks (DQN, Rainbow, Parametric DQN) `__ + - |tensorflow| `Deep Q Networks (DQN, Rainbow, Parametric DQN) `__ - - `Policy Gradients `__ + - |pytorch| |tensorflow| `Policy Gradients `__ - - `Proximal Policy Optimization (PPO) `__ + - |pytorch| |tensorflow| `Proximal Policy Optimization (PPO) `__ - - `Soft Actor Critic (SAC) `__ + - |tensorflow| `Soft Actor Critic (SAC) `__ * Derivative-free - - `Augmented Random Search (ARS) `__ + - |tensorflow| `Augmented Random Search (ARS) `__ - - `Evolution Strategies `__ + - |tensorflow| `Evolution Strategies `__ * Multi-agent specific - - `QMIX Monotonic Value Factorisation (QMIX, VDN, IQN) `__ - - `Multi-Agent Deep Deterministic Policy Gradient (contrib/MADDPG) `__ + - |pytorch| `QMIX Monotonic Value Factorisation (QMIX, VDN, IQN) `__ + - |tensorflow| `Multi-Agent Deep Deterministic Policy Gradient (contrib/MADDPG) `__ * Offline - - `Advantage Re-Weighted Imitation Learning (MARWIL) `__ + - |tensorflow| `Advantage Re-Weighted Imitation Learning (MARWIL) `__ Offline Datasets ---------------- @@ -180,3 +180,9 @@ TensorFlow 2.0 ~~~~~~~~~~~~~~ RLlib currently runs in ``tf.compat.v1`` mode. This means eager execution is disabled by default, and RLlib imports TF with ``import tensorflow.compat.v1 as tf; tf.disable_v2_behaviour()``. Eager execution can be enabled manually by calling ``tf.enable_eager_execution()`` or setting the ``"eager": True`` trainer config. + +.. |tensorflow| image:: tensorflow.png + :width: 16 + +.. |pytorch| image:: pytorch.png + :width: 16 diff --git a/doc/source/rllib.rst b/doc/source/rllib.rst index 8250117f2..4adee20e8 100644 --- a/doc/source/rllib.rst +++ b/doc/source/rllib.rst @@ -10,7 +10,7 @@ To get started, take a look over the `custom env example `__ and `RLlib blog posts `__. You may also want to skim the `list of built-in algorithms `__. +The following is a whirlwind overview of RLlib. For a more in-depth guide, see also the `full table of contents `__ and `RLlib blog posts `__. You may also want to skim the `list of built-in algorithms `__. Look out for the |tensorflow| and |pytorch| icons to see which algorithms are available for each framework. Running RLlib ~~~~~~~~~~~~~ @@ -102,3 +102,9 @@ RLlib provides ways to customize almost all aspects of training, including the ` .. image:: rllib-components.svg To learn more, proceed to the `table of contents `__. + +.. |tensorflow| image:: tensorflow.png + :width: 24 + +.. |pytorch| image:: pytorch.png + :width: 24 diff --git a/doc/source/tensorflow.png b/doc/source/tensorflow.png new file mode 100644 index 0000000000000000000000000000000000000000..05f9832e9f9b187d070c90f34ed7d004b7458e71 GIT binary patch literal 2685 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