Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 0.2.0 of QDax #126

Merged
merged 28 commits into from
Nov 30, 2022
Merged

Version 0.2.0 of QDax #126

merged 28 commits into from
Nov 30, 2022

Conversation

felixchalumeau
Copy link
Collaborator

Hi guys,

Time for us to move to version 0.2.0 🎉

This release introduces:

  • fix a irrelevant 0.25 factor in td3 loss
  • fix a overflow issue in the replay buffer
  • clear the doc section about GPU usage with QDax
  • update jax, brax and flax versions
  • add a set of benchmarking functions from the QD community and clean the way we define our tasks
  • add a caveat section in the doc
  • add a QDax logo
  • scale the action space of pointmaze to match the action space of Brax tasks
  • add delay update in the PG emitter (PGAME)
  • fix reinitialisation of optimizer state in PG variations (PGAME)
  • introduce a wrapper to use fixed and known initial states for the Brax tasks
  • fix Brax version in colab
  • add the algorithm ME-ES
  • introduce a meta emitter to use multiple emitters in parallel, called MultiEmitter
  • add the algorithm CMA-ME with all its possible variants through the introduction of all three CMA emitters (improvement, random direction, optimization)
  • fix CMA ES optimizer
  • fix issue in CMA-MEGA
  • add the algorithm QDPG through the introduction of the Diversity PG emitter
  • refactor PGAME to use the multi emitter class
  • add template for pull requests
  • add DistributedMAPElites, an example of how to distribute a QDax algorithm on multiple devices
  • fix run-image stage in docker
  • avoid multiple jits of same method in for loops in our notebooks examples
  • add the extra_scores in the API of the repertoire addition in MAP-Elites

Lookatator and others added 27 commits August 9, 2022 16:03
overload issue in replay buffer, add buffer test + move baselines test to separate folder
…ronments, Hypervolume functions and QD Suite (#73)

*  adding sphere, rastrigin, arm, and noisy_arm scoring functions

*  adding possibility to create default scoring_function for brax environments.

*  changing type of EnvState to brax.envs.State

*  fix some quick typing inconsistencies throughout the code.

*  update README to include the default functions and make it a usable 

*  create an examples directory to include scripts and notebooks
Policy delay update to PGA emitter update. Present in TD3 but was missing from the PG Emitter.
Missing re-initialization of the optimizer state (adam optimizer) for PG variations in PG emitter
* add wrapper for to make the reset function return a fixed initial state
* set fixed_init_state to False by default
* update brax version for notebook examples
* add MAP-Elites-ES

* add tests for mees

* add mees example notebook

* update colab link in mees example

* clean up mees notebook

* Speed up novelty for mees

* Set paper parameters for emitter and notebook

* Add utils to resample individuals repetitively

* [fix] fix key handling in sampling

* Test for sampling utils

* Fix sampling test format

* Update files to last develop

* Remove old notebook

* Uniformise optimizer for Adam and SGD

* Add parents-sampling parameters to config

* Simplify ME-ES notebook using reset_based_scoring_function_brax_envs

* minor updates

* style updates

* Define a separate class for novelty archive

* Refactor code for readability - extract es process from main method

* Add option for ME-ES-explore

* [fix] Fix NoveltyArchive lax.scan compatibility

* add MEES to docs + minor typos

Co-authored-by: Felix <f.chalumeau@instadeep.com>
* Improve reset_based scoring usage in brax env default definition functions

* fix styling issue with pre-commit

Co-authored-by: Felix <f.chalumeau@instadeep.com>
Co-authored-by: Bryan Lim <limbryan239@gmail.com>
* Add a base Multi-Emitter implementation of a batch of Emitters.

* No choice strategy is used, all sub emitters are called and the proportion are defined in the script when defining the sub emitters. 

* We will consider adding "strategic" layers later, to manage the choice of emitters or the proportion. This is left for a future PR.
Add emitters introduced in CMA-ME, add tests, notebook, update the documentation, fix CMA-ES and fix CMA-MEGA
refactor pgame, create quality pg emitter, creates diversity pg emitter, rename greedy and controllers, add qdpg, with notebooks and tests, update readme and docs
Co-authored-by: valentin <v.mace@instadeep.com>
distributed map elites with example and docs. No explicit support for TPU.
* feat!: extra-scores for repertoire addition

* Fix display

* Add extra_scores to mome repertoire as well

* add warnings to me and mome repertoires

Co-authored-by: Felix <f.chalumeau@instadeep.com>
@felixchalumeau felixchalumeau marked this pull request as ready for review November 30, 2022 09:43
@codecov-commenter
Copy link

Codecov Report

Merging #126 (f84f887) into main (2fb5619) will increase coverage by 2.73%.
The diff coverage is 97.11%.

@@            Coverage Diff             @@
##             main     #126      +/-   ##
==========================================
+ Coverage   89.58%   92.31%   +2.73%     
==========================================
  Files          67      103      +36     
  Lines        3907     5816    +1909     
==========================================
+ Hits         3500     5369    +1869     
- Misses        407      447      +40     
Impacted Files Coverage Δ
qdax/core/mome.py 100.00% <ø> (ø)
tests/baselines_test/cmamega_test.py 98.36% <ø> (ø)
tests/baselines_test/dads_smerl_test.py 97.14% <ø> (ø)
tests/baselines_test/dads_test.py 96.92% <ø> (ø)
tests/baselines_test/diayn_smerl_test.py 96.96% <ø> (ø)
tests/baselines_test/diayn_test.py 96.72% <ø> (ø)
tests/baselines_test/ga_test.py 100.00% <ø> (ø)
tests/baselines_test/omgmega_test.py 98.36% <ø> (ø)
tests/baselines_test/td3_test.py 98.27% <ø> (ø)
qdax/tasks/qd_suite/qd_suite_task.py 79.31% <79.31%> (ø)
... and 61 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@felixchalumeau felixchalumeau merged commit fc0ad78 into main Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants