mirror of
https://github.com/wassname/ray.git
synced 2026-07-30 12:30:30 +08:00
[rllib] Rename sample_batch_size => rollout_fragment_length (#7503)
* bulk rename * deprecation warn * update doc * update fig * line length * rename * make pytest comptaible * fix test * fi sys * rename * wip * fix more * lint * update svg * comments * lint * fix use of batch steps
This commit is contained in:
@@ -1,6 +1,35 @@
|
||||
RLlib Algorithms
|
||||
================
|
||||
|
||||
.. tip::
|
||||
|
||||
Check out the `environments <rllib-env.html>`__ page to learn more about different environment types.
|
||||
|
||||
Feature Compatibility Matrix
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
============= ======================= ================== =========== ===========================
|
||||
Algorithm Discrete Actions Continuous Multi-Agent Model Support
|
||||
============= ======================= ================== =========== ===========================
|
||||
A2C, A3C **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
PPO, APPO **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
PG **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
IMPALA **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
DQN, Rainbow **Yes** `+parametric`_ No **Yes**
|
||||
DDPG, TD3 No **Yes** **Yes**
|
||||
APEX-DQN **Yes** `+parametric`_ No **Yes**
|
||||
APEX-DDPG No **Yes** **Yes**
|
||||
SAC **Yes** **Yes** **Yes**
|
||||
ES **Yes** **Yes** No
|
||||
ARS **Yes** **Yes** No
|
||||
QMIX **Yes** No **Yes** `+RNN`_
|
||||
MARWIL **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_
|
||||
============= ======================= ================== =========== ===========================
|
||||
|
||||
.. _`+parametric`: rllib-models.html#variable-length-parametric-action-spaces
|
||||
.. _`+RNN`: rllib-models.html#recurrent-models
|
||||
.. _`+autoreg`: rllib-models.html#autoregressive-action-distributions
|
||||
|
||||
High-throughput architectures
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -321,7 +350,7 @@ Soft Actor Critic (SAC)
|
||||
|
||||
SAC architecture (same as DQN)
|
||||
|
||||
RLlib's soft-actor critic implementation is ported from the `official SAC repo <https://github.com/rail-berkeley/softlearning>`__ to better integrate with RLlib APIs. Note that SAC has two fields to configure for custom models: ``policy_model`` and ``Q_model``, and currently has no support for non-continuous action distributions.
|
||||
RLlib's soft-actor critic implementation is ported from the `official SAC repo <https://github.com/rail-berkeley/softlearning>`__ to better integrate with RLlib APIs. Note that SAC has two fields to configure for custom models: ``policy_model`` and ``Q_model``.
|
||||
|
||||
Tuned examples: `Pendulum-v0 <https://github.com/ray-project/ray/blob/master/rllib/tuned_examples/regression_tests/pendulum-sac.yaml>`__, `HalfCheetah-v3 <https://github.com/ray-project/ray/blob/master/rllib/tuned_examples/halfcheetah-sac.yaml>`__
|
||||
|
||||
|
||||
@@ -233,7 +233,7 @@ The ``choose_policy_optimizer`` function chooses which `Policy Optimizer <#polic
|
||||
sgd_batch_size=config["sgd_minibatch_size"],
|
||||
num_sgd_iter=config["num_sgd_iter"],
|
||||
num_gpus=config["num_gpus"],
|
||||
sample_batch_size=config["sample_batch_size"],
|
||||
rollout_fragment_length=config["rollout_fragment_length"],
|
||||
num_envs_per_worker=config["num_envs_per_worker"],
|
||||
train_batch_size=config["train_batch_size"],
|
||||
standardize_fields=["advantages"],
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 87 KiB |
@@ -3,33 +3,12 @@ RLlib Environments
|
||||
|
||||
RLlib works with several different types of environments, including `OpenAI Gym <https://gym.openai.com/>`__, user-defined, multi-agent, and also batched environments.
|
||||
|
||||
.. tip::
|
||||
|
||||
Not all environments work with all algorithms. Check out the algorithm `feature compatibility matrix <rllib-algorithms.html#feature-compatibility-matrix>`__ for more information.
|
||||
|
||||
.. image:: rllib-envs.svg
|
||||
|
||||
Feature Compatibility Matrix
|
||||
----------------------------
|
||||
|
||||
============= ======================= ================== =========== ===========================
|
||||
Algorithm Discrete Actions Continuous Multi-Agent Model Support
|
||||
============= ======================= ================== =========== ===========================
|
||||
A2C, A3C **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
PPO, APPO **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
PG **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
IMPALA **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_, `+autoreg`_
|
||||
DQN, Rainbow **Yes** `+parametric`_ No **Yes**
|
||||
DDPG, TD3 No **Yes** **Yes**
|
||||
APEX-DQN **Yes** `+parametric`_ No **Yes**
|
||||
APEX-DDPG No **Yes** **Yes**
|
||||
SAC **Yes** **Yes** **Yes**
|
||||
ES **Yes** **Yes** No
|
||||
ARS **Yes** **Yes** No
|
||||
QMIX **Yes** No **Yes** `+RNN`_
|
||||
MARWIL **Yes** `+parametric`_ **Yes** **Yes** `+RNN`_
|
||||
============= ======================= ================== =========== ===========================
|
||||
|
||||
.. _`+parametric`: rllib-models.html#variable-length-parametric-action-spaces
|
||||
.. _`+RNN`: rllib-models.html#recurrent-models
|
||||
.. _`+autoreg`: rllib-models.html#autoregressive-action-distributions
|
||||
|
||||
Configuring Environments
|
||||
------------------------
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ The ``rllib train`` command (same as the ``train.py`` script in the repo) has a
|
||||
The most important options are for choosing the environment
|
||||
with ``--env`` (any OpenAI gym environment including ones registered by the user
|
||||
can be used) and for choosing the algorithm with ``--run``
|
||||
(available options are ``SAC``, ``PPO``, ``PG``, ``A2C``, ``A3C``, ``IMPALA``, ``ES``, ``DDPG``, ``DQN``, ``MARWIL``, ``APEX``, and ``APEX_DDPG``).
|
||||
(available options include ``SAC``, ``PPO``, ``PG``, ``A2C``, ``A3C``, ``IMPALA``, ``ES``, ``DDPG``, ``DQN``, ``MARWIL``, ``APEX``, and ``APEX_DDPG``).
|
||||
|
||||
Evaluating Trained Policies
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -83,6 +83,7 @@ Specifying Resources
|
||||
|
||||
You can control the degree of parallelism used by setting the ``num_workers`` hyperparameter for most algorithms. The number of GPUs the driver should use can be set via the ``num_gpus`` option. Similarly, the resource allocation to workers can be controlled via ``num_cpus_per_worker``, ``num_gpus_per_worker``, and ``custom_resources_per_worker``. The number of GPUs can be a fractional quantity to allocate only a fraction of a GPU. For example, with DQN you can pack five trainers onto one GPU by setting ``num_gpus: 0.2``.
|
||||
|
||||
.. Original image: https://docs.google.com/drawings/d/14QINFvx3grVyJyjAnjggOCEVN-Iq6pYVJ3jA2S6j8z0/edit?usp=sharing
|
||||
.. image:: rllib-config.svg
|
||||
|
||||
Common Parameters
|
||||
@@ -632,8 +633,9 @@ The following are example excerpts from different Trainers' configs
|
||||
# a) DQN: see rllib/agents/dqn/dqn.py
|
||||
"explore": True,
|
||||
"exploration_config": {
|
||||
"type": "EpsilonGreedy", # <- Exploration sub-class by name or full path to module+class
|
||||
# (e.g. “ray.rllib.utils.exploration.epsilon_greedy.EpsilonGreedy”)
|
||||
# Exploration sub-class by name or full path to module+class
|
||||
# (e.g. “ray.rllib.utils.exploration.epsilon_greedy.EpsilonGreedy”)
|
||||
"type": "EpsilonGreedy",
|
||||
# Parameters for the Exploration class' constructor:
|
||||
"initial_epsilon": 1.0,
|
||||
"final_epsilon": 0.02,
|
||||
@@ -748,6 +750,19 @@ Note that in the ``on_postprocess_traj`` callback you have full access to the tr
|
||||
* Backdating rewards to previous time steps (e.g., based on values in ``info``).
|
||||
* Adding model-based curiosity bonuses to rewards (you can train the model with a `custom model supervised loss <rllib-models.html#supervised-model-losses>`__).
|
||||
|
||||
To access the policy / model (``policy.model``) in the callbacks, note that ``info['pre_batch']`` returns a tuple where the first element is a policy and the second one is the batch itself. You can also access all the rollout worker state using the following call:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
from ray.rllib.evaluation.rollout_worker import get_global_worker
|
||||
|
||||
# You can use this from any callback to get a reference to the
|
||||
# RolloutWorker running in the process, which in turn has references to
|
||||
# all the policies, etc: see rollout_worker.py for more info.
|
||||
rollout_worker = get_global_worker()
|
||||
|
||||
Policy losses are defined over the ``post_batch`` data, so you can mutate that in the callbacks to change what data the policy loss function sees.
|
||||
|
||||
Curriculum Learning
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ Policies can be implemented using `any framework <https://github.com/ray-project
|
||||
Sample Batches
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
Whether running in a single process or `large cluster <rllib-training.html#specifying-resources>`__, all data interchange in RLlib is in the form of `sample batches <https://github.com/ray-project/ray/blob/master/rllib/policy/sample_batch.py>`__. Sample batches encode one or more fragments of a trajectory. Typically, RLlib collects batches of size ``sample_batch_size`` from rollout workers, and concatenates one or more of these batches into a batch of size ``train_batch_size`` that is the input to SGD.
|
||||
Whether running in a single process or `large cluster <rllib-training.html#specifying-resources>`__, all data interchange in RLlib is in the form of `sample batches <https://github.com/ray-project/ray/blob/master/rllib/policy/sample_batch.py>`__. Sample batches encode one or more fragments of a trajectory. Typically, RLlib collects batches of size ``rollout_fragment_length`` from rollout workers, and concatenates one or more of these batches into a batch of size ``train_batch_size`` that is the input to SGD.
|
||||
|
||||
A typical sample batch looks something like the following when summarized. Since all values are kept in arrays, this allows for efficient encoding and transmission across the network:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user