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.
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/PKG-INFO +14 -2
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/README.md +13 -1
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/__init__.py +2 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/clip_layer_wise_adamerging.py +13 -0
- fusion_bench-0.2.4/fusion_bench/method/dare/simple_average.py +31 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/task_arithmetic.py +14 -7
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/__init__.py +2 -1
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/expo.py +3 -3
- fusion_bench-0.2.4/fusion_bench/method/linear/llama_expo.py +229 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/magnitude_diff_pruning.py +6 -1
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/clip_classification.py +39 -3
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/PKG-INFO +14 -2
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/SOURCES.txt +4 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dare/task_arithmetic.yaml +1 -0
- fusion_bench-0.2.4/fusion_bench_config/method/linear/llama_expo.yaml +19 -0
- fusion_bench-0.2.4/fusion_bench_config/method/linear/llama_expo_with_dare.yaml +19 -0
- fusion_bench-0.2.4/fusion_bench_config/method/pruning/magnitude_diff_pruning.yaml +4 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/pyproject.toml +1 -1
- fusion_bench-0.2.3/fusion_bench/method/dare/simple_average.py +0 -48
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/LICENSE +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/method/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/method/base_algorithm.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/AutoModelForSeq2SeqLM.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/base_pool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/modelpool/huggingface_clip_vision.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/base_pool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/clip_image_classification.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/constants/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/constants/paths.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/clip_dataset.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/gpt2_glue.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/gsm8k.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/image_dataset.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/imdb.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/alpaca.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/openai.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/sharegpt.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/squad.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/llama/wikitext.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/dataset/nyuv2.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ada_svd/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ada_svd/clip_vision.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/clip_task_wise_adamerging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/entropy_loss.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/layer_wise_adamerging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/llama_adamerging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/adamerging/task_wise_adamerging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/task_vector_cos_similarity.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/analysis/task_vector_violin_plot.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/base_algorithm.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/classification/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/classification/clip_finetune.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dare/utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/dawe_for_clip.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/warppers/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dawe/warppers/dawe_model.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/depth_upscaling.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/depth_upscaling/depth_upscaling_for_llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/dummy.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ensemble.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/clip_fisher_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/fisher_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/fisher_merging/gpt2_fisher_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/linear_interpolation.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/simple_average_for_llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/linear/task_arithmetic_for_llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/lm_finetune/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/lm_finetune/causal_lm_pretrain.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/mixtral_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/mixture_of_experts/mixtral_upcycling.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/model_recombination.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_magnitude_prune.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_random_prune.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/llama_wanda_prune.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/prune_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/ablate.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/data.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/eval.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/layerwrapper.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/prune.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/prune_opt.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/wanda_utils/sparsegpt.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/clip_pwe_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/module.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/phn/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/phn/solvers.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pwe_moe/utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/clip_regmean.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/gpt2_regmean.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/regmean/regmean.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/simple_average.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/slerp.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/slerp/slerp_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/singular_projection_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/smile_mistral_upscaling.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/smile_upscaling/smile_upscaling.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/sparse_clip_we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparse_we_moe/sparse_we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparselo/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/sparselo/sparselo.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/task_arithmetic/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/task_arithmetic/task_arithmetic.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/ties_merging.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/ties_merging/ties_merging_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/clip_task_arithmetic.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/trust_region/utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/clip_we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/we_moe/we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/weighted_average/weighted_average.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/depth.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/loss.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/noise.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/normal.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/nyuv2/segmentation.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/compressibility.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/lightning_fabric.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/optim/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/optim/adamw_with_warmup.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/rich_live.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/serialization.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/mixins/simple_profiler.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/PeftModelForSeq2SeqLM.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/base_pool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/causal_lm/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/causal_lm/causal_lm.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/clip_vision/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/clip_vision/modelpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/huggingface_automodel.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/huggingface_gpt2_classification.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/nyuv2_modelpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/seq2seq_lm/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/modelpool/seq2seq_lm/modelpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/hf_clip.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/linearized_model_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/linearized/vision_model.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/embedding.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/liger_kernel.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/misc.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/mod.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/model_utils/visual.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/patcher.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/llama/tokenizer_loader.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/masks/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/masks/mask_model.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/configuration_losparse_llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/losparse_linear.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/modeling_losparse_llama.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/register.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_losparse_llama/utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/configuration_smile_mistral.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/modeling_smile_mistral.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/modeling_smile_mistral/register.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/aspp.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/lightning_module.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/resnet.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/nyuv2/resnet_dilated.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/parameter_dict.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/separate_io.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/smile_moe/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/smile_moe/linear.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/sparse_we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/we_moe.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/ensemble.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/layer_wise_fusion.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/models/wrappers/task_wise_fusion.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/optim/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/optim/mezo.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/base_program.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/programs/fabric_fusion_program.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/cli.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/clip/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/clip/convert_checkpoint.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/imgui.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/nyuv2_mtl_train.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/scripts/webui.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/base_pool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/clip_sparse_wemoe_taskpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/clip_vision/taskpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/dummy.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/gpt2_text_classification.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/llama/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/llama/test_generation.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/taskpool/nyuv2_taskpool.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/base_task.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/classification.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/cifar10.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/cifar100.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/clip_dataset.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/dtd.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/eurosat.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/flower102.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/gtsrb.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/imagenet.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/mnist.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/oxford_iiit_pet.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/rendered_sst2.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/resisc45.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/stanford_cars.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/stl10.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/sun397.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/svhn.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/clip_classification/tiny_imagenet.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/datasets_preprocess.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/auto.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/cache_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/data.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/devices.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/dtype.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/functools.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/hydra_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/instantiate.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/json.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/lazy_imports.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/misc.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/packages.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/parameters.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/path.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/pylogger.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/rich_utils.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/state_dict_arithmetic.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/__init__.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/_name_mangler.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/strenum/_version.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/timer.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/utils/type.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/dependency_links.txt +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/entry_points.txt +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/requires.txt +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench.egg-info/top_level.txt +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/README.md +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/cifar10.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/cifar100.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/dtd.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/resisc45.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/test/tiny-imagenet.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/cifar10.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/cifar100.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/dtd.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/resisc45.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/train/tiny-imagenet.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/dtd.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/resisc45.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/image_classification/val/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/search_qa.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/test/search_qa.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/train/MetaMathQA.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/train/search_qa.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/question_answering/val/search_qa.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/test/xsum.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/train/xsum.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/val/xsum.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/summarization/xsum.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm-hard.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm8k.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/test/gsm8k_question_label.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/CodeAlpaca-20k.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/gsm8k.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/dataset/text_generation/train/gsm8k_question_label.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric/auto.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric_logger/tensorboard_logger.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/fabric_model_fusion.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/default.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/help/fusion_bench_help.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/hydra/job_logging/rich_logging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_magnitude_pruning.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_model_fusion.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/llama_weighted_average.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ada_svd/clip_vision.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging/clip.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging/llama_sft.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/adamerging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/analysis/task_vector_cos_similarity.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/analysis/task_vector_violin_plot.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/clip_finetune.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dare/simple_average.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dawe/dawe_for_clip.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/depth_upscaling.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/dummy.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/max_model_predictor.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/simple_ensemble.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ensemble/weighted_ensemble.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/clip_fisher_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/fisher_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/expo.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/linear_interpolation.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/simple_average_for_llama.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/task_arithmetic_for_llama.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/weighted_average.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/linear/weighted_average_for_llama.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/magnitude_diff_pruning.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/mixtral_moe_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/mixtral_moe_upscaling.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/model_recombination.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_random_pruning.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pruning/llama_wanda_pruning.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/pwe_moe_ls_for_clip.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/clip_regmean.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/gpt2_regmean.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/regmean/regmean.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/simple_average.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/slerp/slerp.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/singular_projection_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/smile_mistral_upscaling.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/smile_upscaling/smile_upscaling.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_iterative_sparselo.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_pcp_sparselo.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/sparselo_pruning/llama_sparselo.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/ties_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/trust_region/clip_task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/wemoe/sparse_weight_ensembling_moe.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/method/wemoe/weight_ensembling_moe.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_dtd.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_resisc45.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_dtd.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_resisc45.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_dtd.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eurosat.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_gtsrb.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_resisc45.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_sun397.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_svhn.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/clip-vit/generate_vit_model_config.sh +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/flan-t5-large.yaml +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/model/flan-t5/generate_flan-t5.sh +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/_template.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8.yaml +0 -0
- {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
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp1.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp2.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_individual.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_mtl.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8.yaml +0 -0
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_individual.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/llama_for_causallm.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/simle_mixtral_exp_v4.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/CausalLMPool/single_llama_model.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/_template.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_individual.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-large_glue_lora16.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/automodelpool.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/gpt-2_glue.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/mixtral_moe_merging.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/mixtral_moe_upscaling.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/nyuv2_modelpool.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v1.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v2.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v3.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/modelpool/smile_mistral_exp_v4.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/nyuv2_config.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/nyuv2_mtl_train.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/_template.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_B16.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_L14.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_val.yaml +0 -0
- {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
- {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
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/dummy.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/flan-t5_glue_text_generation.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/gpt-2_glue.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench_config/taskpool/nyuv2_taskpool.yaml +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/setup.cfg +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/tests/test_depth_upscaling.py +0 -0
- {fusion_bench-0.2.3 → fusion_bench-0.2.4}/tests/test_simple_average.py +0 -0
- {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
|
+
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
|
[](http://arxiv.org/abs/2406.03280)
|
|
@@ -56,11 +58,11 @@ Requires-Dist: pytest
|
|
|
56
58
|
[](https://github.com/psf/black)
|
|
57
59
|
[](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
|
[](http://arxiv.org/abs/2406.03280)
|
|
@@ -8,11 +10,11 @@
|
|
|
8
10
|
[](https://github.com/psf/black)
|
|
9
11
|
[](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.
|
|
53
|
+
for model_name, tv in task_vectors.items():
|
|
51
54
|
if self.only_on_linear_weights:
|
|
52
|
-
for module in tv.
|
|
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=
|
|
59
|
+
module.weight, self.sparsity_ratio, rescale=self.rescale
|
|
56
60
|
)
|
|
57
61
|
else:
|
|
58
|
-
|
|
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(
|
|
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
|
-
|
|
79
|
-
return
|
|
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
|
{fusion_bench-0.2.3 → fusion_bench-0.2.4}/fusion_bench/method/pruning/magnitude_diff_pruning.py
RENAMED
|
@@ -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(
|
|
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
|
-
|
|
57
|
-
**
|
|
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
|
+
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
|
[](http://arxiv.org/abs/2406.03280)
|
|
@@ -56,11 +58,11 @@ Requires-Dist: pytest
|
|
|
56
58
|
[](https://github.com/psf/black)
|
|
57
59
|
[](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
|
|
@@ -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
|