fusion-bench 0.2.4__tar.gz → 0.2.6__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 (543) hide show
  1. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/PKG-INFO +22 -3
  2. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/README.md +21 -2
  3. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/method/__init__.py +9 -18
  4. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/method/base_algorithm.py +3 -1
  5. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/modelpool/__init__.py +10 -2
  6. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/taskpool/base_pool.py +1 -0
  7. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/taskpool/clip_image_classification.py +20 -1
  8. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/__init__.py +6 -0
  9. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/arc.py +303 -0
  10. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/arc_agi.py +365 -0
  11. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/augmenters.py +1036 -0
  12. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/messagers.py +1355 -0
  13. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/np_cache.py +168 -0
  14. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/preprocess.py +298 -0
  15. fusion_bench-0.2.6/fusion_bench/dataset/arc_agi/representers.py +1019 -0
  16. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/gpt2_glue.py +101 -2
  17. fusion_bench-0.2.6/fusion_bench/dataset/llama/collate.py +60 -0
  18. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/squad.py +3 -3
  19. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/__init__.py +10 -1
  20. fusion_bench-0.2.6/fusion_bench/method/adamerging/__init__.py +6 -0
  21. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/clip_layer_wise_adamerging.py +2 -2
  22. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/entropy_loss.py +2 -2
  23. fusion_bench-0.2.6/fusion_bench/method/adamerging/flan_t5_layer_wise_adamerging.py +332 -0
  24. fusion_bench-0.2.6/fusion_bench/method/adamerging/gpt2_layer_wise_adamerging.py +351 -0
  25. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/layer_wise_adamerging.py +3 -1
  26. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/llama_adamerging.py +5 -0
  27. fusion_bench-0.2.6/fusion_bench/method/adamerging/min_norm_solvers.py +227 -0
  28. fusion_bench-0.2.6/fusion_bench/method/adamerging/utils.py +15 -0
  29. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/base_algorithm.py +3 -0
  30. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py +2 -2
  31. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py +1 -1
  32. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dawe/warppers/__init__.py +1 -0
  33. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/depth_upscaling/depth_upscaling.py +2 -2
  34. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/fisher_merging/fisher_merging.py +3 -1
  35. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/fisher_merging/gpt2_fisher_merging.py +3 -2
  36. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/llama_expo.py +2 -2
  37. fusion_bench-0.2.6/fusion_bench/method/lm_finetune/__init__.py +2 -0
  38. fusion_bench-0.2.6/fusion_bench/method/lm_finetune/fullfinetune_sft.py +445 -0
  39. fusion_bench-0.2.6/fusion_bench/method/lm_finetune/peftfinetune_sft.py +460 -0
  40. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/llama_random_prune.py +1 -0
  41. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/magnitude_diff_pruning.py +20 -21
  42. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/data.py +1 -2
  43. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/eval.py +1 -1
  44. fusion_bench-0.2.6/fusion_bench/method/rankone_moe/__init__.py +3 -0
  45. fusion_bench-0.2.6/fusion_bench/method/rankone_moe/clip_rankone_moe.py +160 -0
  46. fusion_bench-0.2.6/fusion_bench/method/rankone_moe/rankone_moe.py +249 -0
  47. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/regmean/regmean.py +1 -1
  48. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/simple_average.py +2 -1
  49. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ties_merging/ties_merging.py +1 -1
  50. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/trust_region/clip_task_arithmetic.py +10 -1
  51. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/we_moe/clip_we_moe.py +1 -0
  52. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/we_moe/we_moe.py +1 -0
  53. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/text_to_image_generation/__init__.py +1 -0
  54. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/clip_classification.py +4 -4
  55. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/lightning_fabric.py +19 -8
  56. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/__init__.py +8 -2
  57. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/base_pool.py +9 -9
  58. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/causal_lm/causal_lm.py +1 -1
  59. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/huggingface_gpt2_classification.py +5 -1
  60. fusion_bench-0.2.6/fusion_bench/models/linearized/vision_model.py +122 -0
  61. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/model_utils/embedding.py +25 -8
  62. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/model_utils/visual.py +1 -2
  63. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/patcher.py +1 -3
  64. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/tokenizer_loader.py +1 -5
  65. fusion_bench-0.2.6/fusion_bench/models/rankone_moe.py +410 -0
  66. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/sparse_we_moe.py +46 -16
  67. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/wrappers/layer_wise_fusion.py +2 -0
  68. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/programs/fabric_fusion_program.py +16 -14
  69. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/__init__.py +11 -3
  70. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/clip_vision/__init__.py +1 -0
  71. fusion_bench-0.2.6/fusion_bench/taskpool/clip_vision/clip_rankone_moe_taskpool.py +112 -0
  72. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/clip_vision/taskpool.py +6 -2
  73. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py +19 -5
  74. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/devices.py +22 -1
  75. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/dtype.py +64 -10
  76. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/parameters.py +39 -3
  77. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/state_dict_arithmetic.py +17 -0
  78. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/strenum/__init__.py +2 -1
  79. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/PKG-INFO +22 -3
  80. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/SOURCES.txt +34 -2
  81. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml +8 -6
  82. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/fabric/auto.yaml +6 -0
  83. fusion_bench-0.2.6/fusion_bench_config/fabric/llama_ddp.yaml +18 -0
  84. fusion_bench-0.2.6/fusion_bench_config/fabric/llama_fsdp.yaml +16 -0
  85. fusion_bench-0.2.6/fusion_bench_config/fabric/loggers/csv_logger.yaml +11 -0
  86. fusion_bench-0.2.6/fusion_bench_config/fabric/loggers/tensorboard_logger.yaml +11 -0
  87. fusion_bench-0.2.6/fusion_bench_config/fabric/strategy/llama_fsdp.yaml +8 -0
  88. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/fabric_model_fusion.yaml +0 -1
  89. fusion_bench-0.2.6/fusion_bench_config/method/adamerging/layer_wise_flan_t5.yaml +23 -0
  90. fusion_bench-0.2.6/fusion_bench_config/method/adamerging/layer_wise_gpt2.yaml +23 -0
  91. fusion_bench-0.2.6/fusion_bench_config/method/lm_finetune/fullfinetune_sft.yaml +40 -0
  92. fusion_bench-0.2.6/fusion_bench_config/method/lm_finetune/peftfinetune_sft.yaml +61 -0
  93. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/pruning/magnitude_diff_pruning.yaml +1 -0
  94. fusion_bench-0.2.6/fusion_bench_config/method/rankone_moe/rankone_moe.yaml +26 -0
  95. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/regmean/clip_regmean.yaml +1 -0
  96. fusion_bench-0.2.6/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8_lora.yaml +53 -0
  97. fusion_bench-0.2.6/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual_lora.yaml +14 -0
  98. fusion_bench-0.2.6/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16_tta.yaml +68 -0
  99. fusion_bench-0.2.6/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_rankone_wemoe_clip-vit-classification_TA8.yaml +18 -0
  100. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/flan-t5_glue_text_generation.yaml +2 -2
  101. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/pyproject.toml +1 -1
  102. fusion_bench-0.2.4/fusion_bench/method/adamerging/__init__.py +0 -3
  103. fusion_bench-0.2.4/fusion_bench/models/linearized/vision_model.py +0 -71
  104. fusion_bench-0.2.4/fusion_bench/tasks/flan_t5_text_generation/__init__.py +0 -0
  105. fusion_bench-0.2.4/fusion_bench_config/fabric_logger/tensorboard_logger.yaml +0 -5
  106. fusion_bench-0.2.4/fusion_bench_config/method/magnitude_diff_pruning.yaml +0 -5
  107. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/LICENSE +0 -0
  108. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/__init__.py +0 -0
  109. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/__init__.py +0 -0
  110. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/modelpool/AutoModelForSeq2SeqLM.py +0 -0
  111. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/modelpool/base_pool.py +0 -0
  112. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/modelpool/huggingface_clip_vision.py +0 -0
  113. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/taskpool/__init__.py +0 -0
  114. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py +0 -0
  115. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/constants/__init__.py +0 -0
  116. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/constants/paths.py +0 -0
  117. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/__init__.py +1 -1
  118. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/clip_dataset.py +0 -0
  119. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/gsm8k.py +0 -0
  120. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/image_dataset.py +0 -0
  121. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/imdb.py +3 -3
  122. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/__init__.py +0 -0
  123. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/alpaca.py +0 -0
  124. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/openai.py +0 -0
  125. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/sharegpt.py +0 -0
  126. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/llama/wikitext.py +2 -2
  127. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/dataset/nyuv2.py +0 -0
  128. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ada_svd/__init__.py +0 -0
  129. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ada_svd/clip_vision.py +0 -0
  130. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/clip_task_wise_adamerging.py +0 -0
  131. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/adamerging/task_wise_adamerging.py +0 -0
  132. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/analysis/__init__.py +0 -0
  133. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/analysis/task_vector_cos_similarity.py +0 -0
  134. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/analysis/task_vector_violin_plot.py +0 -0
  135. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/classification/__init__.py +0 -0
  136. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/classification/clip_finetune.py +0 -0
  137. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/concrete_subspace/__init__.py +0 -0
  138. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dare/__init__.py +1 -1
  139. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dare/simple_average.py +0 -0
  140. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dare/task_arithmetic.py +0 -0
  141. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dare/utils.py +0 -0
  142. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dawe/__init__.py +0 -0
  143. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dawe/dawe_for_clip.py +0 -0
  144. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dawe/warppers/dawe_model.py +0 -0
  145. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/depth_upscaling/__init__.py +0 -0
  146. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/depth_upscaling/depth_upscaling_for_llama.py +0 -0
  147. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/dummy.py +0 -0
  148. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ensemble.py +0 -0
  149. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/fisher_merging/__init__.py +0 -0
  150. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/fisher_merging/clip_fisher_merging.py +0 -0
  151. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/__init__.py +0 -0
  152. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/expo.py +0 -0
  153. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/linear_interpolation.py +0 -0
  154. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/simple_average_for_llama.py +0 -0
  155. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/linear/task_arithmetic_for_llama.py +0 -0
  156. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/lm_finetune/causal_lm_pretrain.py +0 -0
  157. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/mixture_of_experts/__init__.py +0 -0
  158. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/mixture_of_experts/mixtral_merging.py +0 -0
  159. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/mixture_of_experts/mixtral_upcycling.py +0 -0
  160. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/model_recombination.py +0 -0
  161. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/__init__.py +0 -0
  162. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/llama_magnitude_prune.py +0 -0
  163. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/llama_wanda_prune.py +0 -0
  164. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/prune_utils.py +0 -0
  165. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/__init__.py +0 -0
  166. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/ablate.py +0 -0
  167. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/layerwrapper.py +0 -0
  168. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/prune.py +0 -0
  169. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/prune_opt.py +0 -0
  170. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pruning/wanda_utils/sparsegpt.py +0 -0
  171. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/__init__.py +0 -0
  172. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/clip_pwe_moe.py +0 -0
  173. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/module.py +0 -0
  174. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/phn/__init__.py +0 -0
  175. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/phn/solvers.py +0 -0
  176. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/pwe_moe/utils.py +0 -0
  177. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/regmean/__init__.py +0 -0
  178. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/regmean/clip_regmean.py +0 -0
  179. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/regmean/gpt2_regmean.py +0 -0
  180. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/slerp/__init__.py +0 -0
  181. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/slerp/slerp.py +0 -0
  182. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/slerp/slerp_utils.py +0 -0
  183. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/smile_upscaling/__init__.py +0 -0
  184. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/smile_upscaling/singular_projection_merging.py +0 -0
  185. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/smile_upscaling/smile_mistral_upscaling.py +0 -0
  186. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/smile_upscaling/smile_upscaling.py +0 -0
  187. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/sparse_we_moe/__init__.py +0 -0
  188. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/sparse_we_moe/sparse_clip_we_moe.py +0 -0
  189. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/sparse_we_moe/sparse_we_moe.py +0 -0
  190. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/sparselo/__init__.py +0 -0
  191. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/sparselo/sparselo.py +0 -0
  192. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/task_arithmetic/__init__.py +0 -0
  193. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/task_arithmetic/task_arithmetic.py +0 -0
  194. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ties_merging/__init__.py +0 -0
  195. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/ties_merging/ties_merging_utils.py +0 -0
  196. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/trust_region/__init__.py +0 -0
  197. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/trust_region/utils.py +1 -1
  198. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/we_moe/__init__.py +0 -0
  199. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/weighted_average/__init__.py +0 -0
  200. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/weighted_average/llama.py +0 -0
  201. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/method/weighted_average/weighted_average.py +0 -0
  202. {fusion_bench-0.2.4/fusion_bench/method/lm_finetune → fusion_bench-0.2.6/fusion_bench/metrics}/__init__.py +0 -0
  203. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/__init__.py +0 -0
  204. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/depth.py +0 -0
  205. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/loss.py +0 -0
  206. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/noise.py +0 -0
  207. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/normal.py +0 -0
  208. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/nyuv2/segmentation.py +0 -0
  209. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py +0 -0
  210. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/text_to_image_generation/compressibility.py +0 -0
  211. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py +0 -0
  212. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/__init__.py +0 -0
  213. {fusion_bench-0.2.4/fusion_bench/metrics → fusion_bench-0.2.6/fusion_bench/mixins/optim}/__init__.py +0 -0
  214. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/optim/adamw_with_warmup.py +2 -2
  215. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/rich_live.py +0 -0
  216. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/serialization.py +0 -0
  217. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/mixins/simple_profiler.py +0 -0
  218. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/PeftModelForSeq2SeqLM.py +0 -0
  219. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/causal_lm/__init__.py +0 -0
  220. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/clip_vision/__init__.py +0 -0
  221. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/clip_vision/modelpool.py +0 -0
  222. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/huggingface_automodel.py +0 -0
  223. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/nyuv2_modelpool.py +0 -0
  224. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/seq2seq_lm/__init__.py +0 -0
  225. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/modelpool/seq2seq_lm/modelpool.py +0 -0
  226. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/__init__.py +0 -0
  227. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/hf_clip.py +0 -0
  228. {fusion_bench-0.2.4/fusion_bench/mixins/optim → fusion_bench-0.2.6/fusion_bench/models/linearized}/__init__.py +0 -0
  229. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/linearized/linearized_model_utils.py +0 -0
  230. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/__init__.py +1 -1
  231. {fusion_bench-0.2.4/fusion_bench/models/linearized → fusion_bench-0.2.6/fusion_bench/models/llama/model_utils}/__init__.py +0 -0
  232. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/model_utils/liger_kernel.py +0 -0
  233. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/model_utils/misc.py +1 -1
  234. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/llama/model_utils/mod.py +0 -0
  235. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/masks/__init__.py +0 -0
  236. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/masks/mask_model.py +0 -0
  237. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/__init__.py +0 -0
  238. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/configuration_losparse_llama.py +0 -0
  239. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/losparse_linear.py +0 -0
  240. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/modeling_losparse_llama.py +0 -0
  241. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/register.py +0 -0
  242. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_losparse_llama/utils.py +0 -0
  243. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_smile_mistral/__init__.py +0 -0
  244. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_smile_mistral/configuration_smile_mistral.py +0 -0
  245. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_smile_mistral/modeling_smile_mistral.py +0 -0
  246. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/modeling_smile_mistral/register.py +0 -0
  247. {fusion_bench-0.2.4/fusion_bench/models/llama/model_utils → fusion_bench-0.2.6/fusion_bench/models/nyuv2}/__init__.py +0 -0
  248. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/nyuv2/aspp.py +0 -0
  249. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/nyuv2/lightning_module.py +0 -0
  250. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/nyuv2/resnet.py +0 -0
  251. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/nyuv2/resnet_dilated.py +0 -0
  252. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/parameter_dict.py +0 -0
  253. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/separate_io.py +0 -0
  254. {fusion_bench-0.2.4/fusion_bench/models/nyuv2 → fusion_bench-0.2.6/fusion_bench/models/smile_moe}/__init__.py +0 -0
  255. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/smile_moe/linear.py +0 -0
  256. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/utils.py +0 -0
  257. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/we_moe.py +0 -0
  258. {fusion_bench-0.2.4/fusion_bench/models/smile_moe → fusion_bench-0.2.6/fusion_bench/models/wrappers}/__init__.py +0 -0
  259. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/wrappers/ensemble.py +0 -0
  260. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/models/wrappers/task_wise_fusion.py +0 -0
  261. {fusion_bench-0.2.4/fusion_bench/models/wrappers → fusion_bench-0.2.6/fusion_bench/optim}/__init__.py +0 -0
  262. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/optim/mezo.py +0 -0
  263. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/programs/__init__.py +0 -0
  264. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/programs/base_program.py +0 -0
  265. {fusion_bench-0.2.4/fusion_bench/optim → fusion_bench-0.2.6/fusion_bench/scripts}/__init__.py +0 -0
  266. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/scripts/cli.py +0 -0
  267. {fusion_bench-0.2.4/fusion_bench/scripts → fusion_bench-0.2.6/fusion_bench/scripts/clip}/__init__.py +0 -0
  268. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/scripts/clip/convert_checkpoint.py +0 -0
  269. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/scripts/imgui.py +0 -0
  270. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/scripts/nyuv2_mtl_train.py +0 -0
  271. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/scripts/webui.py +0 -0
  272. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/base_pool.py +0 -0
  273. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/clip_vision/clip_sparse_wemoe_taskpool.py +0 -0
  274. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/dummy.py +0 -0
  275. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/gpt2_text_classification.py +0 -0
  276. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/llama/__init__.py +0 -0
  277. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/llama/test_generation.py +1 -1
  278. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/taskpool/nyuv2_taskpool.py +0 -0
  279. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/__init__.py +0 -0
  280. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/base_task.py +0 -0
  281. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/classification.py +0 -0
  282. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/__init__.py +0 -0
  283. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/cifar10.py +0 -0
  284. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/cifar100.py +0 -0
  285. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/clip_dataset.py +0 -0
  286. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/dtd.py +0 -0
  287. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/eurosat.py +0 -0
  288. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/flower102.py +0 -0
  289. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/gtsrb.py +0 -0
  290. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/imagenet.py +0 -0
  291. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/mnist.py +0 -0
  292. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/oxford_iiit_pet.py +0 -0
  293. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/rendered_sst2.py +0 -0
  294. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/resisc45.py +0 -0
  295. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/stanford_cars.py +0 -0
  296. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/stl10.py +0 -0
  297. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/sun397.py +0 -0
  298. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/svhn.py +0 -0
  299. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/clip_classification/tiny_imagenet.py +0 -0
  300. {fusion_bench-0.2.4/fusion_bench/scripts/clip → fusion_bench-0.2.6/fusion_bench/tasks/flan_t5_text_generation}/__init__.py +0 -0
  301. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/flan_t5_text_generation/datasets_preprocess.py +0 -0
  302. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py +0 -0
  303. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py +0 -0
  304. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py +0 -0
  305. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/__init__.py +0 -0
  306. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/auto.py +0 -0
  307. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/cache_utils.py +0 -0
  308. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/data.py +0 -0
  309. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/functools.py +0 -0
  310. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/hydra_utils.py +0 -0
  311. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/instantiate.py +0 -0
  312. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/json.py +0 -0
  313. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/lazy_imports.py +0 -0
  314. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/misc.py +0 -0
  315. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/packages.py +0 -0
  316. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/path.py +0 -0
  317. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/pylogger.py +0 -0
  318. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/rich_utils.py +0 -0
  319. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/strenum/_name_mangler.py +0 -0
  320. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/strenum/_version.py +0 -0
  321. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/timer.py +0 -0
  322. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench/utils/type.py +0 -0
  323. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/dependency_links.txt +0 -0
  324. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/entry_points.txt +0 -0
  325. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/requires.txt +0 -0
  326. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench.egg-info/top_level.txt +0 -0
  327. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/README.md +0 -0
  328. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/cifar10.yaml +0 -0
  329. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/cifar100.yaml +0 -0
  330. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/dtd.yaml +0 -0
  331. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/eurosat.yaml +0 -0
  332. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/gtsrb.yaml +0 -0
  333. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/mnist.yaml +0 -0
  334. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/resisc45.yaml +0 -0
  335. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/stanford-cars.yaml +0 -0
  336. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/sun397.yaml +0 -0
  337. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/svhn.yaml +0 -0
  338. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/the_eight_tasks.yaml +0 -0
  339. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/test/tiny-imagenet.yaml +0 -0
  340. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/cifar10.yaml +0 -0
  341. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/cifar100.yaml +0 -0
  342. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/dtd.yaml +0 -0
  343. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/eurosat.yaml +0 -0
  344. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/gtsrb.yaml +0 -0
  345. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/mnist.yaml +0 -0
  346. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/resisc45.yaml +0 -0
  347. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/stanford-cars.yaml +0 -0
  348. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/sun397.yaml +0 -0
  349. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/svhn.yaml +0 -0
  350. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/the_eight_tasks.yaml +0 -0
  351. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/train/tiny-imagenet.yaml +0 -0
  352. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/dtd.yaml +0 -0
  353. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/eurosat.yaml +0 -0
  354. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/gtsrb.yaml +0 -0
  355. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/mnist.yaml +0 -0
  356. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/resisc45.yaml +0 -0
  357. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/stanford-cars.yaml +0 -0
  358. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/sun397.yaml +0 -0
  359. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/svhn.yaml +0 -0
  360. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/image_classification/val/the_eight_tasks.yaml +0 -0
  361. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/question_answering/search_qa.yaml +0 -0
  362. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/question_answering/test/search_qa.yaml +0 -0
  363. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/question_answering/train/MetaMathQA.yaml +0 -0
  364. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/question_answering/train/search_qa.yaml +0 -0
  365. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/question_answering/val/search_qa.yaml +0 -0
  366. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/summarization/test/xsum.yaml +0 -0
  367. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/summarization/train/xsum.yaml +0 -0
  368. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/summarization/val/xsum.yaml +0 -0
  369. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/summarization/xsum.yaml +0 -0
  370. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/test/gsm-hard.yaml +0 -0
  371. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/test/gsm8k.yaml +0 -0
  372. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/test/gsm8k_question_label.yaml +0 -0
  373. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/train/CodeAlpaca-20k.yaml +0 -0
  374. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/train/gsm8k.yaml +0 -0
  375. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/dataset/text_generation/train/gsm8k_question_label.yaml +0 -0
  376. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/hydra/default.yaml +0 -0
  377. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/hydra/help/fusion_bench_help.yaml +0 -0
  378. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/hydra/job_logging/rich_logging.yaml +0 -0
  379. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/llama_magnitude_pruning.yaml +0 -0
  380. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/llama_model_fusion.yaml +0 -0
  381. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/llama_weighted_average.yaml +0 -0
  382. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/ada_svd/clip_vision.yaml +0 -0
  383. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/adamerging/clip.yaml +0 -0
  384. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/adamerging/llama_sft.yaml +0 -0
  385. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/adamerging.yaml +0 -0
  386. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/analysis/task_vector_cos_similarity.yaml +0 -0
  387. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/analysis/task_vector_violin_plot.yaml +0 -0
  388. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/clip_finetune.yaml +0 -0
  389. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml +0 -0
  390. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml +0 -0
  391. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml +0 -0
  392. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/dare/simple_average.yaml +0 -0
  393. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/dare/task_arithmetic.yaml +0 -0
  394. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/dawe/dawe_for_clip.yaml +0 -0
  395. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/depth_upscaling.yaml +0 -0
  396. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/dummy.yaml +0 -0
  397. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/ensemble/max_model_predictor.yaml +0 -0
  398. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/ensemble/simple_ensemble.yaml +0 -0
  399. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/ensemble/weighted_ensemble.yaml +0 -0
  400. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/fisher_merging/clip_fisher_merging.yaml +0 -0
  401. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/fisher_merging/fisher_merging.yaml +0 -0
  402. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml +0 -0
  403. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/expo.yaml +0 -0
  404. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/linear_interpolation.yaml +0 -0
  405. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/llama_expo.yaml +0 -0
  406. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/llama_expo_with_dare.yaml +0 -0
  407. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/simple_average_for_llama.yaml +0 -0
  408. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/task_arithmetic_for_llama.yaml +0 -0
  409. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/weighted_average.yaml +0 -0
  410. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/linear/weighted_average_for_llama.yaml +0 -0
  411. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/mixtral_moe_merging.yaml +0 -0
  412. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/mixtral_moe_upscaling.yaml +0 -0
  413. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/model_recombination.yaml +0 -0
  414. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml +0 -0
  415. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/pruning/llama_random_pruning.yaml +0 -0
  416. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/pruning/llama_wanda_pruning.yaml +0 -0
  417. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/pwe_moe_ls_for_clip.yaml +0 -0
  418. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/regmean/gpt2_regmean.yaml +0 -0
  419. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/regmean/regmean.yaml +0 -0
  420. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/simple_average.yaml +0 -0
  421. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/slerp/slerp.yaml +0 -0
  422. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/smile_upscaling/singular_projection_merging.yaml +0 -0
  423. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/smile_upscaling/smile_mistral_upscaling.yaml +0 -0
  424. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/smile_upscaling/smile_upscaling.yaml +0 -0
  425. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/sparselo_pruning/llama_iterative_sparselo.yaml +0 -0
  426. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/sparselo_pruning/llama_pcp_sparselo.yaml +0 -0
  427. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/sparselo_pruning/llama_sparselo.yaml +0 -0
  428. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/task_arithmetic.yaml +0 -0
  429. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/ties_merging.yaml +0 -0
  430. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/trust_region/clip_task_arithmetic.yaml +0 -0
  431. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/wemoe/sparse_weight_ensembling_moe.yaml +0 -0
  432. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/method/wemoe/weight_ensembling_moe.yaml +0 -0
  433. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16.yaml +0 -0
  434. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_dtd.yaml +0 -0
  435. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eight_tasks.yaml +0 -0
  436. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eurosat.yaml +0 -0
  437. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_gtsrb.yaml +0 -0
  438. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_mnist.yaml +0 -0
  439. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_resisc45.yaml +0 -0
  440. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_stanford-cars.yaml +0 -0
  441. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_sun397.yaml +0 -0
  442. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_svhn.yaml +0 -0
  443. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32.yaml +0 -0
  444. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_dtd.yaml +0 -0
  445. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eight_tasks.yaml +0 -0
  446. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eurosat.yaml +0 -0
  447. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_gtsrb.yaml +0 -0
  448. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_mnist.yaml +0 -0
  449. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_resisc45.yaml +0 -0
  450. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_stanford-cars.yaml +0 -0
  451. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_sun397.yaml +0 -0
  452. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_svhn.yaml +0 -0
  453. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14.yaml +0 -0
  454. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_dtd.yaml +0 -0
  455. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eight_tasks.yaml +0 -0
  456. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eurosat.yaml +0 -0
  457. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_gtsrb.yaml +0 -0
  458. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_mnist.yaml +0 -0
  459. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_resisc45.yaml +0 -0
  460. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_stanford-cars.yaml +0 -0
  461. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_sun397.yaml +0 -0
  462. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_svhn.yaml +0 -0
  463. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/clip-vit/generate_vit_model_config.sh +0 -0
  464. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base.yaml +0 -0
  465. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola.yaml +0 -0
  466. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola_lora-16.yaml +0 -0
  467. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli.yaml +0 -0
  468. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli_lora-16.yaml +0 -0
  469. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc.yaml +0 -0
  470. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc_lora-16.yaml +0 -0
  471. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli.yaml +0 -0
  472. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli_lora-16.yaml +0 -0
  473. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp.yaml +0 -0
  474. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp_lora-16.yaml +0 -0
  475. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte.yaml +0 -0
  476. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte_lora-16.yaml +0 -0
  477. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2.yaml +0 -0
  478. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2_lora-16.yaml +0 -0
  479. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb.yaml +0 -0
  480. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb_lora-16.yaml +0 -0
  481. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large.yaml +0 -0
  482. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-cola_lora-16.yaml +0 -0
  483. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mnli_lora-16.yaml +0 -0
  484. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mrpc_lora-16.yaml +0 -0
  485. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qnli_lora-16.yaml +0 -0
  486. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qqp_lora-16.yaml +0 -0
  487. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-rte_lora-16.yaml +0 -0
  488. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-sst2_lora-16.yaml +0 -0
  489. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-stsb_lora-16.yaml +0 -0
  490. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/model/flan-t5/generate_flan-t5.sh +0 -0
  491. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/_template.yaml +0 -0
  492. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8.yaml +0 -0
  493. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual.yaml +0 -0
  494. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8.yaml +0 -0
  495. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_control_task.yaml +0 -0
  496. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_model_only.yaml +0 -0
  497. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp1.yaml +0 -0
  498. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp2.yaml +0 -0
  499. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_individual.yaml +0 -0
  500. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_mtl.yaml +0 -0
  501. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
  502. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
  503. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml +0 -0
  504. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
  505. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8.yaml +0 -0
  506. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8_model_only.yaml +0 -0
  507. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_individual.yaml +0 -0
  508. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CausalLMPool/llama_for_causallm.yaml +0 -0
  509. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CausalLMPool/simle_mixtral_exp_v4.yaml +0 -0
  510. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/CausalLMPool/single_llama_model.yaml +0 -0
  511. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/Seq2SeqLMPool/_template.yaml +0 -0
  512. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue.yaml +0 -0
  513. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16.yaml +0 -0
  514. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_individual.yaml +0 -0
  515. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-large_glue_lora16.yaml +0 -0
  516. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/automodelpool.yaml +0 -0
  517. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/gpt-2_glue.yaml +0 -0
  518. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/mixtral_moe_merging.yaml +0 -0
  519. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/mixtral_moe_upscaling.yaml +0 -0
  520. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/nyuv2_modelpool.yaml +0 -0
  521. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/smile_mistral_exp_v1.yaml +0 -0
  522. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/smile_mistral_exp_v2.yaml +0 -0
  523. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/smile_mistral_exp_v3.yaml +0 -0
  524. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/modelpool/smile_mistral_exp_v4.yaml +0 -0
  525. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/nyuv2_config.yaml +0 -0
  526. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/nyuv2_mtl_train.yaml +0 -0
  527. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/_template.yaml +0 -0
  528. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8.yaml +0 -0
  529. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_B16.yaml +0 -0
  530. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_L14.yaml +0 -0
  531. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_val.yaml +0 -0
  532. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_with_control_task.yaml +0 -0
  533. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_sparse_wemoe_clip-vit-classification_TA8.yaml +0 -0
  534. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
  535. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
  536. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
  537. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/dummy.yaml +0 -0
  538. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/gpt-2_glue.yaml +0 -0
  539. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/fusion_bench_config/taskpool/nyuv2_taskpool.yaml +0 -0
  540. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/setup.cfg +0 -0
  541. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/tests/test_depth_upscaling.py +0 -0
  542. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/tests/test_simple_average.py +0 -0
  543. {fusion_bench-0.2.4 → fusion_bench-0.2.6}/tests/test_weighed_ensemble.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fusion_bench
3
- Version: 0.2.4
3
+ Version: 0.2.6
4
4
  Summary: A Comprehensive Benchmark of Deep Model Fusion
5
5
  Author-email: Anke Tang <tang.anke@foxmail.com>
6
6
  License: MIT License
@@ -50,7 +50,7 @@ Requires-Dist: pytest
50
50
 
51
51
  # FusionBench: A Comprehensive Benchmark/ToolKit of Deep Model Fusion
52
52
 
53
- [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
53
+ [![arXiv](https://img.shields.io/badge/arXiv-2406.03280-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
54
54
  [![GitHub License](https://img.shields.io/github/license/tanganke/fusion_bench)](https://github.com/tanganke/fusion_bench/blob/main/LICENSE)
55
55
  [![PyPI - Version](https://img.shields.io/pypi/v/fusion-bench)](https://pypi.org/project/fusion-bench/)
56
56
  [![Downloads](https://static.pepy.tech/badge/fusion-bench/month)](https://pepy.tech/project/fusion-bench)
@@ -67,7 +67,26 @@ Requires-Dist: pytest
67
67
 
68
68
  FusionBench is a benchmark suite designed to evaluate the performance of various deep model fusion techniques. It aims to provide a comprehensive comparison of different methods on a variety of datasets and tasks.
69
69
 
70
- Projects based on FusionBench:
70
+ Projects based on FusionBench and news from the community (descending order of date):
71
+
72
+ <details>
73
+ <summary>Hongling Zheng, Li Shen, Anke Tang, Yong Luo et al. Learn From Model Beyond Fine-Tuning: A Survey. has been accepted for publication in Nature Machine Intelligence. Nov, 2024. https://arxiv.org/abs/2310.08184</summary>
74
+
75
+ > Foundation models (FM) have demonstrated remarkable performance across a wide range of tasks (especially in the fields
76
+ of natural language processing and computer vision), primarily attributed to their ability to comprehend instructions and access
77
+ extensive, high-quality data. This not only showcases their current effectiveness but also sets a promising trajectory towards the
78
+ development of artificial general intelligence. Unfortunately, due to multiple constraints, the raw data of the model used for large model
79
+ training are often inaccessible, so the use of end-to-end models for downstream tasks has become a new research trend, which we call
80
+ Learn From Model (LFM) in this article. LFM focuses on the research, modification, and design of FM based on the model interface,
81
+ so as to better understand the model structure and weights (in a black box environment), and to generalize the model to downstream
82
+ tasks. The study of LFM techniques can be broadly categorized into five major areas: model tuning, model distillation, model reuse,
83
+ meta learning and model editing. Each category encompasses a repertoire of methods and strategies that aim to enhance the
84
+ capabilities and performance of FM. This paper gives a comprehensive review of the current methods based on FM from the
85
+ perspective of LFM, in order to help readers better understand the current research status and ideas. To conclude, we summarize the
86
+ survey by highlighting several critical areas for future exploration and addressing open issues that require further attention from the
87
+ research community. The relevant papers we investigated in this article can be accessed at
88
+ https://github.com/ruthless-man/Awesome-Learn-from-Model.
89
+ </details>
71
90
 
72
91
  <details>
73
92
  <summary>Li Shen, Anke Tang, Enneng Yang et al. Efficient and Effective Weight-Ensembling Mixture of Experts for Multi-Task Model Merging. Oct, 2024. https://github.com/EnnengYang/Efficient-WEMoE</summary>
@@ -2,7 +2,7 @@
2
2
 
3
3
  # FusionBench: A Comprehensive Benchmark/ToolKit of Deep Model Fusion
4
4
 
5
- [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
5
+ [![arXiv](https://img.shields.io/badge/arXiv-2406.03280-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
6
6
  [![GitHub License](https://img.shields.io/github/license/tanganke/fusion_bench)](https://github.com/tanganke/fusion_bench/blob/main/LICENSE)
7
7
  [![PyPI - Version](https://img.shields.io/pypi/v/fusion-bench)](https://pypi.org/project/fusion-bench/)
8
8
  [![Downloads](https://static.pepy.tech/badge/fusion-bench/month)](https://pepy.tech/project/fusion-bench)
@@ -19,7 +19,26 @@
19
19
 
20
20
  FusionBench is a benchmark suite designed to evaluate the performance of various deep model fusion techniques. It aims to provide a comprehensive comparison of different methods on a variety of datasets and tasks.
21
21
 
22
- Projects based on FusionBench:
22
+ Projects based on FusionBench and news from the community (descending order of date):
23
+
24
+ <details>
25
+ <summary>Hongling Zheng, Li Shen, Anke Tang, Yong Luo et al. Learn From Model Beyond Fine-Tuning: A Survey. has been accepted for publication in Nature Machine Intelligence. Nov, 2024. https://arxiv.org/abs/2310.08184</summary>
26
+
27
+ > Foundation models (FM) have demonstrated remarkable performance across a wide range of tasks (especially in the fields
28
+ of natural language processing and computer vision), primarily attributed to their ability to comprehend instructions and access
29
+ extensive, high-quality data. This not only showcases their current effectiveness but also sets a promising trajectory towards the
30
+ development of artificial general intelligence. Unfortunately, due to multiple constraints, the raw data of the model used for large model
31
+ training are often inaccessible, so the use of end-to-end models for downstream tasks has become a new research trend, which we call
32
+ Learn From Model (LFM) in this article. LFM focuses on the research, modification, and design of FM based on the model interface,
33
+ so as to better understand the model structure and weights (in a black box environment), and to generalize the model to downstream
34
+ tasks. The study of LFM techniques can be broadly categorized into five major areas: model tuning, model distillation, model reuse,
35
+ meta learning and model editing. Each category encompasses a repertoire of methods and strategies that aim to enhance the
36
+ capabilities and performance of FM. This paper gives a comprehensive review of the current methods based on FM from the
37
+ perspective of LFM, in order to help readers better understand the current research status and ideas. To conclude, we summarize the
38
+ survey by highlighting several critical areas for future exploration and addressing open issues that require further attention from the
39
+ research community. The relevant papers we investigated in this article can be accessed at
40
+ https://github.com/ruthless-man/Awesome-Learn-from-Model.
41
+ </details>
23
42
 
24
43
  <details>
25
44
  <summary>Li Shen, Anke Tang, Enneng Yang et al. Efficient and Effective Weight-Ensembling Mixture of Experts for Multi-Task Model Merging. Oct, 2024. https://github.com/EnnengYang/Efficient-WEMoE</summary>
@@ -1,3 +1,5 @@
1
+ import warnings
2
+
1
3
  from omegaconf import DictConfig
2
4
 
3
5
  from .base_algorithm import ModelFusionAlgorithm
@@ -16,35 +18,18 @@ class AlgorithmFactory:
16
18
  "clip_finetune": ".classification.clip_finetune.ImageClassificationFineTuningForCLIP",
17
19
  # analysis
18
20
  # model merging methods
19
- "simple_average": ".simple_average.SimpleAverageAlgorithm",
20
- "weighted_average": ".weighted_average.weighted_average.WeightedAverageAlgorithm",
21
- "weighted_average_for_llama": ".weighted_average.llama.WeightedAverageForLLama",
22
- "task_arithmetic": ".task_arithmetic.TaskArithmeticAlgorithm",
23
- "ties_merging": ".ties_merging.ties_merging.TiesMergingAlgorithm",
24
21
  "clip_task_wise_adamerging": ".adamerging.clip_task_wise_adamerging.CLIPTaskWiseAdaMergingAlgorithm",
25
22
  "clip_layer_wise_adamerging": ".adamerging.clip_layer_wise_adamerging.CLIPLayerWiseAdaMergingAlgorithm",
26
23
  "singular_projection_merging": "fusion_bench.method.smile_upscaling.singular_projection_merging.SingularProjectionMergingAlgorithm",
27
- "pwe_moe_ls_for_clip": ".pwe_moe.clip_pwe_moe.PWEMoELinearScalarizationForCLIP",
28
- "pwe_moe_epo_for_clip": ".pwe_moe.clip_pwe_moe.PWEMoExactParetoOptimalForCLIP",
29
24
  # plug-and-play model merging methods
30
25
  "clip_concrete_task_arithmetic": ".concrete_subspace.clip_concrete_task_arithmetic.ConcreteTaskArithmeticAlgorithmForCLIP",
31
26
  "clip_concrete_task_wise_adamerging": ".concrete_subspace.clip_concrete_adamerging.ConcreteTaskWiseAdaMergingForCLIP",
32
27
  "clip_concrete_layer_wise_adamerging": ".concrete_subspace.clip_concrete_adamerging.ConcreteLayerWiseAdaMergingForCLIP",
33
28
  # model mixing methods
34
- "depth_upscaling": ".depth_upscaling.DepthUpscalingAlgorithm",
35
- "mixtral_moe_upscaling": ".mixture_of_experts.mixtral_upcycling.MixtralUpscalingAlgorithm",
36
- "mixtral_for_causal_lm_moe_upscaling": ".mixture_of_experts.mixtral_upcycling.MixtralForCausalLMUpscalingAlgorithm",
37
- "mixtral_moe_merging": ".mixture_of_experts.mixtral_merging.MixtralMoEMergingAlgorithm",
38
- "mixtral_for_causal_lm_merging": ".mixture_of_experts.mixtral_merging.MixtralForCausalLMMergingAlgorithm",
39
29
  "clip_weight_ensembling_moe": ".we_moe.clip_we_moe.CLIPWeightEnsemblingMoEAlgorithm",
40
- "model_recombination": ".model_recombination.ModelRecombinationAlgorithm",
41
- "smile_upscaling": ".smile_upscaling.smile_upscaling.SmileUpscalingAlgorithm",
42
30
  "sparse_clip_weight_ensembling_moe": "fusion_bench.method.SparseCLIPWeightEnsemblingMoEAlgorithm",
43
31
  "smile_mistral_upscaling": ".smile_upscaling.smile_mistral_upscaling.SmileMistralUpscalingAlgorithm",
44
- # pruning methods
45
- "magnitude_diff_pruning": ".pruning.MagnitudeDiffPruningAlgorithm",
46
- "magnitude_pruning_for_llama": ".pruning.llama_magnitude_prune.MagnitudePruningForLlama",
47
- "wanda_pruning_for_llama": ".pruning.llama_wanda_prune.WandaPruningForLlama",
32
+ "rankone_moe": ".rankone_moe.clip_rankone_moe.CLIPRankOneMoEAlgorithm",
48
33
  }
49
34
 
50
35
  @staticmethod
@@ -61,6 +46,12 @@ class AlgorithmFactory:
61
46
  Raises:
62
47
  ValueError: If 'name' attribute is not found in the configuration or does not match any known algorithm names.
63
48
  """
49
+ warnings.warn(
50
+ "AlgorithmFactory.create_algorithm() is deprecated and will be removed in future versions. "
51
+ "Please implement new model fusion algorithm using `fusion_bench.method.BaseModelFusionAlgorithm` instead.",
52
+ DeprecationWarning,
53
+ )
54
+
64
55
  from fusion_bench.utils import import_object
65
56
 
66
57
  algorithm_name = method_config.name
@@ -26,7 +26,6 @@ class ModelFusionAlgorithm(ABC):
26
26
  algorithm_config (Optional[DictConfig]): Configuration for the algorithm. Defaults to an empty configuration if not provided.
27
27
  Get access to the configuration using `self.config`.
28
28
  """
29
- super().__init__()
30
29
  if algorithm_config is None:
31
30
  algorithm_config = DictConfig({})
32
31
  self.config = algorithm_config
@@ -42,6 +41,9 @@ class ModelFusionAlgorithm(ABC):
42
41
  Args:
43
42
  modelpool: The pool of models to fuse.
44
43
 
44
+ Returns:
45
+ The fused model.
46
+
45
47
  Examples:
46
48
  >>> algorithm = SimpleAverageAlgorithm()
47
49
  >>> modelpool = ModelPool()
@@ -1,8 +1,10 @@
1
1
  # flake8: noqa F401
2
+ import warnings
3
+
2
4
  from omegaconf import DictConfig
3
5
 
4
6
  from fusion_bench.modelpool.huggingface_gpt2_classification import (
5
- HuggingFaceGPT2ClassificationPool,
7
+ GPT2ForSequenceClassificationPool,
6
8
  )
7
9
  from fusion_bench.modelpool.PeftModelForSeq2SeqLM import PeftModelForSeq2SeqLMPool
8
10
 
@@ -22,7 +24,7 @@ class ModelPoolFactory:
22
24
  _modelpool = {
23
25
  "NYUv2ModelPool": ".nyuv2_modelpool.NYUv2ModelPool",
24
26
  "huggingface_clip_vision": HuggingFaceClipVisionPool,
25
- "HF_GPT2ForSequenceClassification": HuggingFaceGPT2ClassificationPool,
27
+ "HF_GPT2ForSequenceClassification": GPT2ForSequenceClassificationPool,
26
28
  "AutoModelPool": ".huggingface_automodel.AutoModelPool",
27
29
  # CausualLM
28
30
  "AutoModelForCausalLMPool": ".huggingface_llm.AutoModelForCausalLMPool",
@@ -50,6 +52,12 @@ class ModelPoolFactory:
50
52
  Raises:
51
53
  ValueError: If 'type' attribute is not found in the configuration or does not match any known model pool types.
52
54
  """
55
+ warnings.warn(
56
+ "ModelPoolFactory.create_modelpool() is deprecated and will be removed in future versions. "
57
+ "Please implement new model pool using `fusion_bench.modelpool.BaseModelPool` instead.",
58
+ DeprecationWarning,
59
+ )
60
+
53
61
  from fusion_bench.utils import import_object
54
62
 
55
63
  modelpool_type = modelpool_config.get("type")
@@ -14,6 +14,7 @@ class TaskPool:
14
14
  config (DictConfig): The configuration for the task pool.
15
15
  _all_task_names (List[str]): A list of all task names in the task pool.
16
16
  """
17
+
17
18
  _program = None
18
19
 
19
20
  def __init__(self, taskpool_config: DictConfig):
@@ -154,7 +154,7 @@ class CLIPImageClassificationTaskPool(TaskPool):
154
154
 
155
155
  return task
156
156
 
157
- def evaluate(self, model: CLIPVisionModel):
157
+ def evaluate(self, model: CLIPVisionModel, name=None):
158
158
  """
159
159
  Evaluate the model on the image classification task.
160
160
 
@@ -178,10 +178,29 @@ class CLIPImageClassificationTaskPool(TaskPool):
178
178
  "all_params": all_params,
179
179
  "trainable_percentage": training_params / all_params,
180
180
  }
181
+ if name is not None:
182
+ report["model_info"]["name"] = name
181
183
  for task_name in tqdm(self.task_names, desc="Evaluating tasks"):
182
184
  task = self.load_task(task_name)
183
185
  result = task.evaluate(self.clip_model)
184
186
  report[task_name] = result
187
+
188
+ # calculate the average accuracy and loss
189
+ if "average" not in report:
190
+ report["average"] = {}
191
+ accuracies = [
192
+ value["accuracy"]
193
+ for key, value in report.items()
194
+ if "accuracy" in value
195
+ ]
196
+ if len(accuracies) > 0:
197
+ average_accuracy = sum(accuracies) / len(accuracies)
198
+ report["average"]["accuracy"] = average_accuracy
199
+ losses = [value["loss"] for key, value in report.items() if "loss" in value]
200
+ if len(losses) > 0:
201
+ average_loss = sum(losses) / len(losses)
202
+ report["average"]["loss"] = average_loss
203
+
185
204
  log.info(f"Results for taskpool {self.config.name}: {report}")
186
205
  if self._fabric.is_global_zero and len(self._fabric._loggers) > 0:
187
206
  with open(
@@ -0,0 +1,6 @@
1
+ from .arc_agi import (
2
+ load_tokenized_arc_agi_dataset,
3
+ load_tokenized_arc_agi_dataset_for_ttt,
4
+ process_task,
5
+ process_task_for_ttt,
6
+ )
@@ -0,0 +1,303 @@
1
+ """
2
+ This module contains classes to represent ARC tasks and examples
3
+
4
+ Grid: a numpy array representing a grid
5
+ Example: a class to represent an example (example.input and example.output are grids)
6
+ Task: a class to represent a task (task.test_example and task.train_examples are test and train examples)
7
+ read_from_single_file: a function to read challenge problems and solutions from a single file
8
+ make_submission: a function to create a submission file
9
+ """
10
+
11
+ import dataclasses
12
+ import glob
13
+ import json
14
+ import os
15
+ from typing import List, Optional
16
+
17
+ import numpy as np
18
+
19
+ Grid = np.ndarray
20
+
21
+
22
+ def to_tuple(arr):
23
+ return tuple(tuple([int(e) for e in row]) for row in arr)
24
+
25
+
26
+ def to_list(arr):
27
+ return [[int(e) for e in row] for row in arr]
28
+
29
+
30
+ @dataclasses.dataclass
31
+ class Example:
32
+ """
33
+ class to represent an example
34
+ """
35
+
36
+ input: Grid
37
+ output: Grid
38
+ cot: Optional[List[Grid]] = None
39
+
40
+ def input_size(self) -> int:
41
+ """return the size of the input grid"""
42
+ return self.input.size
43
+
44
+ def output_size(self) -> int:
45
+ """return the size of the output grid"""
46
+ return self.output.size
47
+
48
+ def size(self) -> int:
49
+ """return the size of the example"""
50
+ return max(self.input_size(), self.output_size())
51
+
52
+ def __hash__(self) -> int:
53
+ return hash((self.input.tobytes(), self.output.tobytes()))
54
+
55
+ def __repr__(self) -> str:
56
+ return f"Example(input={self.input}, output={self.output})"
57
+
58
+ def serialize(self) -> dict:
59
+ example = {"input": self.input.tolist(), "output": self.output.tolist()}
60
+
61
+ if self.cot:
62
+ example["cot"] = [cot.tolist() for cot in self.cot]
63
+
64
+ return example
65
+
66
+ def __eq__(self, other: object) -> bool:
67
+ if not isinstance(other, Example):
68
+ return NotImplemented
69
+ return np.array_equal(self.input, other.input) and np.array_equal(
70
+ self.output, other.output
71
+ )
72
+
73
+ @classmethod
74
+ def deserialize(cls, data: dict, test: bool = False) -> "Example":
75
+ input = np.array(data["input"])
76
+ if test:
77
+ output = input.copy()
78
+ elif "output" in data:
79
+ output = np.array(data["output"])
80
+ else:
81
+ output = input.copy()
82
+ cot = None
83
+ if "cot" in data:
84
+ cot = [np.array(c) for c in data["cot"]]
85
+ return cls(input, output, cot)
86
+
87
+
88
+ @dataclasses.dataclass
89
+ class Task:
90
+ """
91
+ A class to represent a task
92
+ """
93
+
94
+ test_example: Example
95
+ train_examples: List[Example] = dataclasses.field(default_factory=list)
96
+ name: str = ""
97
+
98
+ def size(self) -> int:
99
+ """return the size of the task"""
100
+ return max([example.size() for example in self.train_examples])
101
+
102
+ def max_height(self) -> int:
103
+ max_x = 0
104
+ for example in self.train_examples:
105
+ x, _ = example.input.shape
106
+ max_x = max(max_x, x)
107
+ x, _ = example.output.shape
108
+ max_x = max(max_x, x)
109
+ # include test too
110
+ x, _ = self.test_example.input.shape
111
+ max_x = max(max_x, x)
112
+ x, _ = self.test_example.output.shape
113
+ max_x = max(max_x, x)
114
+ return max_x
115
+
116
+ def max_width(self) -> int:
117
+ max_y = 0
118
+ for example in self.train_examples:
119
+ _, y = example.input.shape
120
+ max_y = max(max_y, y)
121
+ _, y = example.output.shape
122
+ max_y = max(max_y, y)
123
+ # include test too
124
+ _, y = self.test_example.input.shape
125
+ max_y = max(max_y, y)
126
+ _, y = self.test_example.output.shape
127
+ max_y = max(max_y, y)
128
+ return max_y
129
+
130
+ def __repr__(self) -> str:
131
+ return f"Task(train={self.train_examples}, test={self.test_example})"
132
+
133
+ def serialize(self) -> dict:
134
+ return {
135
+ "train": [train.serialize() for train in self.train_examples],
136
+ "test": [self.test_example.serialize()],
137
+ "name": self.name,
138
+ }
139
+
140
+ def __hash__(self) -> int:
141
+ return hash((tuple(train for train in self.train_examples), self.test_example))
142
+
143
+ @classmethod
144
+ def deserialize(cls, data: dict, test: bool = False) -> "Task":
145
+ assert len(data["test"]) == 1, "Only one test example is allowed"
146
+ train = [Example.deserialize(train) for train in data["train"]]
147
+ test = Example.deserialize(data["test"][0], test=test)
148
+ return cls(train_examples=train, test_example=test, name=data.get("name", ""))
149
+
150
+ @classmethod
151
+ def read_tasks_from_dict(cls, data: dict, test: bool = False) -> List["Task"]:
152
+ tasks = []
153
+ for test_data in data["test"]:
154
+ task = cls.deserialize(
155
+ {
156
+ "train": data["train"],
157
+ "test": [test_data],
158
+ "name": data.get("name", ""),
159
+ },
160
+ test=test,
161
+ )
162
+ tasks.append(task)
163
+ return tasks
164
+
165
+ def entropy(self) -> float:
166
+ """return the entropy of the outputs"""
167
+ outputs = [example.output.flatten() for example in self.train_examples]
168
+ outputs.append(self.test_example.output.flatten())
169
+ vocabulary = np.unique(np.concatenate(outputs)).tolist()
170
+ # find max output length
171
+ max_output_length = max([len(output) for output in outputs])
172
+ probs = np.zeros((len(vocabulary), max_output_length))
173
+ # get the probes for each integer of each index
174
+ for i, output in enumerate(outputs):
175
+ for j, value in enumerate(output):
176
+ index_of_value = vocabulary.index(value)
177
+ probs[index_of_value, j] += 1
178
+
179
+ # normalize
180
+ probs = probs / probs.sum(axis=0)
181
+ # get the entropy
182
+ entropy = -np.sum(probs * np.log(probs + 1e-9), axis=0)
183
+
184
+ # mean entropy
185
+ return np.mean(entropy)
186
+
187
+
188
+ @dataclasses.dataclass
189
+ class TaskWithDescription(Task):
190
+ description: str = ""
191
+
192
+
193
+ def read_tasks_from_folder(task_folder: str, test: bool = False) -> List[Task]:
194
+ """
195
+ Read tasks from a folder
196
+ """
197
+ all_tasks = []
198
+ for file in glob.glob(f"{task_folder}/*.json"):
199
+ basename = os.path.basename(file)
200
+ idx = basename.replace(".json", "")
201
+ tasks = read_tasks_from_file(file, test=test)
202
+ for i, task in enumerate(tasks):
203
+ task.name = idx + "-" + str(i)
204
+ all_tasks += tasks
205
+ return all_tasks
206
+
207
+
208
+ def read_tasks_from_single_file(
209
+ challenge_file: str, test: bool = False, solution_file: Optional[str] = None
210
+ ) -> List[Task]:
211
+ """
212
+ Read tasks from a single file
213
+ """
214
+ with open(challenge_file, "r", encoding="utf-8") as handle:
215
+ data = json.load(handle)
216
+
217
+ if solution_file is not None:
218
+ test = False
219
+ with open(solution_file, "r", encoding="utf-8") as handle:
220
+ solutions = json.load(handle)
221
+ for key, value in solutions.items():
222
+ for idx, solution in enumerate(value):
223
+ data[key]["test"][idx]["output"] = solution
224
+
225
+ all_tasks = []
226
+ for task_name, subtasks in data.items():
227
+ parsed_tasks = Task.read_tasks_from_dict(subtasks, test=test)
228
+ for i, task in enumerate(parsed_tasks):
229
+ task.name = task_name + "-" + str(i)
230
+ all_tasks.append(task)
231
+
232
+ return all_tasks
233
+
234
+
235
+ def read_tasks_from_file(task_file: str, test: bool = False) -> List[Task]:
236
+ """
237
+ Read tasks from a file
238
+ """
239
+ with open(task_file, "r", encoding="utf-8") as handle:
240
+ data = json.load(handle)
241
+
242
+ return Task.read_tasks_from_dict(data, test=test)
243
+
244
+
245
+ def make_submission(
246
+ tasks: List[Task],
247
+ predictions: List[List[Grid]],
248
+ path: Optional[str] = None,
249
+ number_of_attempts: int = 2,
250
+ ) -> dict:
251
+ """
252
+ Make a submission
253
+ """
254
+ assert len(tasks) == len(
255
+ predictions
256
+ ), "Number of tasks and predictions should be the same"
257
+
258
+ # sort by task_name alphabetically to ensure order of subtasks
259
+ indices = np.argsort([task.name for task in tasks])
260
+ tasks = [tasks[i] for i in indices]
261
+ predictions = [predictions[i] for i in indices]
262
+ # get the submissions
263
+ submissions = {}
264
+ for task, prediction in zip(tasks, predictions):
265
+ task_name, task_no = task.name.split("-")
266
+ task_no = int(task_no)
267
+ if task_name not in submissions:
268
+ submissions[task_name] = []
269
+
270
+ assert (
271
+ len(prediction) == number_of_attempts
272
+ ), "Number of attempts should be the same"
273
+ attempts = {
274
+ f"attempt_{j+1}": to_list(pred) for j, pred in enumerate(prediction)
275
+ }
276
+ while len(submissions[task_name]) <= task_no:
277
+ submissions[task_name].append({"attempt_1": [[0]], "attempt_2": [[0]]})
278
+
279
+ submissions[task_name][task_no] = attempts
280
+
281
+ if path is not None:
282
+ with open(path, "w") as handle:
283
+ json.dump(submissions, handle)
284
+
285
+ return submissions
286
+
287
+
288
+ if __name__ == "__main__":
289
+ arc_path = "/kaggle/input/arc-prize-2024/"
290
+ tasks = read_tasks_from_single_file(arc_path + "arc-agi_training_challenges.json")
291
+ print(tasks[0])
292
+ tasks = read_tasks_from_single_file(
293
+ arc_path + "arc-agi_evaluation_challenges.json", test=True
294
+ )
295
+ print(tasks[0])
296
+
297
+ tasks = read_tasks_from_single_file(
298
+ arc_path + "arc-agi_evaluation_challenges.json",
299
+ test=True,
300
+ solution_file=arc_path + "arc-agi_evaluation_solutions.json",
301
+ )
302
+
303
+ print(tasks[0])