PaddlePaddle/PARL
A high-performance distributed training framework for Reinforcement Learning
What it solves
PARL provides a flexible and high-efficiency framework for reinforcement learning (RL), addressing the difficulty of implementing reproducible algorithms and scaling training across large-scale compute resources like multi-GPU and CPU clusters.
How it works
The framework uses three primary abstractions to organize the RL process:
- Model: Defines the forward network (policy or critic networks).
- Algorithm: Manages the mechanism for updating the model parameters.
- Agent: Acts as the data bridge, handling I/O and preprocessing between the environment and the algorithm.
For scaling, PARL uses a decorator-based API (@parl.remote_class) and a connection method (parl.connect) to offload computation to remote CPUs or machines, allowing users to write distributed code as if it were multi-threaded.
Who it’s for
It is designed for researchers and developers building RL agents for complex tasks, ranging from simple problems like CartPole to advanced applications like autonomous driving simulation.
Highlights
- Reproducible: Includes implementations of many influential RL algorithms.
- Large Scale: Supports high-performance parallelization across thousands of CPUs and multiple GPUs.
- Reusable: Algorithms can be adapted to new tasks by simply defining a new forward network.
- Extensible: Allows for the quick creation of new algorithms by inheriting abstract base classes.
- Distributed Training: Simplifies the transition to parallel versions of code via a compact API.
Related
- Project
- Project
- Project
- Project