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

WIP: feature(pu): add td3_vae algorithm #151

Closed
wants to merge 236 commits into from
Closed

WIP: feature(pu): add td3_vae algorithm #151

wants to merge 236 commits into from

Conversation

puyuan1996
Copy link
Collaborator

Description

Add the td3_vae algorithm, train the vae encoder-decoder to encode the original continuous action into the latent action space, and test it in env lunarlander-cont.

Related Issue

TODO

Check List

  • merge the latest version source branch/repo, and resolve all the conflicts
  • pass style check
  • pass all the tests

opendilab and others added 30 commits July 8, 2021 16:23
separate doc from main repo to doc repo
* test(nyz): comment subprocess env manager and parallel entry unittest

* fix(nyz): try to fix test_ppg and flask_fs_collector test close

* test(nyz): modify unittest worker number

* test(nyz) fix unittest worker and ignore 1v1 collector test

* test(nyz): test different range for unittest(env, rl_utils, entry, interaction)

* test(nyz): test different range for unittest(env, rl_utils, entry, interaction, league, model) and add execution timeout

* test(nyz): test different range for unittest(env, rl_utils, entry, interaction, league, model)

* test(nyz): test different range for unittest(env, rl_utils, entry, interaction, league, model, torch_utils)

* test(nyz): fix test DingEnvWrapper unittest env bug

* test(nyz): add utils unittest and disable dataloader unittest

* test(nyz): simplify reward model unittest

* test(nyz): enable all the unittest except dataloader

* test(nyz): enable parallel entry and dataloader unittest

* test(nyz): fix test ppg rerun bug

* test(nyz): enable windows test

* test(nyz): disable subprocess env manager unittest

* test(nyz): fix test auto checkpoint bug

* test(nyz): disable test dataloader

* test(nyz): enable subprocess env manager unittest

* test(nyz): update coveragerc

* test(nyz): add coverage upload workflow

* test(nyz): disable test_block in subprocess env manager

* test(nyz): enable rerun in test demo buffer
* refactor(nyz): refactor read_config to 3 different function interface

* feature(nyz): enable env_setting param in entry

* polish(nyz): remove redundant code and global declaration

* polish(nyz): remove flag in import_helper

* polish(nyz): remove unused import

* style(nyz): correct format
RobinC94 and others added 23 commits December 3, 2021 13:21
* update base env manager and test

* add test reset once

* update subprecess env manager and test

* format code

* update picking error

* add unpickle catch for sync

* fix reset waitingenv bug
* added r2d2 + a2c configs

* changed convergence reward for some env

* removed configs that don't converge

* removed 'on_policy' param in 2rd2 configs
* feature(lk): add initial version of MP-PDQN

* fix(lk): fix expand function bug

* refactor(nyz): refactor mpdqn continuous args inputs module

* fix(nyz): fix pdqn scatter index generation

* fix(lk): fix pdqn scatter assignment bug

* feature(lk): polish mpdqn code and style format

* feature(lk): add mpdqn config and test file

* feature(lk): polish mpdqn code and style format

* fix(lk): fix import bug

* polish(lk): add test for mpdqn

* polish(lk): polish code style and format

* polish(lk): rm print debug info

* polish(lk): rm print debug info

* polish(lk): polish code style and format

* polish(lk): add MPDQN in readme.md
Co-authored-by: niuyazhe <niuyazhe@sensetime.com>
* fix(wyh):masac

* feature(wyh):single agent discrete sac

* feature(wyh):single agent discrete sac td

* fix(wyh):fix pong bug

* fix(wyh):fix smac bug

* fix(wyh):masac_5m6m best config

* env(wyh):allow SMAC env return ippo/isac obs

* fix(wyh):masac polish

* fix(wyh):masac style

* fix(wyh):masac test
* add trex algorithm for pong

* sort style

* add atari, ll,cp; fix device, collision; add_ppo

* add accuracy evaluation

* correct style

* add seed to make sure results are replicable

* remove useless part in cum return  of model part

* add mujoco onppo training pipeline; ppo config

* improve style

* add sac training config for mujoco

* add log, add save data; polish config

* logger; hyperparameter;walker

* correct style

* modify else condition

* change rnd to trex

* revise according to comments, add eposode collect

* new collect mode for trex, fix all bugs, commnets

* final change

* polish after the final comment

* add readme/test

* add test for serial entry of trex/gcl

* sort style
* Init base buffer and storage

* Use ratelimit as middleware

* Pass style check

* Keep the return original return value

* Add buffer.view

* Add replace flag on sample, rewrite middleware processing

* Test slicing

* Add buffer copy middleware

* Add update/delete api in buffer, rename middleware

* Implement update and delete api of buffer

* add naive use time count middleware in buffer

* Rename next to chain

* feature(nyz): add staleness check middleware and polish buffer

* feature(nyz): add naive priority experience replay

* Sample by indices

* Combine buffer and storage layers

* Support indices when deleting items from the queue

* Use dataclass to save buffered data, remove return_index and return_meta

* Add ignore_insufficient

* polish(nyz): add return index in push and copy same data in sample

* Drop useless import

* Fix sample with indices, ensure return size is equal to input size or indices size

* Make sure sampled data in buffer is different from each other

* Support sample by grouped meta key

* Support sample by rolling window

* Add import/export data in buffer

* Padding after sampling from buffer

* Polish use_time_check

* Use buffer as dataset

* Set collate_fn in buffer test

* feature(nyz): add deque buffer compatibility wrapper and demo

* polish(nyz): polish code style and add pong dqn new deque buffer demo

* feature(nyz): add use_time_count compatibility in wrapper

* feature(nyz): add priority replay buffer compatibility in wrapper

* Improve performance of buffer.update

* polish(nyz): add priority max limit and correct flake8

* Use __call__ to rewrite middleware

* Rewrite buffer index

* Fix buffer delete

* Skip first item

* Rewrite buffer delete

* Use caller

* Use caller in priority

* Add group sample

Co-authored-by: niuyazhe <niuyazhe@sensetime.com>
@puyuan1996 puyuan1996 added the algo Add new algorithm or improve old one label Dec 15, 2021
@codecov
Copy link

codecov bot commented Dec 15, 2021

Codecov Report

Merging #151 (8b50b27) into main (ff31a86) will decrease coverage by 0.90%.
The diff coverage is 18.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #151      +/-   ##
==========================================
- Coverage   85.08%   84.17%   -0.91%     
==========================================
  Files         414      417       +3     
  Lines       31867    32274     +407     
==========================================
+ Hits        27113    27167      +54     
- Misses       4754     5107     +353     
Flag Coverage Δ
unittests 84.17% <18.00%> (-0.91%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
ding/policy/il.py 77.52% <ø> (-0.97%) ⬇️
ding/policy/td3.py 100.00% <ø> (ø)
ding/entry/serial_entry_td3_vae.py 13.26% <13.26%> (ø)
ding/policy/td3_vae.py 14.14% <14.14%> (ø)
ding/model/template/vae.py 24.75% <24.75%> (ø)
ding/entry/__init__.py 100.00% <100.00%> (ø)
ding/model/template/__init__.py 100.00% <100.00%> (ø)
ding/policy/__init__.py 100.00% <100.00%> (ø)
ding/policy/command_mode_policy_instance.py 94.18% <100.00%> (+0.13%) ⬆️
ding/worker/learner/comm/flask_fs_learner.py 83.12% <0.00%> (-8.13%) ⬇️
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update aa61244...8b50b27. Read the comment docs.

@puyuan1996 puyuan1996 closed this Dec 15, 2021
@puyuan1996 puyuan1996 deleted the dev-hybrid branch December 15, 2021 11:23
SolenoidWGT added a commit to SolenoidWGT/DI-engine that referenced this pull request Aug 22, 2023
* fix/fix_submodule_err (opendilab#61)

* fix/fix_submodule_err

---------

Co-authored-by: ChenQiaoling00 <qiaoling_chen@u.nus.edu>

* fix issue templates (opendilab#65)

* fix(tokenizer): refactor tokenizer and update usage in readme (opendilab#51)

* update tokenizer example

* fix(readme, requirements): fix typo at Chinese readme and select a lower version of transformers (opendilab#73)

* fix a typo in readme

* in order to find InternLMTokenizer, select a lower version of Transformers

---------

Co-authored-by: gouhchangjiang <gouhchangjiang@gmail.com>

* [Doc] Add wechat and discord link in readme (opendilab#78)

* Doc:add wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* Doc:update wechat and discord link

* [Docs]: add Japanese README (opendilab#43)

* Add Japanese README

* Update README-ja-JP.md

replace message

* Update README-ja-JP.md

* add repetition_penalty in GenerationConfig in web_demo.py (opendilab#48)

Co-authored-by: YWMditto <862779238@qq.com>

* use fp16 in instruction (opendilab#80)

* [Enchancement] add more options for issue template (opendilab#77)

* [Enchancement] add more options for issue template

* update qustion icon

* fix link

* Use tempfile for convert2hf.py (opendilab#23)

Fix InternLM/InternLM#50

* delete torch_dtype of README's example code (opendilab#100)

* set the value of repetition_penalty to 1.0 to avoid random outputs (opendilab#99)

* Update web_demo.py (opendilab#97)

Remove meaningless log.

* [Fix]Fix wrong string cutoff in the script for sft text tokenizing (opendilab#106)

* docs(install.md): update dependency package transformers version to >= 4.28.0 (opendilab#124)

Co-authored-by: 黄婷 <huangting3@CN0014010744M.local>

* docs(LICENSE): add license (opendilab#125)

* add license of colossalai and flash-attn

* fix lint

* modify the name

* fix AutoModel map in convert2hf.py (opendilab#116)

* variables are not printly as expect (opendilab#114)

* feat(solver): fix code to adapt to torch2.0 and provide docker images (opendilab#128)

* feat(solver): fix code to adapt to torch2.0

* docs(install.md): publish internlm environment image

* docs(install.md): update dependency packages version

* docs(install.md): update default image

---------

Co-authored-by: 黄婷 <huangting3@CN0014010744M.local>

* add demo test (opendilab#132)

Co-authored-by: qa-caif-cicd <qa-caif-cicd@pjlab.org.cn>

* fix web_demo cache accelerate (opendilab#133)

* Doc: add twitter link (opendilab#141)

* Feat add checkpoint fraction (opendilab#151)

* feat(config): add checkpoint_fraction into config

* feat: remove checkpoint_fraction from configs/7B_sft.py

---------

Co-authored-by: wangguoteng.p <wangguoteng925@qq.com>

* [Doc] update deployment guide to keep consistency with lmdeploy (opendilab#136)

* update deployment guide

* fix error

* use llm partition (opendilab#159)

Co-authored-by: qa-caif-cicd <qa-caif-cicd@pjlab.org.cn>

* test(ci_scripts): clean test data after test, remove unnecessary global variables, and other optimizations (opendilab#165)

* test: optimization of ci scripts(variables, test data cleaning, etc).

* chore(workflows): disable ci job on push.

* fix: update partition

* test(ci_scripts): add install requirements automaticlly,trigger event about lint check and other optimizations (opendilab#174)

* add pull_request in lint check

* use default variables in ci_scripts

* fix format

* check and install requirements automaticlly

* fix format

---------

Co-authored-by: qa-caif-cicd <qa-caif-cicd@pjlab.org.cn>

* feat(profiling): add a simple memory profiler (opendilab#89)

* feat(profiling): add simple memory profiler

* feat(profiling): add profiling argument

* feat(CI_workflow): Add PR & Issue auto remove workflow (opendilab#184)

* feat(ci_workflow): Add PR & Issue auto remove workflow

Add a workflow for stale PR & Issue  auto remove
- pr & issue well be labeled as stale for inactive in 7 days
- staled PR & Issue  well be remove in 7 days
- run this workflow every day on 1:30 a.m.

* Update stale.yml

* feat(bot): Create .owners.yml for Auto Assign (opendilab#176)

* Create .owners.yml: for issue/pr assign automatically

* Update .owners.yml

* Update .owners.yml

fix typo

* [feat]: add pal reasoning script (opendilab#163)

* [Feat] Add PAL inference script

* Update README.md

* Update tools/README.md

Co-authored-by: BigDong <yudongwang1226@gmail.com>

* Update tools/pal_inference.py

Co-authored-by: BigDong <yudongwang1226@gmail.com>

* Update pal script

* Update README.md

* restore .ore-commit-config.yaml

* Update tools/README.md

Co-authored-by: BigDong <yudongwang1226@gmail.com>

* Update tools/README.md

Co-authored-by: BigDong <yudongwang1226@gmail.com>

* Update pal inference script

* Update READMD.md

* Update internlm/utils/interface.py

Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>

* Update pal script

* Update pal script

* Update script

* Add docstring

* Update format

* Update script

* Update script

* Update script

---------

Co-authored-by: BigDong <yudongwang1226@gmail.com>
Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>

* test(ci_scripts): add timeout settings and clean work after the slurm job (opendilab#185)

* restore pr test on develop branch

* add mask

* add post action to cancel slurm job

* remove readonly attribute on job log

* add debug info

* debug job log

* try stdin

* use stdin

* set default value avoid error

* try setting readonly on job log

* performance echo

* remove debug info

* use squeue to check slurm job status

* restore the lossed parm

* litmit retry times

* use exclusive to avoid port already in use

* optimize loop body

* remove partition

* add {} for variables

* set env variable for slurm partition

---------

Co-authored-by: qa-caif-cicd <qa-caif-cicd@pjlab.org.cn>

* refactor(tools): move interface.py and import it to web_demo (opendilab#195)

* move interface.py and import it to web_demo

* typo

* fix(ci): fix lint error

* fix(ci): fix lint error

---------

Co-authored-by: Sun Peng <sunpengsdu@gmail.com>
Co-authored-by: ChenQiaoling00 <qiaoling_chen@u.nus.edu>
Co-authored-by: Kai Chen <chenkaidev@gmail.com>
Co-authored-by: Yang Gao <Gary1546308416AL@gmail.com>
Co-authored-by: Changjiang GOU <gouchangjiang@gmail.com>
Co-authored-by: gouhchangjiang <gouhchangjiang@gmail.com>
Co-authored-by: vansin <msnode@163.com>
Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
Co-authored-by: YWMditto <46778265+YWMditto@users.noreply.github.com>
Co-authored-by: YWMditto <862779238@qq.com>
Co-authored-by: WRH <12756472+wangruohui@users.noreply.github.com>
Co-authored-by: liukuikun <24622904+Harold-lkk@users.noreply.github.com>
Co-authored-by: x54-729 <45304952+x54-729@users.noreply.github.com>
Co-authored-by: Shuo Zhang <zhangshuolove@live.com>
Co-authored-by: Miao Zheng <76149310+MeowZheng@users.noreply.github.com>
Co-authored-by: 黄婷 <huangting3@CN0014010744M.local>
Co-authored-by: ytxiong <45058324+yingtongxiong@users.noreply.github.com>
Co-authored-by: Zaida Zhou <58739961+zhouzaida@users.noreply.github.com>
Co-authored-by: kkscilife <126147887+kkscilife@users.noreply.github.com>
Co-authored-by: qa-caif-cicd <qa-caif-cicd@pjlab.org.cn>
Co-authored-by: hw <45089338+MorningForest@users.noreply.github.com>
Co-authored-by: Guoteng <32697156+SolenoidWGT@users.noreply.github.com>
Co-authored-by: wangguoteng.p <wangguoteng925@qq.com>
Co-authored-by: lvhan028 <lvhan_028@163.com>
Co-authored-by: zachtzy <141206206+zachtzy@users.noreply.github.com>
Co-authored-by: cx <759046501@qq.com>
Co-authored-by: Jaylin Lee <61487970+APX103@users.noreply.github.com>
Co-authored-by: del-zhenwu <dele.zhenwu@gmail.com>
Co-authored-by: Shaoyuan Xie <66255889+Daniel-xsy@users.noreply.github.com>
Co-authored-by: BigDong <yudongwang1226@gmail.com>
Co-authored-by: Wenwei Zhang <40779233+ZwwWayne@users.noreply.github.com>
Co-authored-by: huangting4201 <huangting3@sensetime.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
algo Add new algorithm or improve old one
Projects
None yet
Development

Successfully merging this pull request may close these issues.