agilerl 2.7.0.dev0__tar.gz → 2.7.0.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (499) hide show
  1. agilerl-2.7.0.dev2/.github/workflows/linux-tests.yml +94 -0
  2. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/workflows/macos-tests.yml +10 -1
  3. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/workflows/windows-tests.yml +10 -0
  4. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.gitignore +6 -0
  5. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.pre-commit-config.yaml +5 -2
  6. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/PKG-INFO +1 -1
  7. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/__init__.py +13 -0
  8. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/__init__.py +5 -1
  9. agilerl-2.7.0.dev2/agilerl/algorithms/cispo.py +26 -0
  10. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/core/base.py +2104 -839
  11. agilerl-2.7.0.dev2/agilerl/algorithms/core/fused_lora.py +146 -0
  12. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/core/optimizer_wrapper.py +112 -14
  13. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/core/registry.py +4 -3
  14. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/dpo.py +63 -103
  15. agilerl-2.7.0.dev2/agilerl/algorithms/grpo.py +1076 -0
  16. agilerl-2.7.0.dev2/agilerl/algorithms/gspo.py +26 -0
  17. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/ippo.py +0 -43
  18. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/maddpg.py +123 -42
  19. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/matd3.py +149 -55
  20. agilerl-2.7.0.dev2/agilerl/algorithms/ppo_llm.py +905 -0
  21. agilerl-2.7.0.dev2/agilerl/algorithms/reinforce_llm.py +729 -0
  22. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/sft.py +25 -18
  23. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/hpo/mutation.py +1 -1
  24. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/hpo/tournament.py +2 -2
  25. agilerl-2.7.0.dev2/agilerl/llm_envs/__init__.py +37 -0
  26. agilerl-2.7.0.dev2/agilerl/llm_envs/base.py +261 -0
  27. agilerl-2.7.0.dev2/agilerl/llm_envs/preference.py +135 -0
  28. agilerl-2.7.0.dev2/agilerl/llm_envs/reasoning.py +163 -0
  29. agilerl-2.7.0.dev2/agilerl/llm_envs/search.py +120 -0
  30. agilerl-2.7.0.dev2/agilerl/llm_envs/sft.py +99 -0
  31. agilerl-2.7.0.dev2/agilerl/llm_envs/sync_vec_env.py +273 -0
  32. agilerl-2.7.0.dev2/agilerl/llm_envs/token_observation.py +349 -0
  33. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/protocols.py +24 -4
  34. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/rollouts/on_policy.py +71 -1
  35. agilerl-2.7.0.dev2/agilerl/training/train_llm.py +1867 -0
  36. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/typing.py +15 -4
  37. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/algo_utils.py +111 -20
  38. agilerl-2.7.0.dev2/agilerl/utils/llm_utils.py +867 -0
  39. agilerl-2.7.0.dev2/agilerl/utils/ppo_value_head.py +275 -0
  40. agilerl-2.7.0.dev2/agilerl/utils/probe_envs_llm.py +154 -0
  41. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/torch_utils.py +1 -1
  42. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/utils.py +435 -70
  43. agilerl-2.7.0.dev2/agilerl/wrappers/llm_envs.py +19 -0
  44. agilerl-2.7.0.dev2/benchmarking/benchmarking_llm_multiturn.py +120 -0
  45. agilerl-2.7.0.dev0/benchmarking/benchmarking_dpo.py → agilerl-2.7.0.dev2/benchmarking/benchmarking_llm_preference.py +3 -3
  46. agilerl-2.7.0.dev0/benchmarking/benchmarking_grpo.py → agilerl-2.7.0.dev2/benchmarking/benchmarking_llm_reasoning.py +36 -57
  47. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_sft.py +2 -2
  48. agilerl-2.7.0.dev2/configs/training/llm_finetuning/cispo.yaml +38 -0
  49. {agilerl-2.7.0.dev0/configs/training → agilerl-2.7.0.dev2/configs/training/llm_finetuning}/grpo.yaml +4 -3
  50. agilerl-2.7.0.dev2/configs/training/llm_finetuning/grpo_multiturn.yaml +30 -0
  51. agilerl-2.7.0.dev2/configs/training/llm_finetuning/gspo.yaml +36 -0
  52. agilerl-2.7.0.dev2/configs/training/llm_finetuning/ppo_llm.yaml +47 -0
  53. agilerl-2.7.0.dev2/configs/training/llm_finetuning/reinforce_llm.yaml +42 -0
  54. agilerl-2.7.0.dev2/demos/llm/debugging/config_load.py +22 -0
  55. agilerl-2.7.0.dev2/demos/llm/debugging/configs/grpo_constant_target.yaml +24 -0
  56. agilerl-2.7.0.dev2/demos/llm/debugging/configs/grpo_grid_navigation.yaml +26 -0
  57. agilerl-2.7.0.dev2/demos/llm/debugging/configs/ppo_conditional_target.yaml +31 -0
  58. agilerl-2.7.0.dev2/demos/llm/debugging/configs/ppo_constant_target.yaml +27 -0
  59. agilerl-2.7.0.dev2/demos/llm/debugging/configs/ppo_grid_navigation.yaml +29 -0
  60. agilerl-2.7.0.dev2/demos/llm/debugging/configs/ppo_multi_input.yaml +28 -0
  61. agilerl-2.7.0.dev2/demos/llm/debugging/configs/ppo_value_head.yaml +30 -0
  62. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_llm.py +186 -0
  63. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_llm_stage_1.py +252 -0
  64. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_llm_stage_2.py +283 -0
  65. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_llm_stage_3.py +400 -0
  66. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_llm_training_matrix.py +697 -0
  67. agilerl-2.7.0.dev2/demos/llm/debugging/debugging_value.py +190 -0
  68. agilerl-2.7.0.dev2/demos/llm/debugging/llm_debug_utils.py +16 -0
  69. agilerl-2.7.0.dev2/demos/llm/debugging/tiny_model.py +229 -0
  70. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/llm}/demo_llm_finetuning.py +6 -6
  71. agilerl-2.7.0.dev2/docs/api/algorithms/cispo.rst +137 -0
  72. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/dpo.rst +1 -2
  73. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/grpo.rst +5 -2
  74. agilerl-2.7.0.dev2/docs/api/algorithms/gspo.rst +134 -0
  75. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/index.rst +30 -0
  76. agilerl-2.7.0.dev2/docs/api/algorithms/llmppo.rst +147 -0
  77. agilerl-2.7.0.dev2/docs/api/algorithms/llmreinforce.rst +145 -0
  78. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/sft.rst +1 -1
  79. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/llm_utils.rst +1 -1
  80. agilerl-2.7.0.dev2/docs/api/wrappers/llm_envs.rst +12 -0
  81. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/debugging_rl/index.rst +61 -1
  82. agilerl-2.7.0.dev2/docs/llm_finetuning/llm_checkpoints.rst +148 -0
  83. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/pyproject.toml +8 -6
  84. agilerl-2.7.0.dev2/tests/__init__.py +5 -0
  85. agilerl-2.7.0.dev2/tests/assets/build_minari_fixture.py +67 -0
  86. agilerl-2.7.0.dev2/tests/assets/build_tiny_llm_fixture.py +129 -0
  87. agilerl-2.7.0.dev2/tests/assets/minari_cache/D4RL/door/human-v2/data/main_data.hdf5 +0 -0
  88. agilerl-2.7.0.dev2/tests/assets/minari_cache/D4RL/door/human-v2/data/metadata.json +1 -0
  89. agilerl-2.7.0.dev2/tests/assets/minari_cache/D4RL/door/namespace_metadata.json +1 -0
  90. agilerl-2.7.0.dev2/tests/assets/minari_cache/D4RL/namespace_metadata.json +1 -0
  91. agilerl-2.7.0.dev2/tests/assets/tiny_llm/added_tokens.json +24 -0
  92. agilerl-2.7.0.dev2/tests/assets/tiny_llm/chat_template.jinja +54 -0
  93. agilerl-2.7.0.dev2/tests/assets/tiny_llm/config.json +32 -0
  94. agilerl-2.7.0.dev2/tests/assets/tiny_llm/generation_config.json +6 -0
  95. agilerl-2.7.0.dev2/tests/assets/tiny_llm/model.safetensors +0 -0
  96. agilerl-2.7.0.dev2/tests/assets/tiny_llm/special_tokens_map.json +31 -0
  97. agilerl-2.7.0.dev2/tests/assets/tiny_llm/tokenizer.json +757444 -0
  98. agilerl-2.7.0.dev2/tests/assets/tiny_llm/tokenizer_config.json +207 -0
  99. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/conftest.py +154 -10
  100. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/helper_functions.py +7 -0
  101. agilerl-2.7.0.dev2/tests/pz_vector_test_utils.py +482 -0
  102. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/subprocess_runner.py +31 -12
  103. agilerl-2.7.0.dev2/tests/test_algorithms/conftest.py +38 -0
  104. agilerl-2.7.0.dev2/tests/test_algorithms/test_bandits/test_neural_ts.py +500 -0
  105. agilerl-2.7.0.dev2/tests/test_algorithms/test_bandits/test_neural_ucb.py +517 -0
  106. agilerl-2.7.0.dev2/tests/test_algorithms/test_base.py +1679 -0
  107. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_bc_lm.py +380 -371
  108. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_core_base.py +2091 -452
  109. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/conftest.py +116 -0
  110. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_dpo.py +907 -0
  111. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_fused_lora.py +125 -0
  112. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_grpo.py +4859 -0
  113. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_ppo_llm.py +1094 -0
  114. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_reinforce_llm.py +962 -0
  115. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_sft.py +917 -0
  116. agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_vllm.py +143 -0
  117. agilerl-2.7.0.dev2/tests/test_algorithms/test_multi_agent/test_ippo.py +2199 -0
  118. agilerl-2.7.0.dev2/tests/test_algorithms/test_multi_agent/test_maddpg.py +1813 -0
  119. agilerl-2.7.0.dev2/tests/test_algorithms/test_multi_agent/test_matd3.py +1972 -0
  120. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_optimizer_wrapper.py +209 -0
  121. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_cqn.py +573 -0
  122. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_ddpg.py +834 -0
  123. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_dqn.py +598 -0
  124. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_dqn_rainbow.py +799 -0
  125. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_ilql.py +1147 -0
  126. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_ppo.py +2073 -0
  127. agilerl-2.7.0.dev2/tests/test_algorithms/test_single_agent/test_td3.py +1070 -0
  128. agilerl-2.7.0.dev2/tests/test_components/test_multi_agent_replay_buffer.py +638 -0
  129. agilerl-2.7.0.dev2/tests/test_components/test_replay_buffer.py +1056 -0
  130. agilerl-2.7.0.dev2/tests/test_components/test_replay_data.py +170 -0
  131. agilerl-2.7.0.dev2/tests/test_components/test_sampler.py +487 -0
  132. agilerl-2.7.0.dev2/tests/test_components/test_segment_tree.py +129 -0
  133. agilerl-2.7.0.dev2/tests/test_data.py +456 -0
  134. agilerl-2.7.0.dev2/tests/test_hpo/test_mutation.py +2191 -0
  135. agilerl-2.7.0.dev2/tests/test_hpo/test_tournament.py +523 -0
  136. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_init.py +8 -6
  137. agilerl-2.7.0.dev2/tests/test_modules/test_base.py +957 -0
  138. agilerl-2.7.0.dev2/tests/test_modules/test_bert.py +380 -0
  139. agilerl-2.7.0.dev2/tests/test_modules/test_cnn.py +990 -0
  140. agilerl-2.7.0.dev2/tests/test_modules/test_configs.py +85 -0
  141. agilerl-2.7.0.dev2/tests/test_modules/test_custom_activation.py +26 -0
  142. agilerl-2.7.0.dev2/tests/test_modules/test_dummy.py +77 -0
  143. agilerl-2.7.0.dev2/tests/test_modules/test_gpt.py +416 -0
  144. agilerl-2.7.0.dev2/tests/test_modules/test_lstm.py +494 -0
  145. agilerl-2.7.0.dev2/tests/test_modules/test_mlp.py +291 -0
  146. agilerl-2.7.0.dev2/tests/test_modules/test_multi_input.py +1103 -0
  147. agilerl-2.7.0.dev2/tests/test_modules/test_resnet.py +386 -0
  148. agilerl-2.7.0.dev2/tests/test_modules/test_simba.py +357 -0
  149. agilerl-2.7.0.dev2/tests/test_networks/test_actors.py +854 -0
  150. agilerl-2.7.0.dev2/tests/test_networks/test_base.py +550 -0
  151. agilerl-2.7.0.dev2/tests/test_networks/test_distributions.py +279 -0
  152. agilerl-2.7.0.dev2/tests/test_networks/test_q_networks.py +638 -0
  153. agilerl-2.7.0.dev2/tests/test_networks/test_value_functions.py +190 -0
  154. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_protocols.py +214 -185
  155. agilerl-2.7.0.dev2/tests/test_rollouts/test_on_policy.py +393 -0
  156. agilerl-2.7.0.dev2/tests/test_train/test_train.py +5482 -0
  157. agilerl-2.7.0.dev2/tests/test_train/test_train_llm.py +2771 -0
  158. agilerl-2.7.0.dev2/tests/test_utils/test_algo_utils.py +1951 -0
  159. agilerl-2.7.0.dev2/tests/test_utils/test_cache.py +62 -0
  160. agilerl-2.7.0.dev2/tests/test_utils/test_ilql_utils.py +82 -0
  161. agilerl-2.7.0.dev2/tests/test_utils/test_llm_utils.py +1284 -0
  162. agilerl-2.7.0.dev2/tests/test_utils/test_log_utils.py +213 -0
  163. agilerl-2.7.0.dev2/tests/test_utils/test_minari_utils.py +307 -0
  164. agilerl-2.7.0.dev2/tests/test_utils/test_ppo_value_head.py +482 -0
  165. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_utils/test_probe_envs.py +275 -265
  166. agilerl-2.7.0.dev2/tests/test_utils/test_probe_envs_llm.py +268 -0
  167. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_utils/test_probe_envs_ma.py +182 -172
  168. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_utils/test_sampling_utils.py +1 -1
  169. agilerl-2.7.0.dev2/tests/test_utils/test_torch_utils.py +317 -0
  170. agilerl-2.7.0.dev2/tests/test_utils/test_utils.py +1204 -0
  171. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_utils/test_utils_evolvable.py +123 -118
  172. agilerl-2.7.0.dev2/tests/test_vector/test_vector.py +1758 -0
  173. agilerl-2.7.0.dev2/tests/test_wrappers/test_agent.py +1549 -0
  174. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_wrappers/test_autoreset.py +126 -116
  175. agilerl-2.7.0.dev2/tests/test_wrappers/test_bandit_env.py +50 -0
  176. agilerl-2.7.0.dev2/tests/test_wrappers/test_llm_envs.py +1186 -0
  177. agilerl-2.7.0.dev2/tests/test_wrappers/test_make_evolvable.py +1309 -0
  178. agilerl-2.7.0.dev2/tests/test_wrappers/test_multiturn_wrappers.py +872 -0
  179. agilerl-2.7.0.dev2/tests/test_wrappers/test_ppo_test_method.py +79 -0
  180. agilerl-2.7.0.dev2/tests/test_wrappers/test_skills.py +62 -0
  181. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/utils.py +63 -2
  182. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/uv.lock +1745 -1662
  183. agilerl-2.7.0.dev0/.github/workflows/linux-tests.yml +0 -55
  184. agilerl-2.7.0.dev0/agilerl/algorithms/grpo.py +0 -674
  185. agilerl-2.7.0.dev0/agilerl/training/train_llm.py +0 -1080
  186. agilerl-2.7.0.dev0/agilerl/utils/llm_utils.py +0 -252
  187. agilerl-2.7.0.dev0/agilerl/wrappers/llm_envs.py +0 -795
  188. agilerl-2.7.0.dev0/docs/api/wrappers/llm_envs.rst +0 -12
  189. agilerl-2.7.0.dev0/tests/pz_vector_test_utils.py +0 -245
  190. agilerl-2.7.0.dev0/tests/test_algorithms/test_bandits/test_neural_ts.py +0 -478
  191. agilerl-2.7.0.dev0/tests/test_algorithms/test_bandits/test_neural_ucb.py +0 -490
  192. agilerl-2.7.0.dev0/tests/test_algorithms/test_base.py +0 -1630
  193. agilerl-2.7.0.dev0/tests/test_algorithms/test_llms/conftest.py +0 -152
  194. agilerl-2.7.0.dev0/tests/test_algorithms/test_llms/test_dpo.py +0 -1089
  195. agilerl-2.7.0.dev0/tests/test_algorithms/test_llms/test_grpo.py +0 -4197
  196. agilerl-2.7.0.dev0/tests/test_algorithms/test_llms/test_sft.py +0 -915
  197. agilerl-2.7.0.dev0/tests/test_algorithms/test_multi_agent/test_ippo.py +0 -2066
  198. agilerl-2.7.0.dev0/tests/test_algorithms/test_multi_agent/test_maddpg.py +0 -1554
  199. agilerl-2.7.0.dev0/tests/test_algorithms/test_multi_agent/test_matd3.py +0 -1689
  200. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_cqn.py +0 -567
  201. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_ddpg.py +0 -775
  202. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_dqn.py +0 -607
  203. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_dqn_rainbow.py +0 -782
  204. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_ilql.py +0 -1151
  205. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_ppo.py +0 -2027
  206. agilerl-2.7.0.dev0/tests/test_algorithms/test_single_agent/test_td3.py +0 -1027
  207. agilerl-2.7.0.dev0/tests/test_components/test_multi_agent_replay_buffer.py +0 -629
  208. agilerl-2.7.0.dev0/tests/test_components/test_replay_buffer.py +0 -1051
  209. agilerl-2.7.0.dev0/tests/test_components/test_replay_data.py +0 -174
  210. agilerl-2.7.0.dev0/tests/test_components/test_sampler.py +0 -479
  211. agilerl-2.7.0.dev0/tests/test_components/test_segment_tree.py +0 -126
  212. agilerl-2.7.0.dev0/tests/test_data.py +0 -437
  213. agilerl-2.7.0.dev0/tests/test_hpo/test_mutation.py +0 -2117
  214. agilerl-2.7.0.dev0/tests/test_hpo/test_tournament.py +0 -453
  215. agilerl-2.7.0.dev0/tests/test_modules/test_base.py +0 -934
  216. agilerl-2.7.0.dev0/tests/test_modules/test_bert.py +0 -361
  217. agilerl-2.7.0.dev0/tests/test_modules/test_cnn.py +0 -972
  218. agilerl-2.7.0.dev0/tests/test_modules/test_configs.py +0 -79
  219. agilerl-2.7.0.dev0/tests/test_modules/test_custom_activation.py +0 -23
  220. agilerl-2.7.0.dev0/tests/test_modules/test_dummy.py +0 -79
  221. agilerl-2.7.0.dev0/tests/test_modules/test_gpt.py +0 -343
  222. agilerl-2.7.0.dev0/tests/test_modules/test_lstm.py +0 -488
  223. agilerl-2.7.0.dev0/tests/test_modules/test_mlp.py +0 -270
  224. agilerl-2.7.0.dev0/tests/test_modules/test_multi_input.py +0 -1055
  225. agilerl-2.7.0.dev0/tests/test_modules/test_resnet.py +0 -374
  226. agilerl-2.7.0.dev0/tests/test_modules/test_simba.py +0 -345
  227. agilerl-2.7.0.dev0/tests/test_networks/test_actors.py +0 -834
  228. agilerl-2.7.0.dev0/tests/test_networks/test_base.py +0 -534
  229. agilerl-2.7.0.dev0/tests/test_networks/test_distributions.py +0 -281
  230. agilerl-2.7.0.dev0/tests/test_networks/test_q_networks.py +0 -597
  231. agilerl-2.7.0.dev0/tests/test_networks/test_value_functions.py +0 -181
  232. agilerl-2.7.0.dev0/tests/test_rollouts/test_on_policy.py +0 -149
  233. agilerl-2.7.0.dev0/tests/test_train/test_train.py +0 -5428
  234. agilerl-2.7.0.dev0/tests/test_train/test_train_llm.py +0 -1495
  235. agilerl-2.7.0.dev0/tests/test_utils/test_algo_utils.py +0 -1579
  236. agilerl-2.7.0.dev0/tests/test_utils/test_cache.py +0 -55
  237. agilerl-2.7.0.dev0/tests/test_utils/test_ilql_utils.py +0 -82
  238. agilerl-2.7.0.dev0/tests/test_utils/test_llm_utils.py +0 -370
  239. agilerl-2.7.0.dev0/tests/test_utils/test_log_utils.py +0 -211
  240. agilerl-2.7.0.dev0/tests/test_utils/test_minari_utils.py +0 -276
  241. agilerl-2.7.0.dev0/tests/test_utils/test_torch_utils.py +0 -329
  242. agilerl-2.7.0.dev0/tests/test_utils/test_utils.py +0 -957
  243. agilerl-2.7.0.dev0/tests/test_vector/test_vector.py +0 -1702
  244. agilerl-2.7.0.dev0/tests/test_wrappers/test_agent.py +0 -1485
  245. agilerl-2.7.0.dev0/tests/test_wrappers/test_bandit_env.py +0 -40
  246. agilerl-2.7.0.dev0/tests/test_wrappers/test_llm_envs.py +0 -1152
  247. agilerl-2.7.0.dev0/tests/test_wrappers/test_make_evolvable.py +0 -1262
  248. agilerl-2.7.0.dev0/tests/test_wrappers/test_skills.py +0 -61
  249. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  250. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  251. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +0 -0
  252. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/badges/arena-github-badge.svg +0 -0
  253. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/codeql/install_codeql.sh +0 -0
  254. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/codeql/run_codeql.py +0 -0
  255. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2/.github}/dependabot.yml +0 -0
  256. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.github/workflows/codeql.yml +0 -0
  257. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/.readthedocs.yaml +0 -0
  258. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/CITATION.cff +0 -0
  259. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/CODE_OF_CONDUCT.md +0 -0
  260. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/CONTRIBUTING.md +0 -0
  261. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/LICENSE +0 -0
  262. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/README.md +0 -0
  263. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/bc_lm.py +0 -0
  264. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/core/__init__.py +0 -0
  265. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/cqn.py +0 -0
  266. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/ddpg.py +0 -0
  267. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/dqn.py +0 -0
  268. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/dqn_rainbow.py +0 -0
  269. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/ilql.py +0 -0
  270. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/neural_ts_bandit.py +0 -0
  271. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/neural_ucb_bandit.py +0 -0
  272. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/ppo.py +0 -0
  273. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/algorithms/td3.py +0 -0
  274. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/__init__.py +0 -0
  275. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/data.py +0 -0
  276. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/multi_agent_replay_buffer.py +0 -0
  277. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/replay_buffer.py +0 -0
  278. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/rollout_buffer.py +0 -0
  279. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/sampler.py +0 -0
  280. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/components/segment_tree.py +0 -0
  281. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/data/__init__.py +0 -0
  282. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/data/language_environment.py +0 -0
  283. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/data/rl_data.py +0 -0
  284. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/data/tokenizer.py +0 -0
  285. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/data/torch_datasets.py +0 -0
  286. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/hpo/__init__.py +0 -0
  287. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/__init__.py +0 -0
  288. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/base.py +0 -0
  289. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/bert.py +0 -0
  290. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/cnn.py +0 -0
  291. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/configs.py +0 -0
  292. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/custom_components.py +0 -0
  293. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/dummy.py +0 -0
  294. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/gpt.py +0 -0
  295. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/lstm.py +0 -0
  296. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/mlp.py +0 -0
  297. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/multi_input.py +0 -0
  298. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/resnet.py +0 -0
  299. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/modules/simba.py +0 -0
  300. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/__init__.py +0 -0
  301. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/actors.py +0 -0
  302. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/base.py +0 -0
  303. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/custom_modules.py +0 -0
  304. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/distributions.py +0 -0
  305. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/q_networks.py +0 -0
  306. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/networks/value_networks.py +0 -0
  307. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/rollouts/__init__.py +0 -0
  308. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/__init__.py +0 -0
  309. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_bandits.py +0 -0
  310. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_multi_agent_off_policy.py +0 -0
  311. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_multi_agent_on_policy.py +0 -0
  312. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_off_policy.py +0 -0
  313. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_offline.py +0 -0
  314. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/training/train_on_policy.py +0 -0
  315. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/__init__.py +0 -0
  316. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/cache.py +0 -0
  317. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/evolvable_networks.py +0 -0
  318. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/ilql_utils.py +0 -0
  319. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/log_utils.py +0 -0
  320. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/minari_utils.py +0 -0
  321. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/probe_envs.py +0 -0
  322. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/probe_envs_ma.py +0 -0
  323. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/utils/sampling_utils.py +0 -0
  324. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/vector/__init__.py +0 -0
  325. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/vector/pz_async_vec_env.py +0 -0
  326. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/vector/pz_vec_env.py +0 -0
  327. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/__init__.py +0 -0
  328. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/agent.py +0 -0
  329. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/learning.py +0 -0
  330. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/make_evolvable.py +0 -0
  331. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/pettingzoo_wrappers.py +0 -0
  332. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/agilerl/wrappers/utils.py +0 -0
  333. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_bandits.py +0 -0
  334. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_multi_agent_off_policy.py +0 -0
  335. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_multi_agent_on_policy.py +0 -0
  336. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_off_policy.py +0 -0
  337. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_off_policy_distributed.py +0 -0
  338. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_offline.py +0 -0
  339. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_offline_distributed.py +0 -0
  340. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_on_policy.py +0 -0
  341. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_rainbow.py +0 -0
  342. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_recurrent.py +0 -0
  343. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_resnet.py +0 -0
  344. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/benchmarking_simba.py +0 -0
  345. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/configs/ds_config.json +0 -0
  346. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/make_evolvable_benchmarking.py +0 -0
  347. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/benchmarking/networks.py +0 -0
  348. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/accelerate/accelerate.yaml +0 -0
  349. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/accelerate/grpo_accelerate_config.yaml +0 -0
  350. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/bandit/neural_ts.yaml +0 -0
  351. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/bandit/neural_ucb.yaml +0 -0
  352. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/cqn.yaml +0 -0
  353. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ddpg/ddpg.yaml +0 -0
  354. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ddpg/ddpg_lstm.yaml +0 -0
  355. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ddpg/ddpg_simba.yaml +0 -0
  356. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/dqn/dqn.yaml +0 -0
  357. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/dqn/dqn_lstm.yaml +0 -0
  358. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/dqn/dqn_rainbow.yaml +0 -0
  359. {agilerl-2.7.0.dev0/configs/training → agilerl-2.7.0.dev2/configs/training/llm_finetuning}/dpo.yaml +0 -0
  360. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/multi_agent/ippo.yaml +0 -0
  361. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/multi_agent/ippo_pong.yaml +0 -0
  362. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/multi_agent/maddpg.yaml +0 -0
  363. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/multi_agent/matd3.yaml +0 -0
  364. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/multi_input.yaml +0 -0
  365. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ppo/ppo.yaml +0 -0
  366. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ppo/ppo_image.yaml +0 -0
  367. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/ppo/ppo_recurrent.yaml +0 -0
  368. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/sft.yaml +0 -0
  369. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/configs/training/td3.yaml +0 -0
  370. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/data/cartpole/cartpole_random_v1.1.0.h5 +0 -0
  371. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/data/cartpole/cartpole_v1.1.0.h5 +0 -0
  372. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/data/pendulum/pendulum_random_v1.1.0.h5 +0 -0
  373. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/data/pendulum/pendulum_v1.1.0.h5 +0 -0
  374. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/bandits}/demo_bandit.py +0 -0
  375. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/multi_agent}/demo_multi_agent.py +0 -0
  376. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_custom_network.py +0 -0
  377. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_off_policy.py +0 -0
  378. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_off_policy_distributed.py +0 -0
  379. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_offline.py +0 -0
  380. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_offline_distributed.py +0 -0
  381. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_on_policy.py +0 -0
  382. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_on_policy_rnn_cartpole.py +0 -0
  383. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_on_policy_rnn_memory.py +0 -0
  384. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/demo_on_policy_rnn_minigrid.py +0 -0
  385. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/performance_flamegraph_cartpole.py +0 -0
  386. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/performance_flamegraph_lunar_lander.py +0 -0
  387. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/performance_flamegraph_lunar_lander_rnn.py +0 -0
  388. {agilerl-2.7.0.dev0/demos → agilerl-2.7.0.dev2/demos/single_agent}/performance_flamegraph_rnn_memory.py +0 -0
  389. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/Makefile +0 -0
  390. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/__init__.py +0 -0
  391. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/arena-github-badge.svg +0 -0
  392. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/css/custom.css +0 -0
  393. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/favicon.ico +0 -0
  394. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/js/expand_sidebar.js +0 -0
  395. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/logo_teal.png +0 -0
  396. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/logo_white.png +0 -0
  397. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/module.png +0 -0
  398. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/network.png +0 -0
  399. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/thumbnails/iris-thumbnail.png +0 -0
  400. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/thumbnails/pendigits-thumbnail.png +0 -0
  401. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/thumbnails/rainbow_performance.png +0 -0
  402. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/_static/thumbnails/simba_thumbnail.png +0 -0
  403. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/base.rst +0 -0
  404. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/cql.rst +0 -0
  405. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/ddpg.rst +0 -0
  406. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/dqn.rst +0 -0
  407. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/dqn_rainbow.rst +0 -0
  408. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/ilql.rst +0 -0
  409. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/ippo.rst +0 -0
  410. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/maddpg.rst +0 -0
  411. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/matd3.rst +0 -0
  412. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/neural_ts.rst +0 -0
  413. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/neural_ucb.rst +0 -0
  414. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/ppo.rst +0 -0
  415. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/registry.rst +0 -0
  416. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/td3.rst +0 -0
  417. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/algorithms/wrappers.rst +0 -0
  418. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/data.rst +0 -0
  419. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/index.rst +0 -0
  420. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/multi_agent_replay_buffer.rst +0 -0
  421. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/replay_buffer.rst +0 -0
  422. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/rollout_buffer.rst +0 -0
  423. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/sampler.rst +0 -0
  424. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/components/segment_tree.rst +0 -0
  425. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/hpo/index.rst +0 -0
  426. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/hpo/mutation.rst +0 -0
  427. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/hpo/tournament.rst +0 -0
  428. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/base.rst +0 -0
  429. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/bert.rst +0 -0
  430. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/cnn.rst +0 -0
  431. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/custom_activation.rst +0 -0
  432. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/dummy.rst +0 -0
  433. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/gpt.rst +0 -0
  434. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/index.rst +0 -0
  435. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/lstm.rst +0 -0
  436. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/mlp.rst +0 -0
  437. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/multi_input.rst +0 -0
  438. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/resnet.rst +0 -0
  439. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/modules/simba.rst +0 -0
  440. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/networks/actors.rst +0 -0
  441. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/networks/base.rst +0 -0
  442. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/networks/index.rst +0 -0
  443. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/networks/q_networks.rst +0 -0
  444. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/networks/value_networks.rst +0 -0
  445. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/rollouts/index.rst +0 -0
  446. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/rollouts/on_policy.rst +0 -0
  447. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/train.rst +0 -0
  448. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/algo_utils.rst +0 -0
  449. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/cache.rst +0 -0
  450. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/evolvable_networks.rst +0 -0
  451. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/ilql_utils.rst +0 -0
  452. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/index.rst +0 -0
  453. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/log_utils.rst +0 -0
  454. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/minari_utils.rst +0 -0
  455. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/probe_envs.rst +0 -0
  456. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/torch_utils.rst +0 -0
  457. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/utils/utils.rst +0 -0
  458. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/vector/index.rst +0 -0
  459. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/vector/petting_zoo_async_vector_env.rst +0 -0
  460. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/vector/petting_zoo_vector_env.rst +0 -0
  461. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/wrappers/agent.rst +0 -0
  462. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/wrappers/index.rst +0 -0
  463. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/wrappers/learning.rst +0 -0
  464. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/wrappers/make_evolvable.rst +0 -0
  465. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/api/wrappers/pettingzoo.rst +0 -0
  466. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/bandits/index.rst +0 -0
  467. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/conf.py +0 -0
  468. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/custom_algorithms/index.rst +0 -0
  469. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/distributed_training/index.rst +0 -0
  470. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/evo_hyperparam_opt/index.rst +0 -0
  471. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/evolvable_networks/index.rst +0 -0
  472. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/get_started/agilerl2changes.rst +0 -0
  473. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/get_started/index.rst +0 -0
  474. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/index.rst +0 -0
  475. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/llm_finetuning/index.rst +0 -0
  476. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/make.bat +0 -0
  477. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/multi_agent_training/index.rst +0 -0
  478. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/off_policy/index.rst +0 -0
  479. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/offline_training/index.rst +0 -0
  480. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/on_policy/index.rst +0 -0
  481. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/pomdp/index.rst +0 -0
  482. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/releases/index.rst +0 -0
  483. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/docs/requirements.txt +0 -0
  484. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/sitecustomize.py +0 -0
  485. {agilerl-2.7.0.dev0/tests → agilerl-2.7.0.dev2/tests/test_algorithms}/__init__.py +0 -0
  486. {agilerl-2.7.0.dev0/tests/test_algorithms → agilerl-2.7.0.dev2/tests/test_algorithms/test_bandits}/__init__.py +0 -0
  487. {agilerl-2.7.0.dev0/tests/test_algorithms/test_bandits → agilerl-2.7.0.dev2/tests/test_algorithms/test_llms}/__init__.py +0 -0
  488. /agilerl-2.7.0.dev0/tests/test_algorithms/test_llms/__init__.py → /agilerl-2.7.0.dev2/tests/test_algorithms/test_llms/test_llm_checkpoint.py +0 -0
  489. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_multi_agent/__init__.py +0 -0
  490. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_multi_agent/conftest.py +0 -0
  491. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_registry.py +0 -0
  492. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_algorithms/test_single_agent/__init__.py +0 -0
  493. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_components/__init__.py +0 -0
  494. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_components/test_rollout_buffer.py +0 -0
  495. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_hpo/__init__.py +0 -0
  496. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_modules/__init__.py +0 -0
  497. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_networks/__init__.py +0 -0
  498. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_utils/__init__.py +0 -0
  499. {agilerl-2.7.0.dev0 → agilerl-2.7.0.dev2}/tests/test_wrappers/__init__.py +0 -0
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: Linux
3
+
4
+ on:
5
+ push:
6
+ branches: [main, nightly]
7
+ paths:
8
+ - agilerl/**
9
+ - tests/**
10
+ - .github/workflows/**
11
+ - pyproject.toml
12
+ pull_request:
13
+ paths:
14
+ - agilerl/**
15
+ - tests/**
16
+ - .github/workflows/**
17
+ - pyproject.toml
18
+
19
+ concurrency:
20
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
21
+ cancel-in-progress: true
22
+
23
+ permissions:
24
+ contents: read
25
+
26
+ jobs:
27
+ tests:
28
+ runs-on: gha-runner-scale-set
29
+ strategy:
30
+ fail-fast: false
31
+ max-parallel: 4
32
+ matrix:
33
+ python-version: ['3.10', '3.11', '3.12', '3.13']
34
+
35
+ container:
36
+ image: pytorch/pytorch:2.7.1-cuda12.6-cudnn9-devel
37
+ options: --user root
38
+
39
+ # Workspace (/__w) is ~1GB with little free space; root (/) has plenty. Put cache and venv on /.
40
+ env:
41
+ UV_CACHE_DIR: /tmp/uv-cache
42
+ UV_PROJECT_ENVIRONMENT: /tmp/agilerl-venv
43
+ HF_HOME: /tmp/hf-cache
44
+ TORCHINDUCTOR_CACHE_DIR: /tmp/inductor-cache
45
+
46
+ steps:
47
+ - uses: actions/checkout@v4
48
+ - uses: astral-sh/setup-uv@v7
49
+ with:
50
+ enable-cache: true
51
+ python-version: ${{ matrix.python-version }}
52
+
53
+ - name: Cache HuggingFace models
54
+ uses: actions/cache@v4
55
+ with:
56
+ path: /tmp/hf-cache
57
+ key: hf-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
58
+ restore-keys: hf-${{ matrix.python-version }}-
59
+
60
+ - name: Cache torch inductor compilations
61
+ uses: actions/cache@v4
62
+ with:
63
+ path: /tmp/inductor-cache
64
+ key: inductor-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml') }}
65
+ restore-keys: inductor-${{ matrix.python-version }}-
66
+
67
+ - name: Install dependencies
68
+ # swig is needed to build box2d-py from source (no pre-built wheels for py3.10+).
69
+ run: |
70
+ uv sync --locked --all-groups --extra all
71
+ echo "$UV_PROJECT_ENVIRONMENT/bin" >> $GITHUB_PATH
72
+
73
+ - name: Reset coverage data
74
+ run: rm -f .coverage .coverage.*
75
+
76
+ # Single phase: `-n auto --dist loadgroup` from pyproject gives 8
77
+ # workers on the gha-runner-scale-set node. `vllm`- and `gpu`-marked
78
+ # tests share the 4 `gputest0..gputest3` xdist groups defined in
79
+ # `tests/conftest.py`, which caps GPU-touching concurrency at 4
80
+ # workers regardless of -n; the remaining ~4 workers fan out across
81
+ # CPU-only tests. See the `pytest_collection_modifyitems` docstring
82
+ # for the GPU-memory and port-race rationale behind the 4-group cap.
83
+ #
84
+ # Single invocation = single coverage run; pytest-cov auto-combines
85
+ # the per-worker `.coverage.*` shards before writing `coverage.xml`,
86
+ # so we don't need a manual `coverage combine` step (which was
87
+ # tripping over corrupted shards under the old two-phase setup).
88
+ - name: Run tests
89
+ run: uv run pytest --exitfirst --cov=agilerl --cov-report=xml --durations=0 --durations-min=1.0
90
+
91
+ - name: Upload coverage reports to Codecov
92
+ uses: codecov/codecov-action@v3
93
+ env:
94
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -6,10 +6,20 @@ on:
6
6
  branches: [main, nightly]
7
7
  paths:
8
8
  - agilerl/**
9
+ - tests/**
10
+ - .github/workflows/**
11
+ - pyproject.toml
9
12
  pull_request:
10
13
  branches: [main, nightly]
11
14
  paths:
12
15
  - agilerl/**
16
+ - tests/**
17
+ - .github/workflows/**
18
+ - pyproject.toml
19
+
20
+ concurrency:
21
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
22
+ cancel-in-progress: true
13
23
 
14
24
  permissions:
15
25
  contents: read
@@ -32,7 +42,6 @@ jobs:
32
42
  python-version: ${{ matrix.python-version }}
33
43
 
34
44
  - name: Install dependencies
35
- # swig is needed to build box2d-py from source (no pre-built wheels for py3.10+).
36
45
  run: |
37
46
  uv sync --locked --all-groups --extra all
38
47
 
@@ -6,10 +6,20 @@ on:
6
6
  branches: [main, nightly]
7
7
  paths:
8
8
  - agilerl/**
9
+ - tests/**
10
+ - .github/workflows/**
11
+ - pyproject.toml
9
12
  pull_request:
10
13
  branches: [main, nightly]
11
14
  paths:
12
15
  - agilerl/**
16
+ - tests/**
17
+ - .github/workflows/**
18
+ - pyproject.toml
19
+
20
+ concurrency:
21
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
22
+ cancel-in-progress: true
13
23
 
14
24
  permissions:
15
25
  contents: read
@@ -109,6 +109,8 @@ celerybeat.pid
109
109
  # Environments
110
110
  .env
111
111
  .vscode/
112
+ .cursor/
113
+ .claude/
112
114
  .venv*/
113
115
  venv/
114
116
  env.bak/
@@ -147,3 +149,7 @@ wandb/
147
149
 
148
150
  # Cursor
149
151
  .cursor
152
+
153
+ # AI assistant instructions
154
+ CLAUDE.md
155
+ AGENTS.md
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  # See https://pre-commit.com for more information
3
3
  # See https://pre-commit.com/hooks.html for more hooks
4
+
5
+ # Vendored binary test fixtures; opaque to every hook here.
6
+ exclude: ^tests/assets/tiny_llm/
4
7
  ci:
5
8
  autoupdate_branch: nightly
6
9
  skip: [codeql-python]
@@ -32,7 +35,7 @@ repos:
32
35
  - --skip=*.css,*.js,*.map,*.scss,*.svg
33
36
  - --ignore-words-list=magent,pres,roate
34
37
  - repo: https://github.com/astral-sh/ruff-pre-commit
35
- rev: v0.15.10
38
+ rev: v0.15.12
36
39
  hooks:
37
40
  - id: ruff
38
41
  name: Ruff Linter
@@ -47,7 +50,7 @@ repos:
47
50
 
48
51
  - repo: https://github.com/astral-sh/uv-pre-commit
49
52
  # uv version.
50
- rev: 0.11.6
53
+ rev: 0.11.8
51
54
  hooks:
52
55
  - id: uv-lock
53
56
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agilerl
3
- Version: 2.7.0.dev0
3
+ Version: 2.7.0.dev2
4
4
  Summary: AgileRL is a deep reinforcement learning library focused on improving RL development through RLOps.
5
5
  Author-email: Nick Ustaran-Anderegg <dev@agilerl.com>
6
6
  License-Expression: Apache-2.0
@@ -16,6 +16,19 @@ def get_extra_dependencies(package: str, extra: str) -> list[str]:
16
16
  return deps
17
17
 
18
18
 
19
+ def _is_dist_installed(dist_name: str) -> bool:
20
+ """Check if a distribution is installed by its PyPI name.
21
+
22
+ Uses distribution metadata instead of find_spec because PyPI names
23
+ can differ from import names.
24
+ """
25
+ try:
26
+ metadata(dist_name)
27
+ return True
28
+ except PackageNotFoundError:
29
+ return False
30
+
31
+
19
32
  LLM_PACKAGES = get_extra_dependencies("agilerl", "llm")
20
33
 
21
34
 
@@ -33,8 +33,12 @@ __all__ = [
33
33
  ]
34
34
 
35
35
  if HAS_LLM_DEPENDENCIES:
36
+ from .cispo import CISPO
36
37
  from .dpo import DPO
37
38
  from .grpo import GRPO
39
+ from .gspo import GSPO
40
+ from .ppo_llm import PPO as LLMPPO
41
+ from .reinforce_llm import REINFORCE as LLMREINFORCE
38
42
  from .sft import SFT
39
43
 
40
- __all__ += ["DPO", "GRPO", "SFT"]
44
+ __all__ += ["CISPO", "DPO", "GRPO", "GSPO", "LLMPPO", "LLMREINFORCE", "SFT"]
@@ -0,0 +1,26 @@
1
+ """CISPO algorithm variant built on top of GRPO."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from functools import partial
6
+ from typing import Any
7
+
8
+ from agilerl.algorithms.grpo import GRPO, _signatures_without_loss_type
9
+
10
+
11
+ class CISPO(GRPO):
12
+ """CISPO loss variant of :class:`agilerl.algorithms.grpo.GRPO`
13
+
14
+ Paper: https://arxiv.org/abs/2506.13585
15
+ """
16
+
17
+ _init_with_cispo = partial(GRPO.__init__, loss_type="cispo")
18
+
19
+ def __init__(self, *args: Any, **kwargs: Any) -> None:
20
+ """Initialize a CISPO agent with fixed ``loss_type``."""
21
+ self._init_with_cispo(self, *args, **kwargs)
22
+
23
+
24
+ _CISPO_CLASS_SIG, _CISPO_INIT_SIG = _signatures_without_loss_type()
25
+ CISPO.__signature__ = _CISPO_CLASS_SIG
26
+ CISPO.__init__.__signature__ = _CISPO_INIT_SIG