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