Recent Releases of agilerl
agilerl - v2.3.3: Bug Fixes & Refactoring (PPO, GRPO, RolloutBuffer, EvolvableCNN)
Bug Fixes
- Cast observations and actions to
torch.float32inRolloutBufferto ensure proper handling of all observation and action space combinations. - Use
evaluate_actions()in newlearn()methods that make use ofRolloutBufferinPPOto ensure observation preprocessing during evaluation. - Add recurrent hidden states handling in
evaluate_actions()(contributed by @brieyla1). - Ignore
typeinstances in evolvable attribute check to ensurenet_configisn't identified as such when passing a custom encoder class (contributed by @brieyla1) - Cast passed kernel size to
intinchange_kernel()mutation inEvolvableCNN. - In
agilerl.training.train_llm.finetune_llmremoved '+1' from withinagent.set_reference_policy(env.num_dataset_passes + 1)to prevent unnecessary reference policy reset at the start of training
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/AgileRL/AgileRL/pull/410
- Nightly bugfixes and coverage improvements by @nicku-a in https://github.com/AgileRL/AgileRL/pull/418
- Bug Fixes & Refactoring (PPO, GRPO, RolloutBuffer, EvolvableCNN) by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/423
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.3.1...v2.3.3
- Python
Published by jaimesabalbermudez 5 months ago
agilerl - v2.3.1: On-Policy & AgentWrapper Bug Fixes
Bug Fixes
- Implement
__getstate__and__setstate__inAgentWrapperto correctly set wrapped methods when serializing. - Bug fix preventing architecture mutations in agents wrapped with
AgentWrapper. - Add
random_seedto argument to evolvable modules that didn't include it. - Generalize on-policy training loops to support any name for the policy (before it assumed actor and actors for single- and multi-agent algos, respectively).
- Move
reinit_optimizers()intoEvolvableAlgorithminstead of it being a method ofMutations. - Bug fixes for integration of
PPOwithuse_rollout_buffer=Trueimplementation withtrain_on_policy(). - Saving and loading checkpoints with methods
save_checkpoint()andload_checkpoint()added to theGRPOalgorithm.
What's Changed
- Fix multi-agent tutorials and README by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/404
- Docs fixes and README by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/405
- Not run pytest if agilerl was not changed by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/406
- Grpo checkpoint by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/413
- Docs and AgentWrapper & PPO Bug Fixes by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/412
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.3.0...v2.3.1
- Python
Published by jaimesabalbermudez 5 months ago
agilerl - v2.3.0: Recurrent PPO, Generalised MARL, and More!
Features
- Enhace PPO with recurrent policy support to solve POMDPs https://github.com/AgileRL/AgileRL/pull/373. New implementation makes use of a
RolloutBufferto collect rollouts (and optionally recurrent hidden states) throughout training. Includes new implementation ofEvolvableDistributionused byStochasticActorwith reduced computational overhead. Thank you to @brieyla1 and @ali-shihab from Warburg AI for this contribution! - Generalised MARL algorithms https://github.com/AgileRL/AgileRL/pull/386. Support training on any combination of observation spaces for different agents in a MARL problem by using
EvolvableMultiInputfor centralized critics (in e.g.MADDPGandMATD3). Allow specifying network configurations for groups of agents that share the same observation space directly, or for individual sub-agents. GRPOmemory optimizations https://github.com/AgileRL/AgileRL/pull/397.- Added
AsyncAgentsWrapperto handle non-simulatenously stepping agents in MARL. Only supported forIPPOfor now. - Added support for complex spaces in
IPPO.
Bug Fixes
- Bug fix with
EvolvableNetworkprotocol https://github.com/AgileRL/AgileRL/issues/371. - Bug fix in
train_llm()https://github.com/AgileRL/AgileRL/pull/399 - Bug fix
train_multi_agent_off_policy()when usingsum_scores=Falsehttps://github.com/AgileRL/AgileRL/issues/348
Tests
- Refactored tests by adding session fixtures to
conftest.py - Removed redundant tests that added a lot of overhead to test times -> reduced number of tests from around 3200 to around 2600 while reducing test times from ~2hrs to ~1hr.
Documentation
- Added detailed explanation on how evolutionary hyperparemter optimisation is performed in AgileRL.
- Better documentation for MARL support in AgileRL and how network configurations can be specified in an algorithm.
- Added tutorial to solve
Pendulum-v1with masked angular velocities that shows how to use AgileRL to solve POMDPs with a recurrent neural network (currently only supported inPPO)
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/AgileRL/AgileRL/pull/369
- Fix NeuralUCB tutorial: add missing replay buffer usage and correct plot label by @OnlyTsukii in https://github.com/AgileRL/AgileRL/pull/379
- Version updates by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/385
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/AgileRL/AgileRL/pull/383
- Docs fix by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/387
- Bug fix load on no-cuda device by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/391
- Generalised Multi-Agent Algorithms by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/386
- Tests Refactoring & Optimizations by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/393
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/AgileRL/AgileRL/pull/392
- Enhance PPO with Recurrent Policy Support, Rollout Buffer, and BPTT, Faster Distributions, Performance tools, & goodies by @brieyla1 in https://github.com/AgileRL/AgileRL/pull/373
- Add kwargs arguments to initwandb() & trainX_policy() util funcs by @JonDum in https://github.com/AgileRL/AgileRL/pull/355
- Bump transformers from 4.48.1 to 4.50.0 by @dependabot in https://github.com/AgileRL/AgileRL/pull/382
- Advanced CodeQL by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/395
- Network Bug Fixes by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/370
- More grpo memory optimizations by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/397
- Train llm bug fix by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/399
- Recurrent PPO Documentation & Tutorial by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/398
New Contributors
- @OnlyTsukii made their first contribution in https://github.com/AgileRL/AgileRL/pull/379
- @brieyla1 and @ali-shihab made their first contribution in https://github.com/AgileRL/AgileRL/pull/373
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.8...v2.3.0
- Python
Published by jaimesabalbermudez 6 months ago
agilerl - v2.2.8 GRPO Optimizations
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/AgileRL/AgileRL/pull/332
- Bug fix modules() for EvolvableDistribution by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/368
- GRPO memory optimization by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/372
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.5...v2.2.8
- Python
Published by nicku-a 8 months ago
agilerl - v2.2.5: AsyncPettingZooVecEnv Refactor
What's Changed
- Refactor PzAsyncVecEnv by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/367
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.4...v2.2.5
- Python
Published by jaimesabalbermudez 8 months ago
agilerl - v2.2.4: GRPO Evo-HPO Updates
What's Changed
- GRPO Evo-HPO fixes by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/364
- Refactored algorithm tests for a more extense and simple coverage, fix OOM issues
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.3...v2.2.4
- Python
Published by jaimesabalbermudez 8 months ago
agilerl - v2.2.3: Support for Asynchronous Agents in IPPO
What's Changed
- Handle arrays applyimagenormalization by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/362
- IPPO Asynchronous Agents by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/363
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.2...v2.2.3
- Python
Published by jaimesabalbermudez 8 months ago
agilerl - v2.2.2: IPPO Complex Spaces & Bug Fixes
Bug Fixes
- Issue with training DQN on
spaces.Tupleobservations. - Issue with training on
spaces.MultiBinaryobservations generally. - TD3 and DDPG
get_action()was returningtorch.Tensor's instead ofnp.ndarray. - Add support for complex spaces in
IPPO. - Clip actions in single and multi-agent on-policy training loops.
- Test for all observation spaces
get_action() - Bug fix
StochasticActorwith logstd not being saved in statedict
What's Changed
- IPPO Complex Spaces & Bug Fixes by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/361
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.1...v2.2.2
- Python
Published by jaimesabalbermudez 9 months ago
agilerl - v2.2.1: Multi-Agent Bug Fixes
What's Changed
- Update docs tutorials by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/351
- Fix "hyperparamer" typo in Off Policy example by @JonDum in https://github.com/AgileRL/AgileRL/pull/352
- Bug fixes multi-agent off-policy & support for MultiBinary observations by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/357
New Contributors
- @JonDum made their first contribution in https://github.com/AgileRL/AgileRL/pull/352
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.2.0...v2.2.1
- Python
Published by jaimesabalbermudez 9 months ago
agilerl - v2.2.0: Hyperparameter Optimization on GRPO, IPPO, EvolvableLSTM, MultiDiscrete Actions & More!
Features:
- Evolutionary HPO on
GRPO: Support performing automatic hyperparameter tuning on a population of GRPO agents. Limited to mutating RL hyperparameters only for now. - Independent Proximal Policy Optimization (IPPO): On-policy multi-agent algorithm that allows optimizing homogeneous agents with a single network. We identify homogeneous agents through a common prefix in their agent IDs.
MultiDiscrete&MultiBinaryAction Spaces: AgileRL now supports these spaces inStochasticActor, used in on-policy algorithms such asPPOhttps://github.com/AgileRL/AgileRL/issues/341.- New Buffers: Implemented
ReplayBuffer,PrioritizedReplayBuffer, andMultiStepReplayBufferusingTensorDict's as storage. This scales much better than the deque and will allow us to further abstract different aspects of the training pipeline in the future https://github.com/AgileRL/AgileRL/issues/315. EvolvableLSTM: Module that can be used with 2DBoxspaces. Well integrated inEvolvableNetworkobjects andEvolvableMultiInputhttps://github.com/AgileRL/AgileRL/issues/320.- Improved
EvolvableMultiInput: Integrated newEvolvableLSTMand give option to also flatten 2DBoxspace observations and treat as vectors https://github.com/AgileRL/AgileRL/issues/321. - Sharing Encoders: Use
share_encoders=TrueinPPO,DDPG, andTD3to automatically share the encoders between actor and critic/s. This reduces a lot of computation overhead, specially in complex environments that require high-capacity networks https://github.com/AgileRL/AgileRL/issues/314.
Tests:
- More coverage in
algo_utils.py. - Better tests for
OptimizerWrapperandEvolvableAlgorithm
Breaking Changes:
- Refactored
EvolvableMultiInputto have a simpler API. We now pass in acnn_config,mlp_config, andlstm_configseparately rather than "flattening" their arguments into its constructor. - Single-agent off-policy replay buffers have a simpler API, there's no need to provide the "field_names" to a
ReplayBuffersince these are automatically inspected upon adding the first transition.
Bug Fixes:
- Issue with dictionary and tuple spaces in multi-agent settings.
- Bug when using PPO on continuous action spaces.
What's Changed
- IPPO by @nicku-a in https://github.com/AgileRL/AgileRL/pull/343
- Grpo by @mikepratt1 in https://github.com/AgileRL/AgileRL/pull/342
- TensorDict ReplayBuffer & EvolvableLSTM by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/346
- Lambda use in Pz Async Vec Envs by @nicku-a in https://github.com/AgileRL/AgileRL/pull/350
- Support for MultiDiscrete & MultiBinary Action Spaces by @jaimesabalbermudez in https://github.com/AgileRL/AgileRL/pull/349
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.1.2...v2.2.0
- Python
Published by jaimesabalbermudez 9 months ago
agilerl - v2.1.2 Bug Fixes & Improvements
What's Changed
- PR: https://github.com/AgileRL/AgileRL/pull/338
- Bug fix when using
ContinuousQNetworkwithlayer_norm=Truewhere statistically inconsistency between raw actions and normalized observation encodings caused instability during training and worse performance in multi-agent algorithms. - Bug fix in
EvolvableMultiInputwhereBoxspaces withshape=()raised an error. - Bug fix in
load()method ofEvolvableAlgorithmthat caused issues when loading models from >=2.0.0 and <=2.0.6 on later versions.
Full Changelog: https://github.com/AgileRL/AgileRL/compare/v2.1.1...v2.1.2
- Python
Published by jaimesabalbermudez 9 months ago
agilerl - v2.1.1 GRPO and Advanced Evolvable Architectures ๐ง ๐ฆ
AgileRL v2.1.1 introduces several additional features to the AgileRL framework, including support for RL finetuning of LLMs and new evolvable architectures!
This release includes:
- Distributed GRPO - The algorithm introduced by DeepSeek is now available in AgileRL, providing the functionality to use RL to finetune LLMs across multiple GPUs to create more specialized agents.
- We have implemented an Evolvable version of the SimBa network (EvolvableSimba), which improves sample efficiency and beats existing SOTA deep RL methods. SimBa consists of three components:
- An observation normalization layer that standardizes inputs with running statistics
- A residual feedforward block to provide a linear pathway from the input to the output
- A layer normalization to control feature magnitudes
- Similarly, we have introduced an EvolvableResNet to offer superior performance for image based observation spaces.
- Multi-agent bug fixes
- Complex spaces bug fixes
- Python
Published by mikepratt1 10 months ago
agilerl - AgileRL 2.0.0
AgileRL 2.0
Agilerl 2.0 is here, offering a ton of new features and updates to the framework!
The main focus of this release is to provide a more flexible framework for creating custom evolvable network architectures and algorithms to make the most out of automatic evolutionary hyperparameter optimization during training. We've also done some heavy refactoring to make the codebase more modular and scalable, with the hope that users find it easier to plug-and-play with their arbitrarily complex use-cases.
Features:
Support for Dictionary / Tuple Spaces: We have implemented the
EvolvableMultiInputmodule, which takes in a (single-level) dictionary or tuple space and assigns anEvolvableCNNto each underlying image subspace. Observations from vector / discrete spaces are simply concatenated to the image encodings by default, but users can specify if they want these to be processed by anEvolvableMLPbefore concatenating.EvolvableModule Class Hierarchy: A wrapper around
nn.Modulethat allows us to keep track of the mutation methods in complex networks with nested modules. We use the@mutationdecorator to signal mutation methods and these are registered automatically as such. Such modules should implement a :meth:recreate_network() <agilerl.modules.base.EvolvableModule.recreate_network>method that is called automatically after any mutation method is used to modify the network's architecture. Users can now pass in non-evolvable architectures to the algorithms too by wrapping their models withDummyEvolvable. This is useful when you want to use a pre-trained model or a model whose architecture you don't want to mutate, while still enabling random weight and RL hyperparameter mutations. Please refer to the documentation for more information.EvolvableNetwork Class Hierarchy: Towards a more general API for algorithm implementation, where complex observation spaces should be inherently supported, networks inheriting from
EvolvableNetworkautomatically create an appropriate encoder from a given observation space. Custom networks simply have to specify the head to the network that maps the observation encodings to a number of outputs. As part of this update we implement the following common networks used (by default) in the already implemented algorithms.QNetwork: State-action value function (used in e.g. DQN).RainbowQNetwork: State-action value function that uses a dueling distributional architecture for the network head (used in Rainbow DQN).ContinuousQNetwork: State-action value function for continuous action spaces, which takes the actions as input with the observations.ValueNetwork: Outputs the scalar value of an observation (used in e.g. PPO).DeterministicActor: Outputs deterministic actions given an action space.StochasticActor: Outputs an appropriate PyTorch distribution over the given action space.
EvolvableAlgorithm Class Hierarchy: We create a class hierarchy for algorithms with a focus on evolutionary hyperparameter optimization. The
EvolvableAlgorithmbase class implements common methods across any RL algorithm e.g.save_checkpoint(),load(), but also methods pertaining specifically to mutations e.g.clone(). Under-the-hood, it initializes aMutationRegistrythat users should use to register "network groups". The registry also keeps track of the RL hyperparameters users wish to mutate during training and the optimizers. Users wishing to create custom algorithms should now only need to worry about implementingget_action(),learn(), and (for now)test()methods.Generalized Mutations: We have refactored
Mutationswith the above hierarchies in mind to allow for a generalised mutations framework that works for any combination of evolvable networks in an algorithm. Moreover, we now allow users to pass in any configuration of RL hyperparameters they wish to mutate during training directly to an algorithm inheriting fromEvolvableAlgorithm, rather than handling this inMutations. For an example of how to do this, please refer to the documentation of any of the algorithms implemented in AgileRL, or our tutorials.
Breaking Changes:
We have placed the building blocks of our networks in a dedicated :mod:
agilerl.modulesmodule, which contains the off-the-shelf evolvable modules that can be used to create custom network architectures (e.g.EvolvableMLP,EvolvableCNN, andEvolvableMultiInput), whereas before these were located inagilerl.networks. In the latter we now keep networks created through theEvolvableNetworkclass hierarchy.Pass in
observation_spaceandaction_spaceto the algorithms instead ofstate_dimandaction_dim. This is to support more complex observation spaces, and allow for a simpler generation of default networks in the algorithms by using theEvolvableNetworkclass hierarchy.Simplified API in the evolvable modules, mutations, and algorithms. Please refer to the documentation for more information.
net_configargument of algorithms should now be passed in with the arguments of the correspondingEvolvableNetworkclass. For example, inPPO, thenet_configargument might include an "encoderconfig" key which is different depending on your observation space, and a "headconfig" key for the head of the actor (i.e.StochasticActor) and critic (i.e.ValueNetwork). All the networks in an algorithm are initialized with the same architecture by default. If users with to use different architectures, these should be passed as arguments directly to the algorithm.
Example Network Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
netconfig = { # For an image observation space we encode observations using EvolvableCNN "encoderconfig": { "channelsize": [32], "kernelsize": [3], "stride_size": [1], }
# The head is usually an EvolvableMLP by default
"head_config": {
"hidden_size": [64, 64],
}
}
- Python
Published by jaimesabalbermudez 11 months ago
agilerl - v1.0.0 AgileRL
๐๐ค AgileRL version 1.0.0 ๐๐ค
This release marks v1.0.0 of the framework! Thanks to all our current users and collaborators who have helped us get so far.
v1 contains major updates including new trainers, more controls, better docs, updated variable and function names, and more!
AgileRL is a Deep Reinforcement Learning library focused on improving development by introducing RLOps - MLOps for reinforcement learning.
This library is initially focused on reducing the time taken for training models and hyperparameter optimization (HPO) by pioneering evolutionary HPO techniques for reinforcement learning. Evolutionary HPO has been shown to drastically reduce overall training times by automatically converging on optimal hyperparameters, without requiring numerous training runs.
We are constantly adding more algorithms and features. AgileRL already includes state-of-the-art evolvable on-policy, off-policy, offline, multi-agent and contextual multi-armed bandit reinforcement learning algorithms with distributed training.
To see the full AgileRL documentation, including tutorials, visit our documentation site. To ask questions and get help, collaborate, or discuss anything related to reinforcement learning, join the AgileRL Discord Server.
- Python
Published by nicku-a over 1 year ago
agilerl - v0.1.21 Contextual Multi-armed Bandits ๐ฐ๐ฅท
AgileRL v0.1.21 introduces contextual multi-armed bandit algorithms to the framework. Train agents to solve complex optimisation problems with our two new evolvable bandit algorithms!
This release includes the following updates:
- Two new evolvable contextual bandit algorithms: Neural Contextual Bandits with UCB-based Exploration and Neural Thompson Sampling
- A new contextual bandits training function, enabling the fastest and easiest training
- A new BanditEnv class for converting any labelled dataset into a bandit learning environment
- Tutorials on using AgileRL bandit algorithms with evolvable hyperparameter optimisation for SOTA results
- New demo and benchmarking scripts for bandit algorithms
- + more!
More updates will be coming soon!
- Python
Published by nicku-a almost 2 years ago
agilerl - v0.1.20 Probe environments and debugging tools ๐บ๏ธ๐งโ๐ฌ
AgileRL v0.1.20 focuses on making debugging of reinforcement learning implementations easier. Easily figure out what's going on with our new probe environments, that quickly isolate and validate an agent's ability to solve any kind of problem.
This release includes:
- 43 single- and multi-agent probe environments for image and vector observation spaces, and discrete and continuous action spaces
- New functions that can automate testing with probe environments to quickly isolate your problem
- A new Debugging Reinforcement Learning section of the docs, with examples and explanations
- General improvements, including more stable learning for DDPG, TD3, MADDPG and MATD3 with image observations
More updates and algorithms coming soon!
- Python
Published by nicku-a almost 2 years ago
agilerl - v0.1.19 Hierarchical Skills, tutorials and docs improvements ๐ช
AgileRL v0.1.19 introduces hierarchical curriculum learning to the platform by learning Skills. Teach agents to solve complex problems by breaking down tasks into smaller, learnable sub-tasks. We have collaborated further with the Farama Foundation to introduce more tutorials as well as improving our documentation.
This release includes the following:
- New Skills wrapper is introduced to enable hierarchical curriculum learning with any algorithm. A tutorial is also provided to demonstrate how to use it.
- Single-agent Gymnasium tutorials are introduced, demonstrating how to use PPO, TD3 and Rainbow DQN on a variety of environments.
- Documentation site is improved, check it out: https://docs.agilerl.com
- General algorithm improvements throughout the framework
Stay tuned for more updates coming soon!
- Python
Published by nicku-a about 2 years ago
agilerl - v0.1.14 Multi-agent updates, usability and tests โ๏ธ
AgileRL v0.1.14 introduces usability improvements to the framework with better warnings and error messages. This update also includes more robust unit tests across the library and general improvements. Multi-agent algorithms also receive updates to better handle discrete action spaces. ๐ค
- Python
Published by nicku-a about 2 years ago
agilerl - v0.1.13 MakeEvolvable, Curriculum Learning and Self-play ๐ง
AgileRL v0.1.13 introduces more flexibility, allowing users to define their own custom networks and use them with our algorithms and SOTA hyperparameter optimisation. Additionally, we have continued collaborating with the Farama Foundation to bring you another tutorial.
This release includes the following: - MakeEvolvable wrapper to make any sequential network evolvable - wrap any CNN or MLP to make them compatible with AgileRL algorithms and evolutionary hyperparameter optimisation! ๐งซ - Use pre-trained networks with AgileRL - load any PyTorch nn.module network into AgileRL to automatically make it evolvable. ๐ - Self-play tutorial that harnesses curriculum learning to train a DQN agent to play connect4! ๐
Stay tuned for more updates coming soon!
- Python
Published by nicku-a about 2 years ago
agilerl - v0.1.12 PPO, Rainbow DQN and fancy replay buffers ๐ฆธโก
AgileRL v0.1.12 introduces two new, powerful algorithms to the framework among other features. We have collaborated with the Farama Foundation to introduce tutorials for multi-agent reinforcement learning, with more tutorials on the way.
This release includes the following updates:
- Proximal Policy Optimization (PPO) is added to the framework - train on-policy efficiently. ๐ง
- Rainbow DQN is added to the framework - combines multiple improvements over DQN. ๐
- Prioritized experience replay buffer and multi-step replay buffers are introduced to the framework. ๐
- Tutorials for multi-agent algorithms included, with more coming soon. ๐งโ๐
Stay tuned for more updates very soon!
- Python
Published by nicku-a about 2 years ago
agilerl - v0.1.8 Multi-agent training ๐ฏ๐ฏ
AgileRL v0.1.8 introduces multi-agent algorithms into the framework. Train multiple agents in co-operative or competitive Petting Zoo-style (parallel API) environments, with significantly faster training and up to 4x improvement in total return when benchmarked against epymarlโs equivalent offering!
This release includes the following updates: - MADDPG is added to the framework! Train multiple agents in competitive or co-operative environments. ๐พ๐พ - MATD3 is added to the framework! Train multiple agents with greater stability. โ - Addition of multi-agent replay buffer class and multi-agent train function. ๐๏ธ - Training config files. Configure training runs in one place. ๐
Keep an eye out for further updates coming soon!
- Python
Published by nicku-a over 2 years ago
agilerl - v0.1.7 Distributed training ๐๐
AgileRL v0.1.7 introduces distributed training to the framework with HuggingFace Accelerate! Train even faster by taking full advantage of your entire compute stack.
This release includes the following updates:
- Distributed training. Train across multiple GPUs to cut down your training time even further! ๐ค
- New Sampler class to handle both standard and distributed replay buffers. ๐
- TD3 is added to the framework! Train agents with continuous actions with greater stability. ๐พ
- More and expanded demos and benchmarking files for online, offline and distributed training. ๐งโโ๏ธ
Stay tuned for more features coming soon!
- Python
Published by nicku-a over 2 years ago
agilerl - v0.1.6 Offline RL and Conservative Q-Learning ๐๐ค
AgileRL v0.1.6 introduces offline reinforcement learning to the framework. You can now easily train agents on static data, and use evolutionary hyperparameter optimisation to learn faster and better.
This release includes the following updates: - New general offline RL training function to learn from static data ๐๏ธ - Conservative Q-Learning (CQL) added ๐
More new features coming soon!
- Python
Published by nicku-a over 2 years ago
agilerl - v0.1.5 Evolvable Transformers and ILQL โ๏ธ๐ค
AgileRL v0.1.5 introduces evolvable transformers that can be used for language tasks, including for Reinforcement Learning from Human Feedback (RLHF). Combining LLMs and transformer architectures with evolvable HPO can massively reduce the time taken to finetune these expensive models.
This release includes the following updates: - Evolvable GPT and BERT models, compatible with evolutionary HPO ๐ฎ - Implicit Language Q Learning (ILQL) added - an RLHF offline algorithm ๐ - Better mutation support ๐ฆพ
New features are continuously being added, stay tuned!
- Python
Published by nicku-a over 2 years ago
agilerl - The CNN update! ๐๐ค
AgileRL is initially focused on reducing the time taken for training models and hyperparameter optimization (HPO) by pioneering evolutionary HPO techniques for reinforcement learning. Evolutionary HPO has been shown to drastically reduce overall training times by automatically converging on optimal hyperparameters, without requiring numerous training runs. We are constantly adding more algorithms, with a view to add hierarchical and multi-agent algorithms soon.
This release includes the following updates: - Added evolvable CNN - you can now use AgileRL for visual environments, like Atari! ๐น๏ธ - Added network configs - you can now specify your network architecture using a config. This is a step towards integration with other RL libraries and algorithms. ๐ ๏ธ - Better and updated documentation ๐ + more!
Plenty more features coming soon!
- Python
Published by nicku-a over 2 years ago