fusion-bench 0.2.3__tar.gz → 0.2.4__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 (507) hide show
  1. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/PKG-INFO +14 -2
  2. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/README.md +13 -1
  3. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/__init__.py +2 -0
  4. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/clip_layer_wise_adamerging.py +13 -0
  5. fusion_bench-0.2.4/fusion_bench/method/dare/simple_average.py +31 -0
  6. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/task_arithmetic.py +14 -7
  7. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/__init__.py +2 -1
  8. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/expo.py +3 -3
  9. fusion_bench-0.2.4/fusion_bench/method/linear/llama_expo.py +229 -0
  10. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/magnitude_diff_pruning.py +6 -1
  11. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/clip_classification.py +39 -3
  12. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/PKG-INFO +14 -2
  13. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/SOURCES.txt +4 -0
  14. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dare/task_arithmetic.yaml +1 -0
  15. fusion_bench-0.2.4/fusion_bench_config/method/linear/llama_expo.yaml +19 -0
  16. fusion_bench-0.2.4/fusion_bench_config/method/linear/llama_expo_with_dare.yaml +19 -0
  17. fusion_bench-0.2.4/fusion_bench_config/method/pruning/magnitude_diff_pruning.yaml +4 -0
  18. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/pyproject.toml +1 -1
  19. fusion_bench-0.2.3/fusion_bench/method/dare/simple_average.py +0 -48
  20. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/LICENSE +0 -0
  21. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/__init__.py +0 -0
  22. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/__init__.py +0 -0
  23. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/method/__init__.py +0 -0
  24. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/method/base_algorithm.py +0 -0
  25. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/AutoModelForSeq2SeqLM.py +0 -0
  26. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/__init__.py +0 -0
  27. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/base_pool.py +0 -0
  28. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/huggingface_clip_vision.py +0 -0
  29. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/__init__.py +0 -0
  30. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/base_pool.py +0 -0
  31. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/clip_image_classification.py +0 -0
  32. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py +0 -0
  33. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/constants/__init__.py +0 -0
  34. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/constants/paths.py +0 -0
  35. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/__init__.py +0 -0
  36. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/clip_dataset.py +0 -0
  37. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/gpt2_glue.py +0 -0
  38. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/gsm8k.py +0 -0
  39. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/image_dataset.py +0 -0
  40. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/imdb.py +0 -0
  41. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/__init__.py +0 -0
  42. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/alpaca.py +0 -0
  43. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/openai.py +0 -0
  44. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/sharegpt.py +0 -0
  45. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/squad.py +0 -0
  46. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/wikitext.py +0 -0
  47. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/nyuv2.py +0 -0
  48. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ada_svd/__init__.py +0 -0
  49. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ada_svd/clip_vision.py +0 -0
  50. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/__init__.py +0 -0
  51. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/clip_task_wise_adamerging.py +0 -0
  52. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/entropy_loss.py +0 -0
  53. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/layer_wise_adamerging.py +0 -0
  54. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/llama_adamerging.py +0 -0
  55. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/task_wise_adamerging.py +0 -0
  56. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/__init__.py +0 -0
  57. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/task_vector_cos_similarity.py +0 -0
  58. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/task_vector_violin_plot.py +0 -0
  59. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/base_algorithm.py +0 -0
  60. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/classification/__init__.py +0 -0
  61. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/classification/clip_finetune.py +0 -0
  62. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/__init__.py +0 -0
  63. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py +0 -0
  64. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py +0 -0
  65. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/__init__.py +0 -0
  66. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/utils.py +0 -0
  67. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/__init__.py +0 -0
  68. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/dawe_for_clip.py +0 -0
  69. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/warppers/__init__.py +0 -0
  70. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/warppers/dawe_model.py +0 -0
  71. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/__init__.py +0 -0
  72. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/depth_upscaling.py +0 -0
  73. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/depth_upscaling_for_llama.py +0 -0
  74. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dummy.py +0 -0
  75. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ensemble.py +0 -0
  76. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/__init__.py +0 -0
  77. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/clip_fisher_merging.py +0 -0
  78. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/fisher_merging.py +0 -0
  79. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/gpt2_fisher_merging.py +0 -0
  80. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/linear_interpolation.py +0 -0
  81. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/simple_average_for_llama.py +0 -0
  82. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/task_arithmetic_for_llama.py +0 -0
  83. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/lm_finetune/__init__.py +0 -0
  84. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/lm_finetune/causal_lm_pretrain.py +0 -0
  85. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/__init__.py +0 -0
  86. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/mixtral_merging.py +0 -0
  87. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/mixtral_upcycling.py +0 -0
  88. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/model_recombination.py +0 -0
  89. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/__init__.py +0 -0
  90. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_magnitude_prune.py +0 -0
  91. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_random_prune.py +0 -0
  92. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_wanda_prune.py +0 -0
  93. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/prune_utils.py +0 -0
  94. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/__init__.py +0 -0
  95. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/ablate.py +0 -0
  96. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/data.py +0 -0
  97. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/eval.py +0 -0
  98. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/layerwrapper.py +0 -0
  99. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/prune.py +0 -0
  100. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/prune_opt.py +0 -0
  101. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/sparsegpt.py +0 -0
  102. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/__init__.py +0 -0
  103. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/clip_pwe_moe.py +0 -0
  104. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/module.py +0 -0
  105. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/phn/__init__.py +0 -0
  106. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/phn/solvers.py +0 -0
  107. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/utils.py +0 -0
  108. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/__init__.py +0 -0
  109. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/clip_regmean.py +0 -0
  110. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/gpt2_regmean.py +0 -0
  111. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/regmean.py +0 -0
  112. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/simple_average.py +0 -0
  113. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/__init__.py +0 -0
  114. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/slerp.py +0 -0
  115. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/slerp_utils.py +0 -0
  116. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/__init__.py +0 -0
  117. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/singular_projection_merging.py +0 -0
  118. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/smile_mistral_upscaling.py +0 -0
  119. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/smile_upscaling.py +0 -0
  120. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/__init__.py +0 -0
  121. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/sparse_clip_we_moe.py +0 -0
  122. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/sparse_we_moe.py +0 -0
  123. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparselo/__init__.py +0 -0
  124. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparselo/sparselo.py +0 -0
  125. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/task_arithmetic/__init__.py +0 -0
  126. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/task_arithmetic/task_arithmetic.py +0 -0
  127. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/__init__.py +0 -0
  128. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/ties_merging.py +0 -0
  129. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/ties_merging_utils.py +0 -0
  130. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/__init__.py +0 -0
  131. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/clip_task_arithmetic.py +0 -0
  132. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/utils.py +0 -0
  133. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/__init__.py +0 -0
  134. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/clip_we_moe.py +0 -0
  135. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/we_moe.py +0 -0
  136. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/__init__.py +0 -0
  137. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/llama.py +0 -0
  138. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/weighted_average.py +0 -0
  139. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/__init__.py +0 -0
  140. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/__init__.py +0 -0
  141. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/depth.py +0 -0
  142. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/loss.py +0 -0
  143. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/noise.py +0 -0
  144. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/normal.py +0 -0
  145. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/segmentation.py +0 -0
  146. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/__init__.py +0 -0
  147. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py +0 -0
  148. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/compressibility.py +0 -0
  149. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py +0 -0
  150. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/__init__.py +0 -0
  151. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/lightning_fabric.py +0 -0
  152. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/optim/__init__.py +0 -0
  153. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/optim/adamw_with_warmup.py +0 -0
  154. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/rich_live.py +0 -0
  155. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/serialization.py +0 -0
  156. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/simple_profiler.py +0 -0
  157. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/PeftModelForSeq2SeqLM.py +0 -0
  158. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/__init__.py +0 -0
  159. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/base_pool.py +0 -0
  160. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/causal_lm/__init__.py +0 -0
  161. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/causal_lm/causal_lm.py +0 -0
  162. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/clip_vision/__init__.py +0 -0
  163. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/clip_vision/modelpool.py +0 -0
  164. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/huggingface_automodel.py +0 -0
  165. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/huggingface_gpt2_classification.py +0 -0
  166. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/nyuv2_modelpool.py +0 -0
  167. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/seq2seq_lm/__init__.py +0 -0
  168. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/seq2seq_lm/modelpool.py +0 -0
  169. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/__init__.py +0 -0
  170. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/hf_clip.py +0 -0
  171. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/__init__.py +0 -0
  172. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/linearized_model_utils.py +0 -0
  173. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/vision_model.py +0 -0
  174. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/__init__.py +0 -0
  175. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/__init__.py +0 -0
  176. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/embedding.py +0 -0
  177. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/liger_kernel.py +0 -0
  178. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/misc.py +0 -0
  179. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/mod.py +0 -0
  180. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/visual.py +0 -0
  181. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/patcher.py +0 -0
  182. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/tokenizer_loader.py +0 -0
  183. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/masks/__init__.py +0 -0
  184. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/masks/mask_model.py +0 -0
  185. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/__init__.py +0 -0
  186. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/configuration_losparse_llama.py +0 -0
  187. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/losparse_linear.py +0 -0
  188. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/modeling_losparse_llama.py +0 -0
  189. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/register.py +0 -0
  190. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/utils.py +0 -0
  191. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/__init__.py +0 -0
  192. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/configuration_smile_mistral.py +0 -0
  193. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/modeling_smile_mistral.py +0 -0
  194. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/register.py +0 -0
  195. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/__init__.py +0 -0
  196. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/aspp.py +0 -0
  197. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/lightning_module.py +0 -0
  198. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/resnet.py +0 -0
  199. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/resnet_dilated.py +0 -0
  200. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/parameter_dict.py +0 -0
  201. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/separate_io.py +0 -0
  202. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/smile_moe/__init__.py +0 -0
  203. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/smile_moe/linear.py +0 -0
  204. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/sparse_we_moe.py +0 -0
  205. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/utils.py +0 -0
  206. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/we_moe.py +0 -0
  207. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/__init__.py +0 -0
  208. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/ensemble.py +0 -0
  209. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/layer_wise_fusion.py +0 -0
  210. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/task_wise_fusion.py +0 -0
  211. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/optim/__init__.py +0 -0
  212. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/optim/mezo.py +0 -0
  213. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/__init__.py +0 -0
  214. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/base_program.py +0 -0
  215. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/fabric_fusion_program.py +0 -0
  216. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/__init__.py +0 -0
  217. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/cli.py +0 -0
  218. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/clip/__init__.py +0 -0
  219. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/clip/convert_checkpoint.py +0 -0
  220. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/imgui.py +0 -0
  221. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/nyuv2_mtl_train.py +0 -0
  222. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/webui.py +0 -0
  223. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/__init__.py +0 -0
  224. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/base_pool.py +0 -0
  225. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/__init__.py +0 -0
  226. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/clip_sparse_wemoe_taskpool.py +0 -0
  227. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/taskpool.py +0 -0
  228. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/dummy.py +0 -0
  229. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/gpt2_text_classification.py +0 -0
  230. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/llama/__init__.py +0 -0
  231. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/llama/test_generation.py +0 -0
  232. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/nyuv2_taskpool.py +0 -0
  233. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/__init__.py +0 -0
  234. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/base_task.py +0 -0
  235. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/classification.py +0 -0
  236. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/__init__.py +0 -0
  237. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/cifar10.py +0 -0
  238. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/cifar100.py +0 -0
  239. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/clip_dataset.py +0 -0
  240. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/dtd.py +0 -0
  241. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/eurosat.py +0 -0
  242. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/flower102.py +0 -0
  243. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/gtsrb.py +0 -0
  244. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/imagenet.py +0 -0
  245. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/mnist.py +0 -0
  246. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/oxford_iiit_pet.py +0 -0
  247. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/rendered_sst2.py +0 -0
  248. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/resisc45.py +0 -0
  249. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/stanford_cars.py +0 -0
  250. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/stl10.py +0 -0
  251. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/sun397.py +0 -0
  252. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/svhn.py +0 -0
  253. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/tiny_imagenet.py +0 -0
  254. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/__init__.py +0 -0
  255. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/datasets_preprocess.py +0 -0
  256. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py +0 -0
  257. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py +0 -0
  258. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py +0 -0
  259. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py +0 -0
  260. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/__init__.py +0 -0
  261. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/auto.py +0 -0
  262. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/cache_utils.py +0 -0
  263. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/data.py +0 -0
  264. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/devices.py +0 -0
  265. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/dtype.py +0 -0
  266. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/functools.py +0 -0
  267. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/hydra_utils.py +0 -0
  268. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/instantiate.py +0 -0
  269. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/json.py +0 -0
  270. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/lazy_imports.py +0 -0
  271. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/misc.py +0 -0
  272. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/packages.py +0 -0
  273. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/parameters.py +0 -0
  274. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/path.py +0 -0
  275. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/pylogger.py +0 -0
  276. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/rich_utils.py +0 -0
  277. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/state_dict_arithmetic.py +0 -0
  278. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/__init__.py +0 -0
  279. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/_name_mangler.py +0 -0
  280. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/_version.py +0 -0
  281. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/timer.py +0 -0
  282. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/type.py +0 -0
  283. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/dependency_links.txt +0 -0
  284. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/entry_points.txt +0 -0
  285. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/requires.txt +0 -0
  286. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/top_level.txt +0 -0
  287. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/README.md +0 -0
  288. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
  289. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/cifar10.yaml +0 -0
  290. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/cifar100.yaml +0 -0
  291. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/dtd.yaml +0 -0
  292. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/eurosat.yaml +0 -0
  293. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/gtsrb.yaml +0 -0
  294. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/mnist.yaml +0 -0
  295. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/resisc45.yaml +0 -0
  296. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/stanford-cars.yaml +0 -0
  297. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/sun397.yaml +0 -0
  298. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/svhn.yaml +0 -0
  299. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/the_eight_tasks.yaml +0 -0
  300. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/tiny-imagenet.yaml +0 -0
  301. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/cifar10.yaml +0 -0
  302. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/cifar100.yaml +0 -0
  303. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/dtd.yaml +0 -0
  304. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/eurosat.yaml +0 -0
  305. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/gtsrb.yaml +0 -0
  306. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/mnist.yaml +0 -0
  307. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/resisc45.yaml +0 -0
  308. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/stanford-cars.yaml +0 -0
  309. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/sun397.yaml +0 -0
  310. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/svhn.yaml +0 -0
  311. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/the_eight_tasks.yaml +0 -0
  312. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/tiny-imagenet.yaml +0 -0
  313. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/dtd.yaml +0 -0
  314. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/eurosat.yaml +0 -0
  315. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/gtsrb.yaml +0 -0
  316. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/mnist.yaml +0 -0
  317. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/resisc45.yaml +0 -0
  318. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/stanford-cars.yaml +0 -0
  319. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/sun397.yaml +0 -0
  320. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/svhn.yaml +0 -0
  321. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/the_eight_tasks.yaml +0 -0
  322. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/search_qa.yaml +0 -0
  323. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/test/search_qa.yaml +0 -0
  324. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/train/MetaMathQA.yaml +0 -0
  325. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/train/search_qa.yaml +0 -0
  326. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/val/search_qa.yaml +0 -0
  327. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/test/xsum.yaml +0 -0
  328. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/train/xsum.yaml +0 -0
  329. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/val/xsum.yaml +0 -0
  330. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/xsum.yaml +0 -0
  331. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm-hard.yaml +0 -0
  332. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm8k.yaml +0 -0
  333. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm8k_question_label.yaml +0 -0
  334. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/CodeAlpaca-20k.yaml +0 -0
  335. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/gsm8k.yaml +0 -0
  336. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/gsm8k_question_label.yaml +0 -0
  337. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric/auto.yaml +0 -0
  338. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric_logger/tensorboard_logger.yaml +0 -0
  339. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric_model_fusion.yaml +0 -0
  340. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/default.yaml +0 -0
  341. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/help/fusion_bench_help.yaml +0 -0
  342. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/job_logging/rich_logging.yaml +0 -0
  343. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_magnitude_pruning.yaml +0 -0
  344. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_model_fusion.yaml +0 -0
  345. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_weighted_average.yaml +0 -0
  346. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ada_svd/clip_vision.yaml +0 -0
  347. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging/clip.yaml +0 -0
  348. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging/llama_sft.yaml +0 -0
  349. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging.yaml +0 -0
  350. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/analysis/task_vector_cos_similarity.yaml +0 -0
  351. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/analysis/task_vector_violin_plot.yaml +0 -0
  352. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/clip_finetune.yaml +0 -0
  353. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml +0 -0
  354. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml +0 -0
  355. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml +0 -0
  356. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dare/simple_average.yaml +0 -0
  357. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dawe/dawe_for_clip.yaml +0 -0
  358. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/depth_upscaling.yaml +0 -0
  359. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dummy.yaml +0 -0
  360. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/max_model_predictor.yaml +0 -0
  361. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/simple_ensemble.yaml +0 -0
  362. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/weighted_ensemble.yaml +0 -0
  363. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/clip_fisher_merging.yaml +0 -0
  364. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/fisher_merging.yaml +0 -0
  365. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml +0 -0
  366. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/expo.yaml +0 -0
  367. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/linear_interpolation.yaml +0 -0
  368. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/simple_average_for_llama.yaml +0 -0
  369. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/task_arithmetic_for_llama.yaml +0 -0
  370. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/weighted_average.yaml +0 -0
  371. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/weighted_average_for_llama.yaml +0 -0
  372. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/magnitude_diff_pruning.yaml +0 -0
  373. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/mixtral_moe_merging.yaml +0 -0
  374. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/mixtral_moe_upscaling.yaml +0 -0
  375. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/model_recombination.yaml +0 -0
  376. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml +0 -0
  377. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_random_pruning.yaml +0 -0
  378. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_wanda_pruning.yaml +0 -0
  379. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pwe_moe_ls_for_clip.yaml +0 -0
  380. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/clip_regmean.yaml +0 -0
  381. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/gpt2_regmean.yaml +0 -0
  382. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/regmean.yaml +0 -0
  383. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/simple_average.yaml +0 -0
  384. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/slerp/slerp.yaml +0 -0
  385. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/singular_projection_merging.yaml +0 -0
  386. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/smile_mistral_upscaling.yaml +0 -0
  387. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/smile_upscaling.yaml +0 -0
  388. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_iterative_sparselo.yaml +0 -0
  389. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_pcp_sparselo.yaml +0 -0
  390. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_sparselo.yaml +0 -0
  391. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/task_arithmetic.yaml +0 -0
  392. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ties_merging.yaml +0 -0
  393. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/trust_region/clip_task_arithmetic.yaml +0 -0
  394. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/wemoe/sparse_weight_ensembling_moe.yaml +0 -0
  395. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/wemoe/weight_ensembling_moe.yaml +0 -0
  396. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16.yaml +0 -0
  397. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_dtd.yaml +0 -0
  398. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eight_tasks.yaml +0 -0
  399. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eurosat.yaml +0 -0
  400. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_gtsrb.yaml +0 -0
  401. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_mnist.yaml +0 -0
  402. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_resisc45.yaml +0 -0
  403. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_stanford-cars.yaml +0 -0
  404. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_sun397.yaml +0 -0
  405. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_svhn.yaml +0 -0
  406. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32.yaml +0 -0
  407. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_dtd.yaml +0 -0
  408. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eight_tasks.yaml +0 -0
  409. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eurosat.yaml +0 -0
  410. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_gtsrb.yaml +0 -0
  411. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_mnist.yaml +0 -0
  412. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_resisc45.yaml +0 -0
  413. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_stanford-cars.yaml +0 -0
  414. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_sun397.yaml +0 -0
  415. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_svhn.yaml +0 -0
  416. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14.yaml +0 -0
  417. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_dtd.yaml +0 -0
  418. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eight_tasks.yaml +0 -0
  419. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eurosat.yaml +0 -0
  420. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_gtsrb.yaml +0 -0
  421. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_mnist.yaml +0 -0
  422. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_resisc45.yaml +0 -0
  423. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_stanford-cars.yaml +0 -0
  424. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_sun397.yaml +0 -0
  425. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_svhn.yaml +0 -0
  426. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/generate_vit_model_config.sh +0 -0
  427. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base.yaml +0 -0
  428. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola.yaml +0 -0
  429. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola_lora-16.yaml +0 -0
  430. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli.yaml +0 -0
  431. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli_lora-16.yaml +0 -0
  432. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc.yaml +0 -0
  433. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc_lora-16.yaml +0 -0
  434. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli.yaml +0 -0
  435. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli_lora-16.yaml +0 -0
  436. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp.yaml +0 -0
  437. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp_lora-16.yaml +0 -0
  438. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte.yaml +0 -0
  439. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte_lora-16.yaml +0 -0
  440. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2.yaml +0 -0
  441. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2_lora-16.yaml +0 -0
  442. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb.yaml +0 -0
  443. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb_lora-16.yaml +0 -0
  444. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large.yaml +0 -0
  445. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-cola_lora-16.yaml +0 -0
  446. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mnli_lora-16.yaml +0 -0
  447. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mrpc_lora-16.yaml +0 -0
  448. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qnli_lora-16.yaml +0 -0
  449. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qqp_lora-16.yaml +0 -0
  450. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-rte_lora-16.yaml +0 -0
  451. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-sst2_lora-16.yaml +0 -0
  452. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-stsb_lora-16.yaml +0 -0
  453. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/generate_flan-t5.sh +0 -0
  454. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/_template.yaml +0 -0
  455. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8.yaml +0 -0
  456. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual.yaml +0 -0
  457. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8.yaml +0 -0
  458. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_control_task.yaml +0 -0
  459. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_model_only.yaml +0 -0
  460. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp1.yaml +0 -0
  461. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp2.yaml +0 -0
  462. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_individual.yaml +0 -0
  463. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_mtl.yaml +0 -0
  464. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
  465. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
  466. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml +0 -0
  467. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
  468. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8.yaml +0 -0
  469. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8_model_only.yaml +0 -0
  470. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_individual.yaml +0 -0
  471. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/llama_for_causallm.yaml +0 -0
  472. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/simle_mixtral_exp_v4.yaml +0 -0
  473. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/single_llama_model.yaml +0 -0
  474. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/_template.yaml +0 -0
  475. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue.yaml +0 -0
  476. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16.yaml +0 -0
  477. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_individual.yaml +0 -0
  478. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-large_glue_lora16.yaml +0 -0
  479. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/automodelpool.yaml +0 -0
  480. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/gpt-2_glue.yaml +0 -0
  481. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/mixtral_moe_merging.yaml +0 -0
  482. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/mixtral_moe_upscaling.yaml +0 -0
  483. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/nyuv2_modelpool.yaml +0 -0
  484. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v1.yaml +0 -0
  485. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v2.yaml +0 -0
  486. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v3.yaml +0 -0
  487. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v4.yaml +0 -0
  488. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/nyuv2_config.yaml +0 -0
  489. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/nyuv2_mtl_train.yaml +0 -0
  490. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/_template.yaml +0 -0
  491. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8.yaml +0 -0
  492. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_B16.yaml +0 -0
  493. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_L14.yaml +0 -0
  494. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_val.yaml +0 -0
  495. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_with_control_task.yaml +0 -0
  496. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_sparse_wemoe_clip-vit-classification_TA8.yaml +0 -0
  497. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
  498. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
  499. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
  500. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/dummy.yaml +0 -0
  501. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/flan-t5_glue_text_generation.yaml +0 -0
  502. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/gpt-2_glue.yaml +0 -0
  503. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/nyuv2_taskpool.yaml +0 -0
  504. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/setup.cfg +0 -0
  505. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/tests/test_depth_upscaling.py +0 -0
  506. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/tests/test_simple_average.py +0 -0
  507. {fusion_bench-0.2.3 → fusion_bench-0.2.4}/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.3
3
+ Version: 0.2.4
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
@@ -46,6 +46,8 @@ Requires-Dist: scipy
46
46
  Requires-Dist: h5py
47
47
  Requires-Dist: pytest
48
48
 
49
+ <div align='center'>
50
+
49
51
  # FusionBench: A Comprehensive Benchmark/ToolKit of Deep Model Fusion
50
52
 
51
53
  [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
@@ -56,11 +58,11 @@ Requires-Dist: pytest
56
58
  [![Static Badge](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
57
59
  [![Static Badge](https://img.shields.io/badge/code%20style-yamlfmt-black)](https://github.com/google/yamlfmt)
58
60
 
61
+ </div>
59
62
 
60
63
  > [!TIP]
61
64
  > Documentation is available at [tanganke.github.io/fusion_bench/](https://tanganke.github.io/fusion_bench/).
62
65
 
63
-
64
66
  ## Overview
65
67
 
66
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.
@@ -198,6 +200,16 @@ fusion_bench \
198
200
  ... # other configurations
199
201
  ```
200
202
 
203
+ ### :rocket: Quick Start for Experienced Users
204
+
205
+ We provide a project template for quickly starting a new fusion algorithm implementation here: [FusionBench Project Template](https://github.com/fusion-bench/fusion-bench-project-template).
206
+
207
+ <div align='center'>
208
+
209
+ Click on [<kbd>Use this template</kbd>](https://github.com/fusion-bench/fusion-bench-project-template/generate) to initialize new repository.
210
+
211
+ </div>
212
+
201
213
  ### FusionBench Command Generator WebUI (for v0.1.x)
202
214
 
203
215
  FusionBench Command Generator is a user-friendly web interface for generating FusionBench commands based on configuration files.
@@ -1,3 +1,5 @@
1
+ <div align='center'>
2
+
1
3
  # FusionBench: A Comprehensive Benchmark/ToolKit of Deep Model Fusion
2
4
 
3
5
  [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
@@ -8,11 +10,11 @@
8
10
  [![Static Badge](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
9
11
  [![Static Badge](https://img.shields.io/badge/code%20style-yamlfmt-black)](https://github.com/google/yamlfmt)
10
12
 
13
+ </div>
11
14
 
12
15
  > [!TIP]
13
16
  > Documentation is available at [tanganke.github.io/fusion_bench/](https://tanganke.github.io/fusion_bench/).
14
17
 
15
-
16
18
  ## Overview
17
19
 
18
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.
@@ -150,6 +152,16 @@ fusion_bench \
150
152
  ... # other configurations
151
153
  ```
152
154
 
155
+ ### :rocket: Quick Start for Experienced Users
156
+
157
+ We provide a project template for quickly starting a new fusion algorithm implementation here: [FusionBench Project Template](https://github.com/fusion-bench/fusion-bench-project-template).
158
+
159
+ <div align='center'>
160
+
161
+ Click on [<kbd>Use this template</kbd>](https://github.com/fusion-bench/fusion-bench-project-template/generate) to initialize new repository.
162
+
163
+ </div>
164
+
153
165
  ### FusionBench Command Generator WebUI (for v0.1.x)
154
166
 
155
167
  FusionBench Command Generator is a user-friendly web interface for generating FusionBench commands based on configuration files.
@@ -20,6 +20,7 @@ _import_structure = {
20
20
  # model merging methods
21
21
  "linear": [
22
22
  "ExPOAlgorithm",
23
+ "ExPOAlgorithmForLlama",
23
24
  "SimpleAverageForLlama",
24
25
  "TaskArithmeticForLlama",
25
26
  "LinearInterpolationAlgorithm",
@@ -107,6 +108,7 @@ if TYPE_CHECKING:
107
108
  ExPOAlgorithm,
108
109
  LinearInterpolationAlgorithm,
109
110
  SimpleAverageForLlama,
111
+ ExPOAlgorithmForLlama,
110
112
  TaskArithmeticForLlama,
111
113
  )
112
114
  from .mixture_of_experts import (
@@ -13,9 +13,14 @@ fusion_bench \
13
13
  ```
14
14
  """
15
15
 
16
+ import functools
16
17
  import logging
17
18
 
19
+ from torch.utils.data import DataLoader
20
+
21
+ from fusion_bench.dataset.clip_dataset import CLIPDataset
18
22
  from fusion_bench.mixins import CLIPClassificationMixin
23
+ from fusion_bench.utils.data import InfiniteDataLoader
19
24
 
20
25
  from .layer_wise_adamerging import LayerWiseAdaMergingAlgorithm
21
26
 
@@ -31,3 +36,11 @@ class CLIPLayerWiseAdaMergingAlgorithm(
31
36
  Here we load the CLIP processor and construct the zero-shot classification head for each task.
32
37
  """
33
38
  self.setup_zero_shot_classification_head()
39
+
40
+ @functools.cache
41
+ def get_shuffled_test_loader_iter(self, task: str):
42
+ return super().get_shuffled_test_loader_iter(
43
+ task,
44
+ batch_size=self.config.batch_size,
45
+ num_workers=self.config.num_workers,
46
+ )
@@ -0,0 +1,31 @@
1
+ import logging
2
+
3
+ from fusion_bench import BaseAlgorithm, BaseModelPool
4
+ from fusion_bench.utils.state_dict_arithmetic import state_dict_add, state_dict_mul
5
+
6
+ from .task_arithmetic import DareTaskArithmetic
7
+
8
+ log = logging.getLogger(__name__)
9
+
10
+
11
+ class DareSimpleAverage(BaseAlgorithm):
12
+
13
+ def __init__(
14
+ self,
15
+ sparsity_ratio: float,
16
+ only_on_linear_weights: bool,
17
+ rescale: bool = True,
18
+ **kwargs,
19
+ ):
20
+ self.sparsity_ratio = sparsity_ratio
21
+ self.only_on_linear_weight = only_on_linear_weights
22
+ self.rescale = rescale
23
+ super().__init__(**kwargs)
24
+
25
+ def run(self, modelpool: BaseModelPool):
26
+ return DareTaskArithmetic(
27
+ scaling_factor=1 / len(modelpool),
28
+ sparsity_ratio=self.sparsity_ratio,
29
+ only_on_linear_weights=self.only_on_linear_weight,
30
+ rescale=self.rescale,
31
+ ).run(modelpool)
@@ -5,9 +5,10 @@ from fusion_bench import BaseAlgorithm, BaseModelPool
5
5
  from fusion_bench.utils.state_dict_arithmetic import state_dict_sum
6
6
 
7
7
  from .utils import (
8
- module_sub_,
9
8
  module_random_drop_,
9
+ module_sub_,
10
10
  param_random_drop_,
11
+ trainable_state_dict,
11
12
  )
12
13
 
13
14
 
@@ -23,11 +24,13 @@ class DareTaskArithmetic(BaseAlgorithm):
23
24
  scaling_factor: float,
24
25
  sparsity_ratio: float,
25
26
  only_on_linear_weights: bool,
27
+ rescale: bool = True,
26
28
  **kwargs,
27
29
  ):
28
30
  self.scaling_factor = scaling_factor
29
31
  self.sparsity_ratio = sparsity_ratio
30
32
  self.only_on_linear_weights = only_on_linear_weights
33
+ self.rescale = rescale
31
34
  super().__init__(**kwargs)
32
35
 
33
36
  @torch.no_grad()
@@ -41,24 +44,28 @@ class DareTaskArithmetic(BaseAlgorithm):
41
44
  for model_name in modelpool.model_names
42
45
  }
43
46
  task_vectors = {
44
- model_name: module_sub_(finetuned_models, pretrained_model)
47
+ model_name: module_sub_(finetuned_models[model_name], pretrained_model)
45
48
  for model_name in finetuned_models
46
49
  }
47
50
  del finetuned_models
48
51
 
49
52
  # drop and rescale task vectors
50
- for tv in task_vectors.values():
53
+ for model_name, tv in task_vectors.items():
51
54
  if self.only_on_linear_weights:
52
- for module in tv.modules():
55
+ for module_name, module in tv.named_modules():
53
56
  if isinstance(module, nn.Linear):
57
+ print(f"pruning model: `{model_name}`, layer: {module_name}.")
54
58
  param_random_drop_(
55
- module.weight, self.sparsity_ratio, rescale=True
59
+ module.weight, self.sparsity_ratio, rescale=self.rescale
56
60
  )
57
61
  else:
58
- module_random_drop_(tv, self.sparsity_ratio, rescale=True)
62
+ print(f"pruning model: `{model_name}`")
63
+ module_random_drop_(tv, self.sparsity_ratio, rescale=self.rescale)
59
64
 
60
65
  # merge task vectors
61
- task_vector_sum = state_dict_sum(task_vectors.values())
66
+ task_vector_sum = state_dict_sum(
67
+ [trainable_state_dict(tv) for tv in task_vectors.values()]
68
+ )
62
69
 
63
70
  # scale the task vector and add it to the pretrained model
64
71
  for name, delta in task_vector_sum.items():
@@ -1,5 +1,6 @@
1
1
  # flake8: noqa F401
2
+ from .expo import ExPOAlgorithm
2
3
  from .linear_interpolation import LinearInterpolationAlgorithm
4
+ from .llama_expo import ExPOAlgorithmForLlama
3
5
  from .simple_average_for_llama import SimpleAverageForLlama
4
6
  from .task_arithmetic_for_llama import TaskArithmeticForLlama
5
- from .expo import ExPOAlgorithm
@@ -1,5 +1,5 @@
1
1
  """
2
- This module contains the implementation of ExPO merge.
2
+ This module contains the implementation of ExPO merge for general nn.Modules.
3
3
 
4
4
  Reference:
5
5
  - Zheng et al. Weak-to-Strong Extrapolation Expedites Alignment.
@@ -75,5 +75,5 @@ class ExPOAlgorithm(BaseAlgorithm):
75
75
  state_dict_mul(delta_parameters, scalar=self.extrapolation_factor),
76
76
  )
77
77
 
78
- sft_model.load_state_dict(merged_sd)
79
- return sft_model
78
+ rlhf_model.load_state_dict(merged_sd)
79
+ return rlhf_model
@@ -0,0 +1,229 @@
1
+ """
2
+ This module contains the implementation of ExPO merge for LLAMA models.
3
+
4
+ Reference:
5
+ - Zheng et al. Weak-to-Strong Extrapolation Expedites Alignment.
6
+ """
7
+
8
+ import logging
9
+ from typing import Optional, cast
10
+
11
+ import torch
12
+ from torch import nn
13
+ from transformers import LlamaForCausalLM, LlamaModel
14
+ from typing_extensions import override
15
+
16
+ from fusion_bench import BaseAlgorithm, BaseModelPool
17
+ from fusion_bench.method import DareSimpleAverage, SimpleAverageAlgorithm
18
+ from fusion_bench.method.pruning.prune_utils import unstructured_magnitude_prune_
19
+ from fusion_bench.utils.state_dict_arithmetic import StateDictType
20
+
21
+ log = logging.getLogger(__name__)
22
+
23
+
24
+ def expo_(
25
+ sft_model: nn.Module,
26
+ rlhf_model: nn.Module,
27
+ extrapolation_factor: float,
28
+ merge_dtype: Optional[torch.dtype] = None,
29
+ magnitude_sparsity_ratio: Optional[float] = None,
30
+ ):
31
+ """
32
+ Applies extrapolation to the parameters of the RLHF model based on the SFT model.
33
+ The RLHF model is updated in place.
34
+
35
+ Args:
36
+ sft_model (nn.Module): The supervised fine-tuned model.
37
+ rlhf_model (nn.Module): The reinforcement learning from human feedback model.
38
+ extrapolation_factor (float): The factor by which to extrapolate the parameters.
39
+
40
+ Returns:
41
+ nn.Module: The RLHF model with updated parameters.
42
+ """
43
+ rlhf_state_dict: StateDictType = rlhf_model.state_dict()
44
+ sft_state_dict: StateDictType = sft_model.state_dict()
45
+
46
+ merged_state_dict = {}
47
+
48
+ for n in rlhf_state_dict:
49
+ rlhf_p = rlhf_state_dict[n]
50
+ sft_p = sft_state_dict[n]
51
+ if merge_dtype is not None:
52
+ orignal_dtype = rlhf_state_dict[n].dtype
53
+ rlhf_p = rlhf_state_dict[n].to(dtype=merge_dtype)
54
+ sft_p = sft_state_dict[n].to(dtype=merge_dtype)
55
+
56
+ delta_p = rlhf_p - sft_p
57
+ if magnitude_sparsity_ratio is not None:
58
+ delta_p = unstructured_magnitude_prune_(
59
+ delta_p, torch.abs, magnitude_sparsity_ratio, return_pruned_weight=False
60
+ )
61
+ rlhf_state_dict[n] = rlhf_p + extrapolation_factor * delta_p
62
+
63
+ if merge_dtype is not None:
64
+ merged_state_dict[n] = rlhf_p.to(dtype=orignal_dtype)
65
+ else:
66
+ merged_state_dict[n] = rlhf_p
67
+
68
+ rlhf_model.load_state_dict(merged_state_dict)
69
+ return rlhf_model
70
+
71
+
72
+ def expo_linear_modules_(
73
+ sft_model: nn.Module,
74
+ rlhf_model: nn.Module,
75
+ extrapolation_factor: float,
76
+ merge_dtype: Optional[torch.dtype] = None,
77
+ magnitude_sparsity_ratio: Optional[float] = None,
78
+ ):
79
+ """
80
+ Applies extrapolation to the linear modules of the RLHF model based on the SFT model.
81
+ The RLHF model is updated in place.
82
+
83
+ Args:
84
+ sft_model (nn.Module): The supervised fine-tuned model.
85
+ rlhf_model (nn.Module): The reinforcement learning from human feedback model.
86
+ extrapolation_factor (float): The factor by which to extrapolate the parameters.
87
+
88
+ Returns:
89
+ nn.Module: The RLHF model with updated linear modules.
90
+ """
91
+ for name, module in sft_model.named_modules():
92
+ if isinstance(module, nn.Linear):
93
+ expo_(
94
+ module,
95
+ rlhf_model.get_submodule(name),
96
+ extrapolation_factor=extrapolation_factor,
97
+ merge_dtype=merge_dtype,
98
+ magnitude_sparsity_ratio=magnitude_sparsity_ratio,
99
+ )
100
+ return rlhf_model
101
+
102
+
103
+ class ExPOAlgorithmForLlama(BaseAlgorithm):
104
+
105
+ def __init__(
106
+ self,
107
+ extrapolation_factor: float,
108
+ attention_scaling_factor: float = 0.5,
109
+ only_on_backbone: bool = True,
110
+ on_linear_weights: bool = True,
111
+ on_linear_bias: bool = False,
112
+ on_embedding: bool = False,
113
+ fix_last_n_layers: int = 0,
114
+ fix_first_n_layers: int = 0,
115
+ magnitude_sparsity_ratio: Optional[float] = None,
116
+ **kwargs,
117
+ ):
118
+ self.extrapolation_factor = extrapolation_factor
119
+ self.attention_scaling_factor = attention_scaling_factor
120
+ self.only_on_backbone = only_on_backbone
121
+ self.on_linear_weights = on_linear_weights
122
+ self.on_linear_bias = on_linear_bias
123
+ self.on_embedding = on_embedding
124
+ self.fix_last_n_layers = fix_last_n_layers
125
+ self.fix_first_n_layers = fix_first_n_layers
126
+ self.magnitude_sparsity_ratio = magnitude_sparsity_ratio
127
+ super().__init__(**kwargs)
128
+
129
+ def load_models(self, modelpool: BaseModelPool):
130
+ sft_model: LlamaForCausalLM = modelpool.load_pretrained_model()
131
+ if len(modelpool) == 1:
132
+ rlhf_model = modelpool.load_model(modelpool.model_names[0])
133
+ else:
134
+ # if there are multiple RLHF models, use simple average to merge them before running ExPO
135
+ log.info(
136
+ f"There are {len(modelpool)} models in the model pool, averaging them first..."
137
+ )
138
+ rlhf_model = SimpleAverageAlgorithm().run(modelpool)
139
+ rlhf_model = cast(LlamaForCausalLM, rlhf_model)
140
+ return sft_model, rlhf_model
141
+
142
+ def run(self, modelpool: BaseModelPool):
143
+ if not isinstance(modelpool, BaseModelPool):
144
+ modelpool = BaseModelPool(modelpool)
145
+
146
+ assert len(modelpool.model_names) >= 1, "ExPO requires at least one model."
147
+ assert modelpool.has_pretrained, "ExPO requires pretrained models (base model)."
148
+
149
+ sft_model, rlhf_model = self.load_models(modelpool)
150
+
151
+ if not self.on_linear_bias:
152
+ for name, module in sft_model.named_modules():
153
+ if isinstance(module, nn.Linear):
154
+ module.bias = rlhf_model.get_submodule(name).bias
155
+ if not self.on_linear_weights:
156
+ for name, module in sft_model.named_modules():
157
+ if isinstance(module, nn.Linear):
158
+ module.weight = rlhf_model.get_submodule(name).weight
159
+
160
+ if not self.only_on_backbone:
161
+ expo_(sft_model.lm_head, rlhf_model.lm_head, self.extrapolation_factor)
162
+
163
+ # expo on the backbone
164
+ self._expo_lm_model_(
165
+ sft_model.model, rlhf_model.model, self.extrapolation_factor
166
+ )
167
+ return rlhf_model
168
+
169
+ def _expo_lm_model_(
170
+ self,
171
+ sft_model: LlamaModel,
172
+ rlhf_model: LlamaModel,
173
+ extrapolation_factor: float,
174
+ ):
175
+ if self.on_embedding:
176
+ expo_(sft_model.embed_tokens, rlhf_model.embed_tokens, extrapolation_factor)
177
+
178
+ if self.fix_first_n_layers == "half":
179
+ self.fix_first_n_layers = len(sft_model.layers) // 2
180
+ if self.fix_last_n_layers == "half":
181
+ self.fix_last_n_layers = len(sft_model.layers) // 2
182
+
183
+ for layer_idx in range(
184
+ self.fix_first_n_layers, len(sft_model.layers) - self.fix_last_n_layers
185
+ ):
186
+ sft_layer = sft_model.layers[layer_idx]
187
+ expo_linear_modules_(
188
+ sft_layer.self_attn,
189
+ rlhf_model.layers[layer_idx].self_attn,
190
+ extrapolation_factor=extrapolation_factor
191
+ * self.attention_scaling_factor,
192
+ merge_dtype=torch.float32,
193
+ magnitude_sparsity_ratio=self.magnitude_sparsity_ratio,
194
+ )
195
+ expo_linear_modules_(
196
+ sft_layer.mlp,
197
+ rlhf_model.layers[layer_idx].mlp,
198
+ extrapolation_factor=extrapolation_factor,
199
+ merge_dtype=torch.float32,
200
+ magnitude_sparsity_ratio=self.magnitude_sparsity_ratio,
201
+ )
202
+
203
+
204
+ class ExPOWithDareForLLama(ExPOAlgorithmForLlama):
205
+ def __init__(
206
+ self,
207
+ dare_sparsity_ratio: float,
208
+ dare_only_on_linear_weights: bool,
209
+ dare_rescale: bool = True,
210
+ **kwargs,
211
+ ):
212
+ self.dare_sparsity_ratio = dare_sparsity_ratio
213
+ self.dare_only_on_linear_weights = dare_only_on_linear_weights
214
+ self.dare_rescale = dare_rescale
215
+ super().__init__(**kwargs)
216
+
217
+ @override
218
+ def load_models(self, modelpool: BaseModelPool):
219
+ log.info(
220
+ f"There are {len(modelpool)} models in the model pool, averaging them first..."
221
+ )
222
+ rlhf_model = DareSimpleAverage(
223
+ sparsity_ratio=self.dare_sparsity_ratio,
224
+ only_on_linear_weights=self.dare_only_on_linear_weights,
225
+ rescale=self.dare_rescale,
226
+ ).run(modelpool)
227
+ rlhf_model = cast(LlamaForCausalLM, rlhf_model)
228
+ sft_model: LlamaForCausalLM = modelpool.load_pretrained_model()
229
+ return sft_model, rlhf_model
@@ -1,7 +1,7 @@
1
1
  import logging
2
2
  import re
3
3
  from copy import deepcopy
4
- from typing import Dict, List # noqa: F401
4
+ from typing import Dict, List, Optional, Union # noqa: F401
5
5
 
6
6
  import torch
7
7
  from torch import Tensor, nn
@@ -75,6 +75,7 @@ class MagnitudeDiffPruningAlgorithm(
75
75
  def __init__(
76
76
  self,
77
77
  prune_ratio: float,
78
+ rescale: Optional[Union[bool, float]] = None,
78
79
  extract_names: List[str] = None,
79
80
  **kwargs,
80
81
  ):
@@ -87,6 +88,7 @@ class MagnitudeDiffPruningAlgorithm(
87
88
  **kwargs: Additional keyword arguments.
88
89
  """
89
90
  self.prune_ratio = prune_ratio
91
+ self.rescale = rescale
90
92
  self.extract_names = extract_names
91
93
  super().__init__(**kwargs)
92
94
 
@@ -121,6 +123,7 @@ class MagnitudeDiffPruningAlgorithm(
121
123
  self.print_profile_summary()
122
124
  return model
123
125
 
126
+ @torch.no_grad()
124
127
  def magnitude_prune(
125
128
  self,
126
129
  pretrained_model: nn.Module,
@@ -171,6 +174,8 @@ class MagnitudeDiffPruningAlgorithm(
171
174
  if _is_name_matched(name, extract_names):
172
175
  w_diff = ft_state_dict[name] - param
173
176
  w_diff = _magnitude_prune(w_diff, prune_ratio=self.prune_ratio)
177
+ if self.rescale is not None and self.rescale:
178
+ w_diff = w_diff * self.rescale
174
179
  param.data = param + w_diff
175
180
 
176
181
  return model
@@ -51,10 +51,46 @@ class CLIPClassificationMixin(LightningFabricMixin):
51
51
  return self._clip_processor
52
52
 
53
53
  @functools.cache
54
- def get_shuffled_test_loader_iter(self, task: str):
54
+ def get_shuffled_test_loader_iter(
55
+ self,
56
+ task: str,
57
+ batch_size: Optional[int] = None,
58
+ num_workers: Optional[int] = None,
59
+ **loader_kwargs,
60
+ ):
61
+ """
62
+ Get an iterator for a shuffled test DataLoader.
63
+
64
+ This method creates a DataLoader for the test dataset of the specified task,
65
+ with shuffling enabled. It allows for optional customization of batch size,
66
+ number of workers, and other DataLoader keyword arguments.
67
+
68
+ Args:
69
+ task (str): The task identifier for which the test dataset is to be loaded.
70
+ batch_size (Optional[int]): The batch size to use for the DataLoader. If None, the default batch size is used.
71
+ num_workers (Optional[int]): The number of worker processes to use for data loading. If None, the default number of workers is used.
72
+ **loader_kwargs: Additional keyword arguments to pass to the DataLoader.
73
+
74
+ Returns:
75
+ Iterator: An iterator over the shuffled test DataLoader.
76
+ """
77
+ # get dataloader kwargs
78
+ dataloader_kwargs = self._dataloader_kwargs.copy()
79
+ dataloader_kwargs["shuffle"] = True
80
+ if batch_size is not None:
81
+ dataloader_kwargs["batch_size"] = batch_size
82
+ if num_workers is not None:
83
+ dataloader_kwargs["num_workers"] = num_workers
84
+ dataloader_kwargs.update(loader_kwargs)
85
+
86
+ # get the test dataset
87
+ clip_dataset = CLIPDataset(
88
+ self.modelpool.load_test_dataset(task), self.clip_processor
89
+ )
90
+ # create the dataloader
55
91
  loader = DataLoader(
56
- CLIPDataset(self.modelpool.load_test_dataset(task), self.clip_processor),
57
- **self._dataloader_kwargs,
92
+ clip_dataset,
93
+ **dataloader_kwargs,
58
94
  )
59
95
  loader = self.fabric.setup_dataloaders(loader)
60
96
  return iter(InfiniteDataLoader(loader))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fusion_bench
3
- Version: 0.2.3
3
+ Version: 0.2.4
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
@@ -46,6 +46,8 @@ Requires-Dist: scipy
46
46
  Requires-Dist: h5py
47
47
  Requires-Dist: pytest
48
48
 
49
+ <div align='center'>
50
+
49
51
  # FusionBench: A Comprehensive Benchmark/ToolKit of Deep Model Fusion
50
52
 
51
53
  [![arXiv](https://img.shields.io/badge/arXiv-1234.56789-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
@@ -56,11 +58,11 @@ Requires-Dist: pytest
56
58
  [![Static Badge](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
57
59
  [![Static Badge](https://img.shields.io/badge/code%20style-yamlfmt-black)](https://github.com/google/yamlfmt)
58
60
 
61
+ </div>
59
62
 
60
63
  > [!TIP]
61
64
  > Documentation is available at [tanganke.github.io/fusion_bench/](https://tanganke.github.io/fusion_bench/).
62
65
 
63
-
64
66
  ## Overview
65
67
 
66
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.
@@ -198,6 +200,16 @@ fusion_bench \
198
200
  ... # other configurations
199
201
  ```
200
202
 
203
+ ### :rocket: Quick Start for Experienced Users
204
+
205
+ We provide a project template for quickly starting a new fusion algorithm implementation here: [FusionBench Project Template](https://github.com/fusion-bench/fusion-bench-project-template).
206
+
207
+ <div align='center'>
208
+
209
+ Click on [<kbd>Use this template</kbd>](https://github.com/fusion-bench/fusion-bench-project-template/generate) to initialize new repository.
210
+
211
+ </div>
212
+
201
213
  ### FusionBench Command Generator WebUI (for v0.1.x)
202
214
 
203
215
  FusionBench Command Generator is a user-friendly web interface for generating FusionBench commands based on configuration files.
@@ -100,6 +100,8 @@ fusion_bench/../fusion_bench_config/method/fisher_merging/fisher_merging.yaml
100
100
  fusion_bench/../fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml
101
101
  fusion_bench/../fusion_bench_config/method/linear/expo.yaml
102
102
  fusion_bench/../fusion_bench_config/method/linear/linear_interpolation.yaml
103
+ fusion_bench/../fusion_bench_config/method/linear/llama_expo.yaml
104
+ fusion_bench/../fusion_bench_config/method/linear/llama_expo_with_dare.yaml
103
105
  fusion_bench/../fusion_bench_config/method/linear/simple_average_for_llama.yaml
104
106
  fusion_bench/../fusion_bench_config/method/linear/task_arithmetic_for_llama.yaml
105
107
  fusion_bench/../fusion_bench_config/method/linear/weighted_average.yaml
@@ -107,6 +109,7 @@ fusion_bench/../fusion_bench_config/method/linear/weighted_average_for_llama.yam
107
109
  fusion_bench/../fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml
108
110
  fusion_bench/../fusion_bench_config/method/pruning/llama_random_pruning.yaml
109
111
  fusion_bench/../fusion_bench_config/method/pruning/llama_wanda_pruning.yaml
112
+ fusion_bench/../fusion_bench_config/method/pruning/magnitude_diff_pruning.yaml
110
113
  fusion_bench/../fusion_bench_config/method/regmean/clip_regmean.yaml
111
114
  fusion_bench/../fusion_bench_config/method/regmean/gpt2_regmean.yaml
112
115
  fusion_bench/../fusion_bench_config/method/regmean/regmean.yaml
@@ -293,6 +296,7 @@ fusion_bench/method/fisher_merging/gpt2_fisher_merging.py
293
296
  fusion_bench/method/linear/__init__.py
294
297
  fusion_bench/method/linear/expo.py
295
298
  fusion_bench/method/linear/linear_interpolation.py
299
+ fusion_bench/method/linear/llama_expo.py
296
300
  fusion_bench/method/linear/simple_average_for_llama.py
297
301
  fusion_bench/method/linear/task_arithmetic_for_llama.py
298
302
  fusion_bench/method/lm_finetune/__init__.py
@@ -3,3 +3,4 @@ _target_: fusion_bench.method.DareTaskArithmetic
3
3
  scaling_factor: 0.3
4
4
  sparsity_ratio: 0.5
5
5
  only_on_linear_weights: false
6
+ rescale: true
@@ -0,0 +1,19 @@
1
+ # This algorithm merges a pretrained model with a finetuned model.
2
+ #
3
+ # $$\theta_{merged} = \theta_{ft} + \alpha (\theta_{ft} - \theta_{pre})$$
4
+ #
5
+ # where $\theta_{merged}$ is the merged model, $\theta_{ft}$ is the finetuned model (medium-aligned model),
6
+ # $\theta_{pre}$ is the pretrained model (base model), and $\alpha$ is the extrapolation factor.
7
+ _target_: fusion_bench.method.ExPOAlgorithmForLlama
8
+ extrapolation_factor: 0.1
9
+ attention_scaling_factor: 1.0
10
+
11
+ only_on_backbone: true
12
+ on_linear_weights: true
13
+ on_linear_bias: false
14
+ on_embedding: false
15
+
16
+ fix_last_n_layers: 0
17
+ fix_first_n_layers: 0
18
+
19
+ magnitude_sparsity_ratio: null