fusion-bench 0.2.6__tar.gz → 0.2.7__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.6 → fusion_bench-0.2.7}/PKG-INFO +1 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/method/__init__.py +1 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/method/base_algorithm.py +7 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/modelpool/__init__.py +1 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/taskpool/__init__.py +1 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/arc.py +5 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/preprocess.py +1 -1
- fusion_bench-0.2.7/fusion_bench/dataset/llama/__init__.py +1 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/llama/alpaca.py +93 -3
- fusion_bench-0.2.7/fusion_bench/dataset/llama/collate.py +120 -0
- fusion_bench-0.2.7/fusion_bench/dataset/llama/metamathqa.py +50 -0
- fusion_bench-0.2.7/fusion_bench/dataset/llama/preference_700k.py +70 -0
- fusion_bench-0.2.7/fusion_bench/dataset/llama/stanford_shp.py +90 -0
- fusion_bench-0.2.7/fusion_bench/dataset/llama/ultrachat.py +58 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/__init__.py +1 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/layer_wise_adamerging.py +11 -4
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/min_norm_solvers.py +4 -4
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/expo.py +39 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/lm_finetune/__init__.py +1 -0
- fusion_bench-0.2.7/fusion_bench/method/lm_finetune/bradley_terry_rm.py +432 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/lm_finetune/fullfinetune_sft.py +90 -160
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/lm_finetune/peftfinetune_sft.py +49 -139
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/llama_magnitude_prune.py +2 -2
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/llama_random_prune.py +2 -2
- fusion_bench-0.2.7/fusion_bench/method/surgery/__init__.py +3 -0
- fusion_bench-0.2.7/fusion_bench/method/surgery/clip_layer_wise_adamerging_surgery.py +157 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/__init__.py +2 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/clip_classification.py +58 -5
- fusion_bench-0.2.7/fusion_bench/mixins/fabric_training.py +320 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/lightning_fabric.py +9 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/__init__.py +2 -0
- fusion_bench-0.2.7/fusion_bench/modelpool/causal_lm/__init__.py +2 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/causal_lm/causal_lm.py +21 -22
- fusion_bench-0.2.7/fusion_bench/modelpool/seq_classification_lm/__init__.py +2 -0
- fusion_bench-0.2.7/fusion_bench/modelpool/seq_classification_lm/reward_model.py +15 -0
- fusion_bench-0.2.7/fusion_bench/modelpool/seq_classification_lm/seq_classification_lm.py +98 -0
- fusion_bench-0.2.7/fusion_bench/models/chat_templates/__init__.py +1 -0
- fusion_bench-0.2.7/fusion_bench/models/chat_templates/llama_3_Instruct.py +1 -0
- fusion_bench-0.2.7/fusion_bench/models/chat_templates/load_tokenizer.py +43 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/hf_clip.py +50 -9
- fusion_bench-0.2.7/fusion_bench/models/surgery/surgerymodelwrapper.py +157 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/utils.py +8 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/wrappers/layer_wise_fusion.py +14 -5
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/wrappers/task_wise_fusion.py +5 -5
- fusion_bench-0.2.7/fusion_bench/optim/__init__.py +2 -0
- fusion_bench-0.2.7/fusion_bench/optim/exception.py +47 -0
- fusion_bench-0.2.7/fusion_bench/optim/lr_scheduler/__init__.py +1 -0
- fusion_bench-0.2.7/fusion_bench/optim/lr_scheduler/linear_warmup.py +222 -0
- fusion_bench-0.2.7/fusion_bench/optim/lr_scheduler/utils/__init__.py +1 -0
- fusion_bench-0.2.7/fusion_bench/optim/lr_scheduler/utils/visualization.py +119 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/optim/mezo.py +0 -2
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/programs/fabric_fusion_program.py +5 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/scripts/cli.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/clip_vision/taskpool.py +43 -6
- fusion_bench-0.2.7/fusion_bench/taskpool/llama/reward_model.py +157 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/nyuv2_taskpool.py +2 -0
- fusion_bench-0.2.7/fusion_bench/utils/hydra_utils.py +28 -0
- fusion_bench-0.2.7/fusion_bench/utils/plot/token.py +52 -0
- fusion_bench-0.2.7/fusion_bench/utils/plot/token_notebook.py +127 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/type.py +5 -3
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/PKG-INFO +1 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/SOURCES.txt +41 -1
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml +1 -1
- fusion_bench-0.2.7/fusion_bench_config/dataset/llm_sft/alpaca_cleaned.yaml +6 -0
- fusion_bench-0.2.7/fusion_bench_config/dataset/llm_sft/ultrachat_200k.yaml +3 -0
- fusion_bench-0.2.7/fusion_bench_config/fabric/llama_peft_fsdp.yaml +16 -0
- fusion_bench-0.2.7/fusion_bench_config/fabric/loggers/wandb_logger.yaml +2 -0
- fusion_bench-0.2.7/fusion_bench_config/fabric/strategy/deepspeed.yaml +10 -0
- fusion_bench-0.2.7/fusion_bench_config/fabric/strategy/llama_peft_fsdp.yaml +9 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric_model_fusion.yaml +1 -1
- fusion_bench-0.2.7/fusion_bench_config/llama_full_finetune.yaml +19 -0
- fusion_bench-0.2.7/fusion_bench_config/method/lm_finetune/bradley_terry_rm.yaml +47 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/lm_finetune/fullfinetune_sft.yaml +11 -4
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/lm_finetune/peftfinetune_sft.yaml +4 -2
- fusion_bench-0.2.7/fusion_bench_config/method/surgery/adamerging_surgery.yaml +27 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/CausalLMPool/llama_alpaca_cleaned.yaml +21 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/CausalLMPool/llama_codealpaca.yaml +21 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/CausalLMPool/llama_metamathqa.yaml +19 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/CausalLMPool/llama_ultrachat.yaml +18 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/SeqenceClassificationModelPool/llama_preference700k.yaml +23 -0
- fusion_bench-0.2.7/fusion_bench_config/modelpool/SeqenceClassificationModelPool/single_reward_model.yaml +14 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/nyuv2_config.yaml +5 -1
- fusion_bench-0.2.7/fusion_bench_config/taskpool/reward_model_evaluation.yaml +18 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/pyproject.toml +1 -1
- fusion_bench-0.2.6/fusion_bench/dataset/llama/collate.py +0 -60
- fusion_bench-0.2.6/fusion_bench/modelpool/causal_lm/__init__.py +0 -2
- fusion_bench-0.2.6/fusion_bench/utils/hydra_utils.py +0 -6
- fusion_bench-0.2.6/fusion_bench_config/llama_weighted_average.yaml +0 -26
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/LICENSE +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/README.md +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/modelpool/AutoModelForSeq2SeqLM.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/modelpool/base_pool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/modelpool/huggingface_clip_vision.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/taskpool/base_pool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/taskpool/clip_image_classification.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/constants/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/constants/paths.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/arc_agi.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/augmenters.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/messagers.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/np_cache.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/arc_agi/representers.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/clip_dataset.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/gpt2_glue.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/gsm8k.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/image_dataset.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/imdb.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/llama/openai.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/llama/sharegpt.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/llama/squad.py +0 -0
- {fusion_bench-0.2.6/fusion_bench/dataset/llama → fusion_bench-0.2.7/fusion_bench/dataset/llama/utils}/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/llama/wikitext.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/dataset/nyuv2.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ada_svd/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ada_svd/clip_vision.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/clip_layer_wise_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/clip_task_wise_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/entropy_loss.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/flan_t5_layer_wise_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/gpt2_layer_wise_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/llama_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/task_wise_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/analysis/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/analysis/task_vector_cos_similarity.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/analysis/task_vector_violin_plot.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/base_algorithm.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/classification/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/classification/clip_finetune.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/concrete_subspace/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dare/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dare/simple_average.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dare/task_arithmetic.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dare/utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dawe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dawe/dawe_for_clip.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dawe/warppers/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dawe/warppers/dawe_model.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/depth_upscaling/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/depth_upscaling/depth_upscaling.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/depth_upscaling/depth_upscaling_for_llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/dummy.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ensemble.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/fisher_merging/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/fisher_merging/clip_fisher_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/fisher_merging/fisher_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/fisher_merging/gpt2_fisher_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/linear_interpolation.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/llama_expo.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/simple_average_for_llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/linear/task_arithmetic_for_llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/lm_finetune/causal_lm_pretrain.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/mixture_of_experts/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/mixture_of_experts/mixtral_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/mixture_of_experts/mixtral_upcycling.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/model_recombination.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/llama_wanda_prune.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/magnitude_diff_pruning.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/prune_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/ablate.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/data.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/eval.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/layerwrapper.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/prune.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/prune_opt.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pruning/wanda_utils/sparsegpt.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/clip_pwe_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/module.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/phn/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/phn/solvers.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/pwe_moe/utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/rankone_moe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/rankone_moe/clip_rankone_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/rankone_moe/rankone_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/regmean/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/regmean/clip_regmean.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/regmean/gpt2_regmean.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/regmean/regmean.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/simple_average.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/slerp/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/slerp/slerp.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/slerp/slerp_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/smile_upscaling/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/smile_upscaling/singular_projection_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/smile_upscaling/smile_mistral_upscaling.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/smile_upscaling/smile_upscaling.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/sparse_we_moe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/sparse_we_moe/sparse_clip_we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/sparse_we_moe/sparse_we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/sparselo/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/sparselo/sparselo.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/task_arithmetic/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/task_arithmetic/task_arithmetic.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ties_merging/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ties_merging/ties_merging.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/ties_merging/ties_merging_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/trust_region/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/trust_region/clip_task_arithmetic.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/trust_region/utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/we_moe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/we_moe/clip_we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/we_moe/we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/weighted_average/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/weighted_average/llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/weighted_average/weighted_average.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/depth.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/loss.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/noise.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/normal.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/nyuv2/segmentation.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/text_to_image_generation/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/text_to_image_generation/compressibility.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/optim/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/optim/adamw_with_warmup.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/rich_live.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/serialization.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/mixins/simple_profiler.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/PeftModelForSeq2SeqLM.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/base_pool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/clip_vision/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/clip_vision/modelpool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/huggingface_automodel.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/huggingface_gpt2_classification.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/nyuv2_modelpool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/seq2seq_lm/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/modelpool/seq2seq_lm/modelpool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/linearized/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/linearized/linearized_model_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/linearized/vision_model.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/embedding.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/liger_kernel.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/misc.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/mod.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/model_utils/visual.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/patcher.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/llama/tokenizer_loader.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/masks/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/masks/mask_model.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/configuration_losparse_llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/losparse_linear.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/modeling_losparse_llama.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/register.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_losparse_llama/utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_smile_mistral/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_smile_mistral/configuration_smile_mistral.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_smile_mistral/modeling_smile_mistral.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/modeling_smile_mistral/register.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/nyuv2/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/nyuv2/aspp.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/nyuv2/lightning_module.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/nyuv2/resnet.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/nyuv2/resnet_dilated.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/parameter_dict.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/rankone_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/separate_io.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/smile_moe/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/smile_moe/linear.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/sparse_we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/we_moe.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/wrappers/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/models/wrappers/ensemble.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/programs/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/programs/base_program.py +0 -0
- {fusion_bench-0.2.6/fusion_bench/optim → fusion_bench-0.2.7/fusion_bench/scripts}/__init__.py +0 -0
- {fusion_bench-0.2.6/fusion_bench/scripts → fusion_bench-0.2.7/fusion_bench/scripts/clip}/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/scripts/clip/convert_checkpoint.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/scripts/imgui.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/scripts/nyuv2_mtl_train.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/scripts/webui.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/base_pool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/clip_vision/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/clip_vision/clip_rankone_moe_taskpool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/clip_vision/clip_sparse_wemoe_taskpool.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/dummy.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/gpt2_text_classification.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/llama/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/taskpool/llama/test_generation.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/base_task.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/classification.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/cifar10.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/cifar100.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/clip_dataset.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/dtd.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/eurosat.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/flower102.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/gtsrb.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/imagenet.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/mnist.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/oxford_iiit_pet.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/rendered_sst2.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/resisc45.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/stanford_cars.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/stl10.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/sun397.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/svhn.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/clip_classification/tiny_imagenet.py +0 -0
- {fusion_bench-0.2.6/fusion_bench/scripts/clip → fusion_bench-0.2.7/fusion_bench/tasks/flan_t5_text_generation}/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/flan_t5_text_generation/datasets_preprocess.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/auto.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/cache_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/data.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/devices.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/dtype.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/functools.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/instantiate.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/json.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/lazy_imports.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/misc.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/packages.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/parameters.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/path.py +0 -0
- {fusion_bench-0.2.6/fusion_bench/tasks/flan_t5_text_generation → fusion_bench-0.2.7/fusion_bench/utils/plot}/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/pylogger.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/rich_utils.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/state_dict_arithmetic.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/strenum/__init__.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/strenum/_name_mangler.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/strenum/_version.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/utils/timer.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/dependency_links.txt +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/entry_points.txt +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/requires.txt +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench.egg-info/top_level.txt +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/README.md +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/cifar10.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/cifar100.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/test/tiny-imagenet.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/cifar10.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/cifar100.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/train/tiny-imagenet.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/image_classification/val/the_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/question_answering/search_qa.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/question_answering/test/search_qa.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/question_answering/train/MetaMathQA.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/question_answering/train/search_qa.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/question_answering/val/search_qa.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/summarization/test/xsum.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/summarization/train/xsum.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/summarization/val/xsum.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/summarization/xsum.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/test/gsm-hard.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/test/gsm8k.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/test/gsm8k_question_label.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/train/CodeAlpaca-20k.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/train/gsm8k.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/dataset/text_generation/train/gsm8k_question_label.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/auto.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/llama_ddp.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/llama_fsdp.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/loggers/csv_logger.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/loggers/tensorboard_logger.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/fabric/strategy/llama_fsdp.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/hydra/default.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/hydra/help/fusion_bench_help.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/hydra/job_logging/rich_logging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/llama_magnitude_pruning.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/llama_model_fusion.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/ada_svd/clip_vision.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/adamerging/clip.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/adamerging/layer_wise_flan_t5.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/adamerging/layer_wise_gpt2.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/adamerging/llama_sft.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/adamerging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/analysis/task_vector_cos_similarity.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/analysis/task_vector_violin_plot.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/clip_finetune.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/dare/simple_average.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/dare/task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/dawe/dawe_for_clip.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/depth_upscaling.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/dummy.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/ensemble/max_model_predictor.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/ensemble/simple_ensemble.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/ensemble/weighted_ensemble.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/fisher_merging/clip_fisher_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/fisher_merging/fisher_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/expo.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/linear_interpolation.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/llama_expo.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/llama_expo_with_dare.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/simple_average_for_llama.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/task_arithmetic_for_llama.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/weighted_average.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/linear/weighted_average_for_llama.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/mixtral_moe_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/mixtral_moe_upscaling.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/model_recombination.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/pruning/llama_random_pruning.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/pruning/llama_wanda_pruning.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/pruning/magnitude_diff_pruning.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/pwe_moe_ls_for_clip.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/rankone_moe/rankone_moe.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/regmean/clip_regmean.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/regmean/gpt2_regmean.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/regmean/regmean.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/simple_average.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/slerp/slerp.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/smile_upscaling/singular_projection_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/smile_upscaling/smile_mistral_upscaling.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/smile_upscaling/smile_upscaling.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/sparselo_pruning/llama_iterative_sparselo.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/sparselo_pruning/llama_pcp_sparselo.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/sparselo_pruning/llama_sparselo.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/ties_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/trust_region/clip_task_arithmetic.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/wemoe/sparse_weight_ensembling_moe.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/method/wemoe/weight_ensembling_moe.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch16_svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-base-patch32_svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_dtd.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eight_tasks.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_eurosat.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_gtsrb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_resisc45.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_stanford-cars.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_sun397.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/clip-vit-large-patch14_svhn.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/clip-vit/generate_vit_model_config.sh +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-cola_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mnli_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-mrpc_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qnli_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-qqp_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-rte_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-sst2_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-base_glue-stsb_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-cola_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mnli_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-mrpc_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qnli_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-qqp_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-rte_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-sst2_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/flan-t5-large_glue-stsb_lora-16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/model/flan-t5/generate_flan-t5.sh +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/_template.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_TA8_lora.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch16_individual_lora.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_control_task.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_TA8_model_only.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp1.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generalization_exp2.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_individual.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_mtl.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8_model_only.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_individual.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CausalLMPool/llama_for_causallm.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CausalLMPool/simle_mixtral_exp_v4.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/CausalLMPool/single_llama_model.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/_template.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_glue_lora16_tta.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-base_individual.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/Seq2SeqLMPool/flan-t5-large_glue_lora16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/automodelpool.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/gpt-2_glue.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/mixtral_moe_merging.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/mixtral_moe_upscaling.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/nyuv2_modelpool.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/smile_mistral_exp_v1.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/smile_mistral_exp_v2.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/smile_mistral_exp_v3.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/modelpool/smile_mistral_exp_v4.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/nyuv2_mtl_train.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/_template.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_B16.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_L14.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_val.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_with_control_task.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_rankone_wemoe_clip-vit-classification_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_sparse_wemoe_clip-vit-classification_TA8.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_clean.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/clip-vit-base-patch32_svhn_and_mnist.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/dummy.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/flan-t5_glue_text_generation.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/gpt-2_glue.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench_config/taskpool/nyuv2_taskpool.yaml +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/setup.cfg +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/tests/test_depth_upscaling.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/tests/test_simple_average.py +0 -0
- {fusion_bench-0.2.6 → fusion_bench-0.2.7}/tests/test_weighed_ensemble.py +0 -0
|
@@ -21,6 +21,7 @@ class AlgorithmFactory:
|
|
|
21
21
|
"clip_task_wise_adamerging": ".adamerging.clip_task_wise_adamerging.CLIPTaskWiseAdaMergingAlgorithm",
|
|
22
22
|
"clip_layer_wise_adamerging": ".adamerging.clip_layer_wise_adamerging.CLIPLayerWiseAdaMergingAlgorithm",
|
|
23
23
|
"singular_projection_merging": "fusion_bench.method.smile_upscaling.singular_projection_merging.SingularProjectionMergingAlgorithm",
|
|
24
|
+
"clip_layer_wise_adamerging_surgery": ".surgery.clip_layer_wise_adamerging_surgery.CLIPLayerWiseAdaMergingSurgeryAlgorithm",
|
|
24
25
|
# plug-and-play model merging methods
|
|
25
26
|
"clip_concrete_task_arithmetic": ".concrete_subspace.clip_concrete_task_arithmetic.ConcreteTaskArithmeticAlgorithmForCLIP",
|
|
26
27
|
"clip_concrete_task_wise_adamerging": ".concrete_subspace.clip_concrete_adamerging.ConcreteTaskWiseAdaMergingForCLIP",
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from typing import Optional
|
|
2
|
+
from typing import Optional, TYPE_CHECKING
|
|
3
3
|
|
|
4
4
|
from omegaconf import DictConfig
|
|
5
5
|
|
|
6
|
+
if TYPE_CHECKING:
|
|
7
|
+
from fusion_bench.programs.base_program import BaseHydraProgram
|
|
8
|
+
|
|
6
9
|
__all__ = ["ModelFusionAlgorithm"]
|
|
7
10
|
|
|
8
11
|
|
|
@@ -18,6 +21,9 @@ class ModelFusionAlgorithm(ABC):
|
|
|
18
21
|
config (DictConfig): Configuration for the algorithm.
|
|
19
22
|
"""
|
|
20
23
|
|
|
24
|
+
_program: "BaseHydraProgram" = None
|
|
25
|
+
"""A reference to the program that is running the algorithm."""
|
|
26
|
+
|
|
21
27
|
def __init__(self, algorithm_config: Optional[DictConfig] = None):
|
|
22
28
|
"""
|
|
23
29
|
Initialize the model fusion algorithm with the given configuration.
|
|
@@ -22,7 +22,7 @@ class ModelPoolFactory:
|
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
24
|
_modelpool = {
|
|
25
|
-
"NYUv2ModelPool": ".nyuv2_modelpool.NYUv2ModelPool",
|
|
25
|
+
"NYUv2ModelPool": "fusion_bench.modelpool.nyuv2_modelpool.NYUv2ModelPool",
|
|
26
26
|
"huggingface_clip_vision": HuggingFaceClipVisionPool,
|
|
27
27
|
"HF_GPT2ForSequenceClassification": GPT2ForSequenceClassificationPool,
|
|
28
28
|
"AutoModelPool": ".huggingface_automodel.AutoModelPool",
|
|
@@ -20,7 +20,7 @@ class TaskPoolFactory:
|
|
|
20
20
|
"dummy": DummyTaskPool,
|
|
21
21
|
"clip_vit_classification": ".clip_image_classification.CLIPImageClassificationTaskPool",
|
|
22
22
|
"FlanT5GLUETextGenerationTaskPool": ".flan_t5_glue_text_generation.FlanT5GLUETextGenerationTaskPool",
|
|
23
|
-
"NYUv2TaskPool": ".nyuv2_taskpool.NYUv2TaskPool",
|
|
23
|
+
"NYUv2TaskPool": "fusion_bench.taskpool.nyuv2_taskpool.NYUv2TaskPool",
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
@staticmethod
|
|
@@ -152,6 +152,11 @@ class Task:
|
|
|
152
152
|
tasks = []
|
|
153
153
|
for test_data in data["test"]:
|
|
154
154
|
task = cls.deserialize(
|
|
155
|
+
{
|
|
156
|
+
"train": data["train"],
|
|
157
|
+
"test": [test_data],
|
|
158
|
+
"name": data.get("name", ""),
|
|
159
|
+
},
|
|
155
160
|
{
|
|
156
161
|
"train": data["train"],
|
|
157
162
|
"test": [test_data],
|
|
@@ -143,7 +143,7 @@ def format_and_filter(
|
|
|
143
143
|
data = {
|
|
144
144
|
"input_ids": prompt_tokens + output_tokens,
|
|
145
145
|
"attention_mask": [1] * len(prompt_tokens) + [1] * len(output_tokens),
|
|
146
|
-
"labels":
|
|
146
|
+
"labels": prompt_tokens + output_tokens,
|
|
147
147
|
"task_id": task_id,
|
|
148
148
|
"num_prompt_tokens": len(prompt_tokens),
|
|
149
149
|
"num_output_tokens": len(output_tokens),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from . import collate
|
|
@@ -1,16 +1,100 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
+
import warnings
|
|
3
4
|
from typing import Any, Dict, List, Optional
|
|
4
5
|
|
|
5
6
|
from datasets import Dataset, load_dataset, load_from_disk
|
|
7
|
+
from lightning.fabric.utilities import rank_zero_only
|
|
8
|
+
from tqdm.auto import tqdm
|
|
6
9
|
from transformers import PreTrainedTokenizer
|
|
7
10
|
|
|
8
11
|
import fusion_bench
|
|
12
|
+
from fusion_bench.utils import timeit_context
|
|
9
13
|
|
|
10
14
|
log = logging.getLogger(__name__)
|
|
11
15
|
|
|
12
16
|
|
|
13
|
-
def
|
|
17
|
+
def convert_alpaca_to_conversation(alpaca_data: List[Dict[str, str]]):
|
|
18
|
+
"""
|
|
19
|
+
Convert Alpaca format data to conversation format.
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
alpaca_data (list): List of dictionaries in Alpaca format with
|
|
23
|
+
'instruction', 'input', and 'output' keys
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
list: List of conversations in ChatML format
|
|
27
|
+
"""
|
|
28
|
+
conversations = []
|
|
29
|
+
|
|
30
|
+
for item in tqdm(
|
|
31
|
+
alpaca_data,
|
|
32
|
+
"Converting Alpaca to conversations",
|
|
33
|
+
disable=not rank_zero_only.rank == 0,
|
|
34
|
+
):
|
|
35
|
+
# Skip if required fields are missing
|
|
36
|
+
if not item.get("instruction") or not item.get("output"):
|
|
37
|
+
continue
|
|
38
|
+
|
|
39
|
+
conversation = []
|
|
40
|
+
|
|
41
|
+
# Create user message
|
|
42
|
+
user_content = item["instruction"]
|
|
43
|
+
if item.get("input") and item["input"].strip():
|
|
44
|
+
user_content += f"\n\n{item['input']}"
|
|
45
|
+
|
|
46
|
+
conversation.append({"role": "user", "content": user_content})
|
|
47
|
+
|
|
48
|
+
# Create assistant message
|
|
49
|
+
conversation.append({"role": "assistant", "content": item["output"]})
|
|
50
|
+
|
|
51
|
+
conversations.append(conversation)
|
|
52
|
+
|
|
53
|
+
return conversations
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def load_tokenized_alpaca_dataset(
|
|
57
|
+
tokenizer: PreTrainedTokenizer,
|
|
58
|
+
path: str = "yahma/alpaca-cleaned",
|
|
59
|
+
split: str = "train",
|
|
60
|
+
cache_path: Optional[str] = None,
|
|
61
|
+
):
|
|
62
|
+
"""
|
|
63
|
+
Load and tokenized Alpaca dataset and Alpaca-like dataset.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
tokenizer (PreTrainedTokenizer): The tokenizer to use for tokenizing the dataset.
|
|
67
|
+
path (str, optional): The path to the Alpaca dataset. Defaults to "yahma/alpaca-cleaned".
|
|
68
|
+
split (str, optional): The dataset split to load (e.g., "train", "test"). Defaults to "train".
|
|
69
|
+
cache_path (Optional[str], optional): The path to cache the tokenized dataset. If provided and the cache exists,
|
|
70
|
+
the dataset will be loaded from the cache. Defaults to None.
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
Dataset: The tokenized dataset.
|
|
74
|
+
"""
|
|
75
|
+
if cache_path is not None and os.path.exists(cache_path):
|
|
76
|
+
dataset = load_from_disk(cache_path)
|
|
77
|
+
if split is not None and split in dataset:
|
|
78
|
+
return dataset[split]
|
|
79
|
+
else:
|
|
80
|
+
return dataset
|
|
81
|
+
|
|
82
|
+
dataset = load_dataset(path, split=split)
|
|
83
|
+
|
|
84
|
+
alpaca_data = dataset.to_list()
|
|
85
|
+
conversations = convert_alpaca_to_conversation(alpaca_data)
|
|
86
|
+
with timeit_context("Tokenizing dataset"):
|
|
87
|
+
tokenized_dataset = tokenizer.apply_chat_template(
|
|
88
|
+
conversations, return_dict=True
|
|
89
|
+
)
|
|
90
|
+
tokenized_dataset = Dataset.from_dict(tokenized_dataset)
|
|
91
|
+
|
|
92
|
+
if cache_path is not None and rank_zero_only.rank == 0:
|
|
93
|
+
tokenized_dataset.save_to_disk(cache_path)
|
|
94
|
+
return tokenized_dataset
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def _tokenize_alpaca_dataset_with_template(
|
|
14
98
|
dataset: Dataset,
|
|
15
99
|
tokenizer: PreTrainedTokenizer,
|
|
16
100
|
max_length: int = 2048,
|
|
@@ -32,6 +116,10 @@ def tokenize_alpaca_dataset(
|
|
|
32
116
|
Returns:
|
|
33
117
|
Tokenized dataset
|
|
34
118
|
"""
|
|
119
|
+
warnings.warn(
|
|
120
|
+
"This function is deprecated. Use `apply_chat_template` from `transformers` instead.",
|
|
121
|
+
DeprecationWarning,
|
|
122
|
+
)
|
|
35
123
|
|
|
36
124
|
def prepare_samples(samples: Dict[str, List[str]]) -> Dict[str, List[List[int]]]:
|
|
37
125
|
# Format prompts based on whether input field exists
|
|
@@ -115,7 +203,7 @@ def tokenize_alpaca_dataset(
|
|
|
115
203
|
return tokenized_dataset
|
|
116
204
|
|
|
117
205
|
|
|
118
|
-
def
|
|
206
|
+
def load_tokenized_alpaca_dataset_from_json_with_prompt(
|
|
119
207
|
data_files: str,
|
|
120
208
|
tokenizer: PreTrainedTokenizer,
|
|
121
209
|
max_length: int,
|
|
@@ -138,5 +226,7 @@ def load_tokenized_alpaca_dataset_from_json(
|
|
|
138
226
|
dataset = load_dataset("json", data_files=data_files)
|
|
139
227
|
if split is not None:
|
|
140
228
|
dataset = dataset[split]
|
|
141
|
-
dataset =
|
|
229
|
+
dataset = _tokenize_alpaca_dataset_with_template(
|
|
230
|
+
dataset, tokenizer, max_length=max_length
|
|
231
|
+
)
|
|
142
232
|
return dataset
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
from typing import Dict, List, Optional
|
|
2
|
+
|
|
3
|
+
import torch
|
|
4
|
+
import torch.nn.functional as F
|
|
5
|
+
from torch.nn.utils.rnn import pad_sequence
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def padded_collate_sft(
|
|
9
|
+
batch: List[Dict[str, List[int]]],
|
|
10
|
+
pad_token_id: int = 0,
|
|
11
|
+
input_ids_key: str = "input_ids",
|
|
12
|
+
attention_mask_key: Optional[str] = "attention_mask",
|
|
13
|
+
labels_key: Optional[str] = "labels",
|
|
14
|
+
ignore_idx: int = -100,
|
|
15
|
+
) -> Dict[str, torch.Tensor]:
|
|
16
|
+
"""
|
|
17
|
+
Pad (right) a batch of sequences to the longest sequence length in the batch, and
|
|
18
|
+
convert integer lists to tensors.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
batch (List[Dict[str, List[int]]]): A list of dictionaries containing input, label pairs.
|
|
22
|
+
padding_idx (int): Padding index for input ids. Defaults to 0.
|
|
23
|
+
ignore_idx (int): Padding index for labels. Defaults to -100.
|
|
24
|
+
|
|
25
|
+
Returns:
|
|
26
|
+
Dict[str, torch.Tensor]: Collated input and label tensors.
|
|
27
|
+
"""
|
|
28
|
+
input_ids = pad_sequence(
|
|
29
|
+
[torch.tensor(x[input_ids_key]) for x in batch],
|
|
30
|
+
batch_first=True,
|
|
31
|
+
padding_value=pad_token_id,
|
|
32
|
+
)
|
|
33
|
+
if attention_mask_key is not None and attention_mask_key in batch[0]:
|
|
34
|
+
attention_mask = pad_sequence(
|
|
35
|
+
[torch.tensor(x[attention_mask_key]) for x in batch],
|
|
36
|
+
batch_first=True,
|
|
37
|
+
padding_value=0,
|
|
38
|
+
)
|
|
39
|
+
else:
|
|
40
|
+
attention_mask = None
|
|
41
|
+
|
|
42
|
+
for i, item in enumerate(batch):
|
|
43
|
+
# if labels_key not in item, copy input_ids to labels_key
|
|
44
|
+
if labels_key not in item:
|
|
45
|
+
item[labels_key] = item[input_ids_key]
|
|
46
|
+
|
|
47
|
+
labels = pad_sequence(
|
|
48
|
+
[torch.tensor(x[labels_key]) for x in batch],
|
|
49
|
+
batch_first=True,
|
|
50
|
+
padding_value=ignore_idx,
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
if attention_mask is not None:
|
|
54
|
+
collated_batch = {
|
|
55
|
+
input_ids_key: input_ids,
|
|
56
|
+
attention_mask_key: attention_mask,
|
|
57
|
+
labels_key: labels,
|
|
58
|
+
}
|
|
59
|
+
else:
|
|
60
|
+
collated_batch = {input_ids_key: input_ids, labels_key: labels}
|
|
61
|
+
|
|
62
|
+
for key in batch[0]:
|
|
63
|
+
if key not in [input_ids_key, attention_mask_key, labels_key]:
|
|
64
|
+
collated_batch[key] = [x[key] for x in batch]
|
|
65
|
+
|
|
66
|
+
return collated_batch
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def bradley_terry_rm_collate(
|
|
70
|
+
batch: List[Dict[str, List[int]]],
|
|
71
|
+
pad_token_id: int = 0,
|
|
72
|
+
padding_side="right",
|
|
73
|
+
):
|
|
74
|
+
"""
|
|
75
|
+
Collate function for Bradley-Terry reward modeling.
|
|
76
|
+
|
|
77
|
+
Args:
|
|
78
|
+
batch (List[Dict[str, List[int]]]): A list of dictionaries containing input, label pairs.
|
|
79
|
+
pad_token_id (int): Padding index for input ids. Defaults to 0.
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
Dict[str, torch.Tensor]: Collated input and label tensors. The first half of the batch is the winner, and the second half is the loser.
|
|
83
|
+
"""
|
|
84
|
+
converted_batch = []
|
|
85
|
+
for item in batch:
|
|
86
|
+
new_item = {
|
|
87
|
+
"input_ids": item["chosen_input_ids"],
|
|
88
|
+
"attention_mask": item["chosen_attention_mask"],
|
|
89
|
+
}
|
|
90
|
+
converted_batch.append(new_item)
|
|
91
|
+
for item in batch:
|
|
92
|
+
new_item = {
|
|
93
|
+
"input_ids": item["rejected_input_ids"],
|
|
94
|
+
"attention_mask": item["rejected_attention_mask"],
|
|
95
|
+
}
|
|
96
|
+
converted_batch.append(new_item)
|
|
97
|
+
|
|
98
|
+
input_ids = pad_sequence(
|
|
99
|
+
[torch.tensor(x["input_ids"]) for x in converted_batch],
|
|
100
|
+
batch_first=True,
|
|
101
|
+
padding_value=pad_token_id,
|
|
102
|
+
padding_side=padding_side,
|
|
103
|
+
)
|
|
104
|
+
attention_mask = pad_sequence(
|
|
105
|
+
[torch.tensor(x["attention_mask"]) for x in converted_batch],
|
|
106
|
+
batch_first=True,
|
|
107
|
+
padding_value=0,
|
|
108
|
+
padding_side=padding_side,
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
collated_batch = {"input_ids": input_ids, "attention_mask": attention_mask}
|
|
112
|
+
for key in batch[0]:
|
|
113
|
+
if key not in [
|
|
114
|
+
"chosen_input_ids",
|
|
115
|
+
"chosen_attention_mask",
|
|
116
|
+
"rejected_input_ids",
|
|
117
|
+
"rejected_attention_mask",
|
|
118
|
+
]:
|
|
119
|
+
collated_batch[key] = [x[key] for x in batch]
|
|
120
|
+
return collated_batch
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import TYPE_CHECKING, Optional
|
|
3
|
+
|
|
4
|
+
from datasets import Dataset, load_dataset, load_from_disk
|
|
5
|
+
from lightning.fabric.utilities import rank_zero_only
|
|
6
|
+
from tqdm.auto import tqdm
|
|
7
|
+
|
|
8
|
+
from fusion_bench.utils import timeit_context
|
|
9
|
+
|
|
10
|
+
from .alpaca import convert_alpaca_to_conversation
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from transformers import PreTrainedTokenizer
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def load_tokenized_metamathqa(
|
|
17
|
+
tokenizer: "PreTrainedTokenizer",
|
|
18
|
+
path: str = "meta-math/MetaMathQA",
|
|
19
|
+
split: str = "train",
|
|
20
|
+
cache_path: Optional[str] = None,
|
|
21
|
+
):
|
|
22
|
+
if cache_path is not None and os.path.exists(cache_path):
|
|
23
|
+
dataset = load_from_disk(cache_path)
|
|
24
|
+
if split is not None and split in dataset:
|
|
25
|
+
return dataset[split]
|
|
26
|
+
else:
|
|
27
|
+
return dataset
|
|
28
|
+
|
|
29
|
+
dataset = load_dataset(path, split=split)
|
|
30
|
+
|
|
31
|
+
# convert dataset to alpaca format and save to ../data/MetaMathQA.json
|
|
32
|
+
alpaca_dataset = []
|
|
33
|
+
for example in tqdm(dataset, disable=not rank_zero_only.rank == 0):
|
|
34
|
+
alpaca_example = {
|
|
35
|
+
"instruction": example["query"],
|
|
36
|
+
"input": "",
|
|
37
|
+
"output": example["response"],
|
|
38
|
+
}
|
|
39
|
+
alpaca_dataset.append(alpaca_example)
|
|
40
|
+
|
|
41
|
+
conversations = convert_alpaca_to_conversation(alpaca_dataset)
|
|
42
|
+
with timeit_context("Tokenizing dataset"):
|
|
43
|
+
tokenized_dataset = tokenizer.apply_chat_template(
|
|
44
|
+
conversations, return_dict=True
|
|
45
|
+
)
|
|
46
|
+
tokenized_dataset = Dataset.from_dict(tokenized_dataset)
|
|
47
|
+
|
|
48
|
+
if cache_path is not None and rank_zero_only.rank == 0:
|
|
49
|
+
tokenized_dataset.save_to_disk(cache_path)
|
|
50
|
+
return tokenized_dataset
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from copy import deepcopy
|
|
3
|
+
from typing import TYPE_CHECKING, Optional
|
|
4
|
+
|
|
5
|
+
from datasets import Dataset, load_dataset, load_from_disk
|
|
6
|
+
from lightning.fabric.utilities import rank_zero_only
|
|
7
|
+
from tqdm.auto import tqdm
|
|
8
|
+
|
|
9
|
+
from fusion_bench.utils import timeit_context
|
|
10
|
+
import logging
|
|
11
|
+
|
|
12
|
+
if TYPE_CHECKING:
|
|
13
|
+
from transformers import PreTrainedTokenizer
|
|
14
|
+
|
|
15
|
+
log = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def load_tokenized_preference_700k_for_rlhf(
|
|
19
|
+
tokenizer: "PreTrainedTokenizer",
|
|
20
|
+
path: str = "hendrydong/preference_700K",
|
|
21
|
+
split: str = "train",
|
|
22
|
+
num_proc: int = 8,
|
|
23
|
+
cache_path: Optional[str] = None,
|
|
24
|
+
):
|
|
25
|
+
R"""
|
|
26
|
+
Load and tokenized Preference 700k dataset for Bradley-Terry ranking model.
|
|
27
|
+
|
|
28
|
+
The returned dataset contains the following fields:
|
|
29
|
+
|
|
30
|
+
- chosen_input_ids: The input token ids for the winner.
|
|
31
|
+
- chosen_attention_mask: The attention mask for the winner.
|
|
32
|
+
- rejected_input_ids: The input token ids for the loser.
|
|
33
|
+
- rejected_attention_mask: The attention mask for the loser.
|
|
34
|
+
"""
|
|
35
|
+
if cache_path is not None and os.path.exists(cache_path):
|
|
36
|
+
dataset = load_from_disk(cache_path)
|
|
37
|
+
return dataset
|
|
38
|
+
|
|
39
|
+
dataset = load_dataset(path, split=split)
|
|
40
|
+
|
|
41
|
+
def tokenize(sample):
|
|
42
|
+
sample["chosen_chat"] = tokenizer.apply_chat_template(
|
|
43
|
+
sample["chosen"], tokenize=False, add_generation_prompt=False
|
|
44
|
+
)
|
|
45
|
+
sample["rejected_chat"] = tokenizer.apply_chat_template(
|
|
46
|
+
sample["rejected"], tokenize=False, add_generation_prompt=False
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
tokenized_pos = tokenizer(sample["chosen_chat"], truncation=True)
|
|
50
|
+
tokenized_neg = tokenizer(sample["rejected_chat"], truncation=True)
|
|
51
|
+
|
|
52
|
+
# Ensure that the chosen response does not contain an PAD token
|
|
53
|
+
sample["chosen_input_ids"] = tokenized_pos["input_ids"]
|
|
54
|
+
sample["chosen_attention_mask"] = tokenized_pos["attention_mask"]
|
|
55
|
+
if tokenizer.pad_token_id in tokenized_pos["input_ids"]:
|
|
56
|
+
log.warning(f"Prompt contains PAD token: {sample['chosen_chat']}")
|
|
57
|
+
|
|
58
|
+
sample["rejected_input_ids"] = tokenized_neg["input_ids"]
|
|
59
|
+
sample["rejected_attention_mask"] = tokenized_neg["attention_mask"]
|
|
60
|
+
# Ensure that the rejected response does not contain an PAD token
|
|
61
|
+
if tokenizer.pad_token_id in tokenized_neg["input_ids"]:
|
|
62
|
+
log.warning(f"Prompt contains PAD token: {sample['rejected_chat']}")
|
|
63
|
+
|
|
64
|
+
return sample
|
|
65
|
+
|
|
66
|
+
dataset = dataset.map(tokenize, num_proc=num_proc)
|
|
67
|
+
|
|
68
|
+
if cache_path is not None and rank_zero_only.rank == 0:
|
|
69
|
+
dataset.save_to_disk(cache_path)
|
|
70
|
+
return dataset
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from copy import deepcopy
|
|
3
|
+
from typing import TYPE_CHECKING, Optional
|
|
4
|
+
|
|
5
|
+
from datasets import Dataset, load_dataset, load_from_disk
|
|
6
|
+
from lightning.fabric.utilities import rank_zero_only
|
|
7
|
+
from tqdm.auto import tqdm
|
|
8
|
+
|
|
9
|
+
from fusion_bench.utils import timeit_context
|
|
10
|
+
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from transformers import PreTrainedTokenizer
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def load_tokenized_stanford_shp_for_rlhf(
|
|
16
|
+
tokenizer: "PreTrainedTokenizer",
|
|
17
|
+
path: str = "stanfordnlp/SHP",
|
|
18
|
+
split: str = "train",
|
|
19
|
+
num_proc: int = 8,
|
|
20
|
+
cache_path: Optional[str] = None,
|
|
21
|
+
):
|
|
22
|
+
if cache_path is not None and os.path.isdir(cache_path):
|
|
23
|
+
dataset = load_from_disk(cache_path)
|
|
24
|
+
return dataset
|
|
25
|
+
|
|
26
|
+
dataset = load_dataset(path, split=split)
|
|
27
|
+
|
|
28
|
+
def tokenize(sample):
|
|
29
|
+
"""
|
|
30
|
+
- history: the post title concatented to the post body (string)
|
|
31
|
+
- human_ref_A: text of comment A (string)
|
|
32
|
+
- human_ref_B: text of comment B (string)
|
|
33
|
+
- labels: the preference label -- it is 1 if A is preferred to B; 0 if B is preferred to A. This was randomized such that the label distribution is roughly 50/50. (integer)
|
|
34
|
+
"""
|
|
35
|
+
# Create a conversation with the post title and body, followed by comments
|
|
36
|
+
conversation = [{"role": "user", "content": sample["history"]}]
|
|
37
|
+
if sample["labels"] == 0:
|
|
38
|
+
sample["chosen"] = deepcopy(conversation).append(
|
|
39
|
+
{"role": "assistant", "content": sample["human_ref_B"]}
|
|
40
|
+
)
|
|
41
|
+
sample["rejected"] = deepcopy(conversation).append(
|
|
42
|
+
{"role": "assistant", "content": sample["human_ref_A"]}
|
|
43
|
+
)
|
|
44
|
+
else:
|
|
45
|
+
sample["chosen"] = deepcopy(conversation).append(
|
|
46
|
+
{"role": "assistant", "content": sample["human_ref_A"]}
|
|
47
|
+
)
|
|
48
|
+
sample["rejected"] = deepcopy(conversation).append(
|
|
49
|
+
{"role": "assistant", "content": sample["human_ref_B"]}
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
# apply chat template
|
|
53
|
+
sample["chosen_chat"] = tokenizer.apply_chat_template(
|
|
54
|
+
sample["chosen"], tokenize=False, add_generation_prompt=False
|
|
55
|
+
)
|
|
56
|
+
sample["rejected_chat"] = tokenizer.apply_chat_template(
|
|
57
|
+
sample["rejected"], tokenize=False, add_generation_prompt=False
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# tokenize the conversation
|
|
61
|
+
tokenized_pos = tokenizer(sample["chosen_chat"], truncation=True)
|
|
62
|
+
tokenized_neg = tokenizer(sample["rejected_chat"], truncation=True)
|
|
63
|
+
|
|
64
|
+
# Ensure that the chosen response does not contain an EOS token
|
|
65
|
+
sample["chosen_input_ids"] = tokenized_pos["input_ids"]
|
|
66
|
+
sample["chosen_attention_mask"] = tokenized_pos["attention_mask"]
|
|
67
|
+
assert (
|
|
68
|
+
tokenizer.eos_token_id not in tokenized_pos["input_ids"][:-1]
|
|
69
|
+
), f"Prompt contains EOS token: {sample['positive']}"
|
|
70
|
+
if sample["chosen_input_ids"][-1] != tokenizer.eos_token_id:
|
|
71
|
+
sample["chosen_input_ids"].append(tokenizer.eos_token_id)
|
|
72
|
+
sample["chosen_attention_mask"].append(1)
|
|
73
|
+
|
|
74
|
+
sample["rejected_input_ids"] = tokenized_neg["input_ids"]
|
|
75
|
+
sample["rejected_attention_mask"] = tokenized_neg["attention_mask"]
|
|
76
|
+
# Ensure that the rejected response does not contain an EOS token
|
|
77
|
+
assert (
|
|
78
|
+
tokenizer.eos_token_id not in tokenized_neg["input_ids"][:-1]
|
|
79
|
+
), f"Prompt contains EOS token: {sample['rejected']}"
|
|
80
|
+
if sample["rejected_input_ids"][-1] != tokenizer.eos_token_id:
|
|
81
|
+
sample["rejected_input_ids"].append(tokenizer.eos_token_id)
|
|
82
|
+
sample["rejected_attention_mask"].append(1)
|
|
83
|
+
|
|
84
|
+
return sample
|
|
85
|
+
|
|
86
|
+
dataset = dataset.map(tokenize, num_proc=num_proc)
|
|
87
|
+
|
|
88
|
+
if cache_path is not None and rank_zero_only.rank == 0:
|
|
89
|
+
dataset.save_to_disk(cache_path)
|
|
90
|
+
return dataset
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from typing import TYPE_CHECKING, Optional
|
|
3
|
+
|
|
4
|
+
from datasets import Dataset, load_dataset, load_from_disk
|
|
5
|
+
from lightning.fabric.utilities import rank_zero_only
|
|
6
|
+
from tqdm.auto import tqdm
|
|
7
|
+
|
|
8
|
+
from fusion_bench.utils import timeit_context
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from transformers import PreTrainedTokenizer
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def load_tokenized_ultrachat_200k(
|
|
15
|
+
tokenizer: "PreTrainedTokenizer",
|
|
16
|
+
path: str = "HuggingFaceH4/ultrachat_200k",
|
|
17
|
+
split: str = "train_sft",
|
|
18
|
+
num_proc: int = 8,
|
|
19
|
+
cache_path: Optional[str] = None,
|
|
20
|
+
):
|
|
21
|
+
R"""
|
|
22
|
+
Load and tokenized Ultrachat 200k dataset for Bradley-Terry ranking model.
|
|
23
|
+
|
|
24
|
+
The returned dataset contains the following fields:
|
|
25
|
+
|
|
26
|
+
- input_ids: The input token ids for the winner.
|
|
27
|
+
- attention_mask: The attention mask for the winner.
|
|
28
|
+
"""
|
|
29
|
+
if cache_path is not None and os.path.exists(cache_path):
|
|
30
|
+
dataset = load_from_disk(cache_path)
|
|
31
|
+
return dataset
|
|
32
|
+
|
|
33
|
+
dataset = load_dataset(path, split=split)
|
|
34
|
+
|
|
35
|
+
def tokenize(sample):
|
|
36
|
+
|
|
37
|
+
# ? is it necessary to `.replace(tokenizer.bos_token, "")`?
|
|
38
|
+
sample["input_ids"] = tokenizer.apply_chat_template(
|
|
39
|
+
sample["messages"], tokenize=True, add_generation_prompt=False
|
|
40
|
+
)
|
|
41
|
+
sample["attention_mask"] = [1] * len(sample["input_ids"])
|
|
42
|
+
|
|
43
|
+
return sample
|
|
44
|
+
|
|
45
|
+
dataset = dataset.map(tokenize, num_proc=num_proc)
|
|
46
|
+
|
|
47
|
+
if cache_path is not None and rank_zero_only.rank == 0:
|
|
48
|
+
dataset.save_to_disk(cache_path)
|
|
49
|
+
return dataset
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
if __name__ == "__main__":
|
|
53
|
+
# Example usage and testing
|
|
54
|
+
from transformers import AutoTokenizer
|
|
55
|
+
|
|
56
|
+
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B-Instruct")
|
|
57
|
+
dataset = load_tokenized_ultrachat_200k(tokenizer)
|
|
58
|
+
print(dataset)
|
|
@@ -10,7 +10,7 @@ _import_structure = {
|
|
|
10
10
|
"dummy": ["DummyAlgorithm"],
|
|
11
11
|
# single task learning (fine-tuning)
|
|
12
12
|
"classification": ["ImageClassificationFineTuningForCLIP"],
|
|
13
|
-
"lm_finetune": ["FullFinetuneSFT", "PeftFinetuneSFT"],
|
|
13
|
+
"lm_finetune": ["FullFinetuneSFT", "PeftFinetuneSFT", "BradleyTerryRewardModeling"],
|
|
14
14
|
# analysis
|
|
15
15
|
"analysis": ["TaskVectorCosSimilarity", "TaskVectorViolinPlot"],
|
|
16
16
|
# model ensemble methods
|
{fusion_bench-0.2.6 → fusion_bench-0.2.7}/fusion_bench/method/adamerging/layer_wise_adamerging.py
RENAMED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
3
|
from abc import abstractmethod
|
|
4
|
-
from typing import Any, List, Mapping, Union, cast # noqa: F401
|
|
4
|
+
from typing import TYPE_CHECKING, Any, List, Mapping, TypeVar, Union, cast # noqa: F401
|
|
5
5
|
|
|
6
6
|
import torch
|
|
7
7
|
from lightning.fabric.utilities.rank_zero import rank_zero_only
|
|
8
8
|
from omegaconf import DictConfig
|
|
9
|
-
from torch import Tensor
|
|
9
|
+
from torch import Tensor, nn
|
|
10
10
|
from torch.utils.data import DataLoader
|
|
11
11
|
from tqdm.autonotebook import tqdm
|
|
12
12
|
|
|
@@ -19,10 +19,14 @@ from fusion_bench.models.wrappers.layer_wise_fusion import (
|
|
|
19
19
|
get_layer_wise_weights,
|
|
20
20
|
)
|
|
21
21
|
from fusion_bench.utils.data import load_tensor_from_file
|
|
22
|
+
from fusion_bench.utils.type import TorchModelType
|
|
22
23
|
|
|
23
24
|
from .entropy_loss import entropy_loss
|
|
24
25
|
from .utils import get_memory_usage
|
|
25
26
|
|
|
27
|
+
if TYPE_CHECKING:
|
|
28
|
+
from fusion_bench.programs.fabric_fusion_program import FabricModelFusionProgram
|
|
29
|
+
|
|
26
30
|
log = logging.getLogger(__name__)
|
|
27
31
|
|
|
28
32
|
|
|
@@ -31,6 +35,9 @@ class LayerWiseAdaMergingAlgorithm(
|
|
|
31
35
|
LightningFabricMixin,
|
|
32
36
|
SimpleProfilerMixin,
|
|
33
37
|
):
|
|
38
|
+
_program: "FabricModelFusionProgram"
|
|
39
|
+
"""The program that this algorithm is running on."""
|
|
40
|
+
|
|
34
41
|
"""
|
|
35
42
|
Implements the Layer-Wise AdaMerging Algorithm.
|
|
36
43
|
|
|
@@ -48,7 +55,7 @@ class LayerWiseAdaMergingAlgorithm(
|
|
|
48
55
|
super().__init__(algorithm_config)
|
|
49
56
|
|
|
50
57
|
@torch.no_grad()
|
|
51
|
-
def construct_layer_wise_merged_model(self, modelpool: ModelPool):
|
|
58
|
+
def construct_layer_wise_merged_model(self, modelpool: "ModelPool"):
|
|
52
59
|
"""
|
|
53
60
|
Constructs a wrapped layer-wise merged model from model pool.
|
|
54
61
|
|
|
@@ -183,7 +190,7 @@ class LayerWiseAdaMergingAlgorithm(
|
|
|
183
190
|
"""
|
|
184
191
|
pass
|
|
185
192
|
|
|
186
|
-
def test_time_adaptation(self, module: LayerWiseMergedModel):
|
|
193
|
+
def test_time_adaptation(self, module: "LayerWiseMergedModel[TorchModelType]"):
|
|
187
194
|
"""
|
|
188
195
|
Perform test-time adaptation on the merged model.
|
|
189
196
|
|