fusion-bench 0.2.8__py3-none-any.whl → 0.2.10__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. fusion_bench/__main__.py +4 -0
  2. fusion_bench/dataset/fer2013.py +1 -0
  3. fusion_bench/method/__init__.py +26 -4
  4. fusion_bench/method/classification/__init__.py +1 -0
  5. fusion_bench/method/classification/clip_finetune.py +1 -3
  6. fusion_bench/method/classification/continual_clip_finetune.py +297 -0
  7. fusion_bench/method/dare/__init__.py +1 -0
  8. fusion_bench/method/dare/task_arithmetic.py +14 -7
  9. fusion_bench/method/dare/ties_merging.py +100 -0
  10. fusion_bench/method/isotropic_merging/__init__.py +15 -0
  11. fusion_bench/method/isotropic_merging/iso.py +114 -0
  12. fusion_bench/method/isotropic_merging/iso_utils.py +176 -0
  13. fusion_bench/method/opcm/__init__.py +4 -0
  14. fusion_bench/method/opcm/opcm.py +277 -0
  15. fusion_bench/method/opcm/task_arithmetic.py +115 -0
  16. fusion_bench/method/opcm/ties_merging.py +156 -0
  17. fusion_bench/method/opcm/utils.py +73 -0
  18. fusion_bench/method/opcm/weight_average.py +120 -0
  19. fusion_bench/method/slerp/slerp.py +1 -1
  20. fusion_bench/method/task_singular_vector/TSVM.py +22 -2
  21. fusion_bench/method/task_singular_vector/utils/TSVM_utils.py +91 -93
  22. fusion_bench/method/ties_merging/ties_merging.py +10 -0
  23. fusion_bench/metrics/continual_learning/backward_transfer.py +22 -0
  24. fusion_bench/mixins/clip_classification.py +4 -1
  25. fusion_bench/programs/fabric_fusion_program.py +22 -11
  26. fusion_bench/scripts/cli.py +1 -0
  27. fusion_bench/taskpool/base_pool.py +1 -1
  28. fusion_bench/taskpool/clip_vision/taskpool.py +12 -7
  29. fusion_bench/utils/__init__.py +2 -1
  30. fusion_bench/utils/dict.py +43 -0
  31. fusion_bench/utils/expr.py +90 -0
  32. fusion_bench/utils/fabric.py +17 -0
  33. fusion_bench/utils/instantiate.py +7 -1
  34. fusion_bench/utils/json.py +30 -0
  35. fusion_bench/utils/parameters.py +27 -7
  36. fusion_bench/utils/path.py +15 -0
  37. fusion_bench/utils/plot/color_data.py +1726 -0
  38. fusion_bench/utils/rich_utils.py +15 -0
  39. fusion_bench/utils/set.py +8 -0
  40. fusion_bench/utils/tensorboard.py +51 -0
  41. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/METADATA +17 -18
  42. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/RECORD +58 -29
  43. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/WHEEL +1 -1
  44. fusion_bench_config/method/classification/clip_continual_finetune.yaml +28 -0
  45. fusion_bench_config/method/classification/clip_finetune.yaml +26 -0
  46. fusion_bench_config/method/clip_finetune.yaml +2 -2
  47. fusion_bench_config/method/dare/ties_merging.yaml +15 -0
  48. fusion_bench_config/method/isotropic_merging/iso_c.yaml +4 -0
  49. fusion_bench_config/method/isotropic_merging/iso_cts.yaml +5 -0
  50. fusion_bench_config/method/opcm/opcm.yaml +12 -0
  51. fusion_bench_config/method/opcm/task_arithmetic.yaml +12 -0
  52. fusion_bench_config/method/opcm/ties_merging.yaml +18 -0
  53. fusion_bench_config/method/opcm/weight_average.yaml +10 -0
  54. fusion_bench_config/method/task_singular_vector/TaskSingularVectorMerging.yaml +6 -0
  55. fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_two_tasks_control_task.yaml +18 -0
  56. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/LICENSE +0 -0
  57. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/entry_points.txt +0 -0
  58. {fusion_bench-0.2.8.dist-info → fusion_bench-0.2.10.dist-info}/top_level.txt +0 -0
@@ -1,3 +1,4 @@
1
+ import logging
1
2
  from pathlib import Path
2
3
  from typing import Sequence
3
4
 
@@ -10,6 +11,7 @@ from omegaconf import DictConfig, OmegaConf, open_dict
10
11
  from rich import print
11
12
  from rich.columns import Columns
12
13
  from rich.console import Console
14
+ from rich.logging import RichHandler
13
15
  from rich.panel import Panel
14
16
  from rich.prompt import Prompt
15
17
  from rich.syntax import Syntax
@@ -184,3 +186,16 @@ if __name__ == "__main__":
184
186
 
185
187
  print("\nAvailable Styles:")
186
188
  display_available_styles()
189
+
190
+
191
+ def setup_colorlogging(force=False, **config_kwargs):
192
+ FORMAT = "%(message)s"
193
+
194
+ logging.basicConfig(
195
+ level=logging.INFO,
196
+ format=FORMAT,
197
+ datefmt="[%X]",
198
+ handlers=[RichHandler()],
199
+ force=force,
200
+ **config_kwargs,
201
+ )
@@ -0,0 +1,8 @@
1
+ __all__ = ["union"]
2
+
3
+
4
+ def union(*iters) -> set:
5
+ if len(iters) == 0:
6
+ return set()
7
+ s = set().union(*iters)
8
+ return s
@@ -0,0 +1,51 @@
1
+ """
2
+ functions deal with tensorboard logs.
3
+ """
4
+
5
+ from typing import Dict, Iterable, List
6
+
7
+ import numpy as np
8
+ import pandas as pd
9
+ from tensorboard.backend.event_processing import event_accumulator
10
+
11
+
12
+ def parse_tensorboard_as_dict(path: str, scalars: Iterable[str]):
13
+ """
14
+ returns a dictionary of pandas dataframes for each requested scalar.
15
+
16
+ Args:
17
+ path(str): A file path to a directory containing tf events files, or a single
18
+ tf events file. The accumulator will load events from this path.
19
+ scalars: scalars
20
+
21
+ Returns:
22
+ Dict[str, pandas.DataFrame]: a dictionary of pandas dataframes for each requested scalar
23
+ """
24
+ ea = event_accumulator.EventAccumulator(
25
+ path,
26
+ size_guidance={event_accumulator.SCALARS: 0},
27
+ )
28
+ _absorb_print = ea.Reload()
29
+ # make sure the scalars are in the event accumulator tags
30
+ assert all(
31
+ s in ea.Tags()["scalars"] for s in scalars
32
+ ), "some scalars were not found in the event accumulator"
33
+ return {k: pd.DataFrame(ea.Scalars(k)) for k in scalars}
34
+
35
+
36
+ def parse_tensorboard_as_list(path: str, scalars: Iterable[str]):
37
+ """
38
+ returns a list of pandas dataframes for each requested scalar.
39
+
40
+ see also: :py:func:`parse_tensorboard_as_dict`
41
+
42
+ Args:
43
+ path(str): A file path to a directory containing tf events files, or a single
44
+ tf events file. The accumulator will load events from this path.
45
+ scalars: scalars
46
+
47
+ Returns:
48
+ List[pandas.DataFrame]: a list of pandas dataframes for each requested scalar.
49
+ """
50
+ d = parse_tensorboard_as_dict(path, scalars)
51
+ return [d[s] for s in scalars]
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: fusion_bench
3
- Version: 0.2.8
3
+ Version: 0.2.10
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
@@ -70,22 +70,21 @@ FusionBench is a benchmark suite designed to evaluate the performance of various
70
70
  Projects based on FusionBench and news from the community (descending order of date):
71
71
 
72
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.
73
+ <summary>Anke Tang, et al. Merging Models on the Fly Without Retraining: A Sequential Approach to Scalable Continual Model Merging. Jan 2025. https://arxiv.org/pdf/2501.09522</summary>
74
+
75
+ Deep model merging represents an emerging research direction that combines multiple fine-tuned models to harness their specialized capabilities across different tasks and domains. Current model merging techniques focus on merging all available models simultaneously, with weight interpolation-based methods being the predominant approaches. However, these conventional approaches are not well-suited for scenarios where models become available sequentially, and they often suffer from high memory requirements and potential interference between tasks. In this study, we propose a training-free projection-based continual merging method that processes models sequentially through orthogonal projections of weight matrices and adaptive scaling mechanisms. Our method operates by projecting new parameter updates onto subspaces orthogonal to existing merged parameter updates while using an adaptive scaling mechanism to maintain stable parameter distances, enabling efficient sequential integration of task-specific knowledge. Our approach maintains constant memory complexity to the number of models, minimizes interference between tasks through orthogonal projections, and retains the performance of previously merged models through adaptive task vector scaling. Extensive experiments on CLIP-ViT models demonstrate that our method achieves a 5-8% average accuracy improvement while maintaining robust performance in different task orderings.
76
+ </details>
77
+
78
+ <details>
79
+ <summary>Yongxian Wei, et al. Modeling Multi-Task Model Merging as Adaptive Projective Gradient Descent. Jan 2025. https://arxiv.org/abs/2501.01230</summary>
80
+
81
+ Merging multiple expert models offers a promising approach for performing multi-task learning without accessing their original data. Existing methods attempt to alleviate task conflicts by sparsifying task vectors or promoting orthogonality among them. However, they overlook the fundamental requirement of model merging: ensuring the merged model performs comparably to task-specific models on respective tasks. We find these methods inevitably discard task-specific information that, while causing conflicts, is crucial for performance. Based on our findings, we frame model merging as a constrained optimization problem (i.e., minimizing the gap between the merged model and individual models, subject to the constraint of retaining shared knowledge) and solve it via adaptive projective gradient descent. Specifically, we align the merged model with individual models by decomposing and reconstituting the loss function, alleviating conflicts through data-free optimization of task vectors. To retain shared knowledge, we optimize this objective by projecting gradients within a shared subspace spanning all tasks. Moreover, we view merging coefficients as adaptive learning rates and propose a task-aware, training-free strategy. Experiments show that our plug-andplay approach consistently outperforms previous methods, achieving state-of-the-art results across diverse architectures and tasks in both vision and NLP domains. Our code is available here.
82
+ </details>
83
+
84
+ <details>
85
+ <summary>Hongling Zheng, Li Shen, Anke Tang, Yong Luo et al. Learn From Model Beyond Fine-Tuning: A Survey. Nature Machine Intelligence. Jan, 2025. https://www.nature.com/articles/s42256-024-00961-0</summary>
86
+
87
+ > Foundation models (FM) have demonstrated remarkable performance across a wide range of tasks (especially in the fields of natural language processing and computer vision), primarily attributed to their ability to comprehend instructions and access extensive, high-quality data. This not only showcases their current effectiveness but also sets a promising trajectory towards the development of artificial general intelligence. Unfortunately, due to multiple constraints, the raw data of the model used for large model training are often inaccessible, so the use of end-to-end models for downstream tasks has become a new research trend, which we call Learn From Model (LFM) in this article. LFM focuses on the research, modification, and design of FM based on the model interface, so as to better understand the model structure and weights (in a black box environment), and to generalize the model to downstream tasks. The study of LFM techniques can be broadly categorized into five major areas: model tuning, model distillation, model reuse, meta learning and model editing. Each category encompasses a repertoire of methods and strategies that aim to enhance the capabilities and performance of FM. This paper gives a comprehensive review of the current methods based on FM from the perspective of LFM, in order to help readers better understand the current research status and ideas. To conclude, we summarize the survey by highlighting several critical areas for future exploration and addressing open issues that require further attention from the research community. The relevant papers we investigated in this article can be accessed at https://github.com/ruthless-man/Awesome-Learn-from-Model.
89
88
  </details>
90
89
 
91
90
  <details>
@@ -1,4 +1,5 @@
1
1
  fusion_bench/__init__.py,sha256=68dF-zPvb8E2MgYnmgIJsxIHJBy1MApKeOrRZvQEVlg,421
2
+ fusion_bench/__main__.py,sha256=weUjxpP3ULnDgUxCehdbmoCM9cqfkhDhGB85tAF5qoE,81
2
3
  fusion_bench/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
4
  fusion_bench/compat/method/__init__.py,sha256=KUKHpX7AfvB7fmOAlruWp0r1z17xpkI9l29PMvLWR9A,4956
4
5
  fusion_bench/compat/method/base_algorithm.py,sha256=63_AQDj1eJOO6RyTSGXVC6G2DsG8yg9E4pT3RJXgP3A,1952
@@ -14,7 +15,7 @@ fusion_bench/constants/__init__.py,sha256=Pyc4dLbl6oNduOCdnpeXQ9LDyVoIrkdl9eZ_l2
14
15
  fusion_bench/constants/paths.py,sha256=DVZyQ9FLhkyUdw6ARpXUCAMf_B8hFyJ6UNI-oYly3pE,591
15
16
  fusion_bench/dataset/__init__.py,sha256=OJiYmcqz0Vm5O7mE4PB5QFJeL_KjrsseQTRsQATGTm4,1050
16
17
  fusion_bench/dataset/clip_dataset.py,sha256=XLpCOiXlLEP3DffAlBn4P2PpUenbEFl-Yk9MNy6nbbI,2790
17
- fusion_bench/dataset/fer2013.py,sha256=bAdujQSj1PcUVFlKJgqcHAuE9AWz7JE1fzZ6scFVvmc,403
18
+ fusion_bench/dataset/fer2013.py,sha256=Lub_xVhHfqaiPprvOsDVspJNioh1FjSrkhn3gL_UXDA,404
18
19
  fusion_bench/dataset/gpt2_glue.py,sha256=Qq1ZkEIQsTjj8tImvkZDNlduocSYwlEfVrDReZqDWdw,8761
19
20
  fusion_bench/dataset/gsm8k.py,sha256=CmANZ0A89PfPwVu_myKhXk1D9IwypOpjH3iqDo1KxcQ,2233
20
21
  fusion_bench/dataset/image_dataset.py,sha256=MSZE_UESyRRQDwnkm2KpyIARUg9SWcwqnH4fDNstzS4,1870
@@ -40,7 +41,7 @@ fusion_bench/dataset/llama/stanford_shp.py,sha256=6ueXKnFXIBBobacU1h5WxGLZrSOtBk
40
41
  fusion_bench/dataset/llama/ultrachat.py,sha256=Go7WvrDAYnm184fdazHGRYLbSY6Xd7jrESyQeUJtOww,1736
41
42
  fusion_bench/dataset/llama/wikitext.py,sha256=9ZHR-nMfXRumd3o-PIj3n7B83YlVeqpGkZ2zJs2B-9Y,2883
42
43
  fusion_bench/dataset/llama/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- fusion_bench/method/__init__.py,sha256=vhjXm9EbYLz9YmO3U6reo45wcbHXKeLh3g1v3pO-JD8,5904
44
+ fusion_bench/method/__init__.py,sha256=py1hn-gRqwzESwS5KvDapclyUvIW42r0nDsuINgFBB4,6601
44
45
  fusion_bench/method/base_algorithm.py,sha256=5dutGZfPqNhO8F8FOlo3UFR91TZu2Xj7O0pTB40JvWo,1135
45
46
  fusion_bench/method/dummy.py,sha256=hb1y6LR_geRZ5eRgGwt5zJUcHYorCeIbs5i76CvurUc,1031
46
47
  fusion_bench/method/ensemble.py,sha256=rGxvJTeorfcBuE_e0XO-0-MAc9un7ZCC46ikKGuAcN4,3077
@@ -62,14 +63,16 @@ fusion_bench/method/adamerging/utils.py,sha256=Yq8ovlpLJY-5MkSmpoB-_EMYG8cr6eyO-
62
63
  fusion_bench/method/analysis/__init__.py,sha256=EQzOCShS0hF958drq1yg2oSVsS0hvBznPxtTAWB9SGY,122
63
64
  fusion_bench/method/analysis/task_vector_cos_similarity.py,sha256=pL-XsWTo258yZTEsER_6KXS7JePneVNEHN_nv8Db0qo,5468
64
65
  fusion_bench/method/analysis/task_vector_violin_plot.py,sha256=ie8hPl6QsVz9MQ6C2OEpzIBxQnmVKNf1FPc5bThmQGM,7606
65
- fusion_bench/method/classification/__init__.py,sha256=XAEvv4GZSssIa_BBReXVpj-cymTj5vF7ymketuS6FqA,84
66
- fusion_bench/method/classification/clip_finetune.py,sha256=G0ZFGvV-Nbhd8ddFKLlhaTxDMGpfVCf3CwrSdPfino8,15778
66
+ fusion_bench/method/classification/__init__.py,sha256=emB06UOMDHK5pfQ1WuvLG9Fm0aEEtZxSjpVw8fVE0fM,167
67
+ fusion_bench/method/classification/clip_finetune.py,sha256=DlV1isp8vz6jwXNYQ6zbblAoUfnssL-WBpDeaXI5BVw,15727
68
+ fusion_bench/method/classification/continual_clip_finetune.py,sha256=OLhZKS-6aCnafevZkZYcNMKTWDDj3DATB27eZl_i8EY,11530
67
69
  fusion_bench/method/concrete_subspace/__init__.py,sha256=yjadcpquHZbeZYsbfYhe2JlX46kObfiWJRsIoVcOEg4,223
68
70
  fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py,sha256=90_0HkOIl0XQG89xMa0UiBhrwfV2YqfLxlS04AouR3o,24755
69
71
  fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py,sha256=Nx-3AiAeIt5zmcC21Ta2_-4cAQg9hOWvThurXNZzA-w,10580
70
- fusion_bench/method/dare/__init__.py,sha256=o0XNxMy-Mn66HZmD-YhQ_Mb1VX4XrJO9A6UR8mI30fE,114
72
+ fusion_bench/method/dare/__init__.py,sha256=63Xwkawyl_Ooy4xFxoDlP6wf-rgEWNqPuWTT9-6Ku5o,156
71
73
  fusion_bench/method/dare/simple_average.py,sha256=jR08PokPIr5PWSZbGVOp3IApgKvxAIovg3vnB2KiTwk,906
72
- fusion_bench/method/dare/task_arithmetic.py,sha256=2dR2OgKHAG2jTGcthFYUYiuDlO-jEdibrmvlvSTJ_Ek,2619
74
+ fusion_bench/method/dare/task_arithmetic.py,sha256=Seno_2BhuogdRxXOni8alnHG-fdW15_OWoAvMoBoJj0,2780
75
+ fusion_bench/method/dare/ties_merging.py,sha256=aAIMdIpsBs0vnSKGhqDTFKEChBTmcvczt9JmK_Dr4D4,3424
73
76
  fusion_bench/method/dare/utils.py,sha256=TSZMZidnwqVHG36A0UI9Wz_rXNvojXnww7_E7-YfeRI,2888
74
77
  fusion_bench/method/dawe/__init__.py,sha256=JrhtX-qAHymU8z44QtFMxtM5Qx5iH1Kxo5cptH0KNgo,83
75
78
  fusion_bench/method/dawe/dawe_for_clip.py,sha256=bF4U0_skxyPR-5RCdGQCgudqhC1Hj2x62w_xUibFg1c,9828
@@ -82,6 +85,9 @@ fusion_bench/method/fisher_merging/__init__.py,sha256=KWsjrtxKkPYwcUA5rB_6UNIqve
82
85
  fusion_bench/method/fisher_merging/clip_fisher_merging.py,sha256=QCutGqjkfW3OWETPZsCChqLRAhvfJp4QKD9TGSpTyV0,7635
83
86
  fusion_bench/method/fisher_merging/fisher_merging.py,sha256=CPU-tJiDv9FCIBYl7Pn0zA5cdRB1Md5kWchRDlJgly0,20456
84
87
  fusion_bench/method/fisher_merging/gpt2_fisher_merging.py,sha256=LZmz41jZ5dSsAHxfOUpr3u2rlCgUPTDR7xMsIlQM-jc,7576
88
+ fusion_bench/method/isotropic_merging/__init__.py,sha256=Bg12OiltvZLMmZm066quvtG0LOWSVqI5RggYeaMDGFA,585
89
+ fusion_bench/method/isotropic_merging/iso.py,sha256=GILofZQiTcOnJRQ28RmzOjqkso5Xih9WuFuB2JDWA_M,3773
90
+ fusion_bench/method/isotropic_merging/iso_utils.py,sha256=7L8PYUIJROwHJQmhFY-tdEhkLAnzVKXr-ae55FQ1QSo,6928
85
91
  fusion_bench/method/linear/__init__.py,sha256=ChfkoOEAb-rUKwpowFPel-a1hRfS8gCrbnWD-jlRbe4,283
86
92
  fusion_bench/method/linear/expo.py,sha256=LCHTWlsPm1Mjhrq0mfpWLVC7skkI9ZksGduy3TxULoU,3939
87
93
  fusion_bench/method/linear/linear_interpolation.py,sha256=IONw9BPiRJouY8bE9Abfyz7qVI_1B1n8KGZa0f7Pza8,2157
@@ -96,6 +102,12 @@ fusion_bench/method/lm_finetune/peftfinetune_sft.py,sha256=klZ_IDr5-1xoYvyVZwug9
96
102
  fusion_bench/method/mixture_of_experts/__init__.py,sha256=r95iu1-3tgIUP7sWuAbLuqV7xexNYMYPZkM4_8egfp8,198
97
103
  fusion_bench/method/mixture_of_experts/mixtral_merging.py,sha256=-n1CLP1o08VyMSfaTq42kRutbw-cFDSCWHTu0iNh6ok,4237
98
104
  fusion_bench/method/mixture_of_experts/mixtral_upcycling.py,sha256=tQYAeS8MLFEfH3zDFfNZrML7lRnpGLN-HquQvjPtHNw,11208
105
+ fusion_bench/method/opcm/__init__.py,sha256=0QcltOnjIYV1XEPDEagChLixLAhjiBnYwfWK00am29k,202
106
+ fusion_bench/method/opcm/opcm.py,sha256=USPPMFFVQ9UbcGvvK1573tgkO1kgcrhA5jzKdbNTy9g,10693
107
+ fusion_bench/method/opcm/task_arithmetic.py,sha256=SNuuSyzHqvOT_e3i0z0MHNWaMP6xnDdkI9c2t1OcxO4,4328
108
+ fusion_bench/method/opcm/ties_merging.py,sha256=38ogIysnRfePhB9SAfr1BPwtHyM8gEdhU2td_yTiB2g,6080
109
+ fusion_bench/method/opcm/utils.py,sha256=_q7yy3ENNFUh1qUd5J5DThRL4J1tIxEcknCO2AKmeYM,2102
110
+ fusion_bench/method/opcm/weight_average.py,sha256=JfQoIU5J1jvrNKpO9k_t4Zj0y8PtteIfyoSQWx1yg2k,4379
99
111
  fusion_bench/method/pruning/__init__.py,sha256=3gtmay2bkdIAEGjpAhbY2ztMZOZLKhiJcKV3mCe2H5w,252
100
112
  fusion_bench/method/pruning/llama_magnitude_prune.py,sha256=40Gmy665S9XqIw027En6E5IlomOIcKECIRje7NDkH00,6300
101
113
  fusion_bench/method/pruning/llama_random_prune.py,sha256=EW7zfE-1a5VlPPrQ5xO1k1aqFcpPUfs5eSO_a4M1K90,4566
@@ -124,7 +136,7 @@ fusion_bench/method/regmean/clip_regmean.py,sha256=xhT7dYSCg9sPLL5ZUCCtcA-Ypw4PB
124
136
  fusion_bench/method/regmean/gpt2_regmean.py,sha256=p2D3E8YAZsltsI6GM474UWNqPZfBqihLZ93ZLUpOJ_c,5565
125
137
  fusion_bench/method/regmean/regmean.py,sha256=NTozStNkMV7RLyxj1TvzPkHjiFPynGiWgQITs8J9CiA,16210
126
138
  fusion_bench/method/slerp/__init__.py,sha256=Wgl9gg01Xou6jyZeBRD98kRnB_dAADDaPqRTHoONx9o,59
127
- fusion_bench/method/slerp/slerp.py,sha256=U5XG-Bikaji9zTXhdE9XlS6Tv26sbncrTlORVT5UF4g,3406
139
+ fusion_bench/method/slerp/slerp.py,sha256=2_n10REnRoV5DuwCC0bDX8RM3MLL4Q_5rZiU0hICw2w,3406
128
140
  fusion_bench/method/slerp/slerp_utils.py,sha256=vksRo6n7FqY7By9aqbwTL4XV3BjcU_GrUl_r85Kpfjc,3504
129
141
  fusion_bench/method/smile_upscaling/__init__.py,sha256=CbJugcuQ7AcoPGFRF7TdxUztYTi3Ii9bnA6Msj8QH0A,149
130
142
  fusion_bench/method/smile_upscaling/singular_projection_merging.py,sha256=0neZS9oZnl64wu1xb9ruGB7lbhYXyy4zj8l3E1QYRGQ,6670
@@ -142,13 +154,13 @@ fusion_bench/method/tall_mask/utils.py,sha256=Wlp8WcPwR_lCaBIZ9rgG6ewLfSzz3G7kPk
142
154
  fusion_bench/method/task_arithmetic/__init__.py,sha256=pSx_NV5Ra_6UXpyYWCi6ANQoAnEtymZt_X1dDN9wT4Y,96
143
155
  fusion_bench/method/task_arithmetic/task_arithmetic.py,sha256=1D0uuNtqyA1VS35jh6AnEVsX72HnT02THyerck_lmso,5441
144
156
  fusion_bench/method/task_singular_vector/TSVC.py,sha256=yn4SrZNvtA6PoGYJmbmtNeDyDbGnRCgfZ7ZCg914AZU,410
145
- fusion_bench/method/task_singular_vector/TSVM.py,sha256=ANBGC1GM8c9oy_xlY-ZEyoWO9mnZh5aiF_rrvVH73l8,1925
157
+ fusion_bench/method/task_singular_vector/TSVM.py,sha256=2MqeJazsZNBTKghrtZDqXE2XoO_BShK60n3SEMjV74k,2787
146
158
  fusion_bench/method/task_singular_vector/__init__.py,sha256=WMucyl9pu_Ev2kcdrfT4moqMMbzD7hHQVFME5Su5jMA,298
147
159
  fusion_bench/method/task_singular_vector/utils/TSVC_utils.py,sha256=FytKbal48EW6iGIA-2zV7QSVbYTVflXr4Mr56q0W75k,2286
148
- fusion_bench/method/task_singular_vector/utils/TSVM_utils.py,sha256=gZu0QMYLh9WTOWEaUv9V0geliXX9qkGr2HTZOywEHb0,27223
160
+ fusion_bench/method/task_singular_vector/utils/TSVM_utils.py,sha256=dsTMQ15zFJ1MPqDOt2TJ01O9Bwq_klyG9xL9hRD2aI0,27521
149
161
  fusion_bench/method/task_singular_vector/utils/__init__.py,sha256=Pgthb9Ld1x0Qis1wKWottwgzlBcyuzByFZCMIoI6Fys,240
150
162
  fusion_bench/method/ties_merging/__init__.py,sha256=9u9teBbdILbupr9jbwk-qCXSzssCssC5FUV2BfpyZM4,67
151
- fusion_bench/method/ties_merging/ties_merging.py,sha256=Pa37P1tpbaPSnnorbcKiDvfN1XsZIaWGSQMtDn4Kqyc,4000
163
+ fusion_bench/method/ties_merging/ties_merging.py,sha256=rQGYr1HoZLbgwgfsfpIqln0tcoXj9s2J985FtRWO2dA,5502
152
164
  fusion_bench/method/ties_merging/ties_merging_utils.py,sha256=EZyltS9hUM8NmcvXjAqhBpj-ucMlMtR95082kPDsJPU,10296
153
165
  fusion_bench/method/trust_region/__init__.py,sha256=4ao0E-jTlmTQPArbFWD_dFn_4yve3urNIuSMT8JtRIM,91
154
166
  fusion_bench/method/trust_region/clip_task_arithmetic.py,sha256=SWP7sRMiXzkDZ3KdNht3zqjaTcAtB4wpnnd8KYbcKZI,7441
@@ -160,6 +172,7 @@ fusion_bench/method/weighted_average/__init__.py,sha256=bLxIuuB72hH05J_Spz4MZbiL
160
172
  fusion_bench/method/weighted_average/llama.py,sha256=BgJKZ15aqjFuNidOqAoGc74rpw3YRDnJ6gYOQJhe6tc,4161
161
173
  fusion_bench/method/weighted_average/weighted_average.py,sha256=E4byEA2VfXozu7S_gnYVvwI3qg8AFWaSeNRHGbs2Tno,3340
162
174
  fusion_bench/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
+ fusion_bench/metrics/continual_learning/backward_transfer.py,sha256=3e_eMN9eXZaGorankaPIQ-WfOHpW-bA1EywH6LDInWk,555
163
176
  fusion_bench/metrics/nyuv2/__init__.py,sha256=OjIB2vNcEoFrT-b8hqdcCgEgc2uCx3TyKUYS3aoRNNU,282
164
177
  fusion_bench/metrics/nyuv2/depth.py,sha256=oKc8NUZd0yAsk7-f78CbOzyuqmFpBhVFA8GOOdaNP7c,1548
165
178
  fusion_bench/metrics/nyuv2/loss.py,sha256=oBrkU8cDTczjIKixHjUGLJ_rghx0Vw59OL9DB-kZT3M,914
@@ -171,7 +184,7 @@ fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py,sha256=-ZaD84E
171
184
  fusion_bench/metrics/text_to_image_generation/compressibility.py,sha256=x4dNTFnAN4naChBDZBO-jUghnHAyobRVOupctKYRg1w,1656
172
185
  fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py,sha256=aSWzl8k7z80Cirg5qdfkPsp3sMFEv_PjA1NJv3PPWXY,3115
173
186
  fusion_bench/mixins/__init__.py,sha256=AsUNvrHdNd6xht7-dfuVipmJuRfMNFlkgG-fn3ojt1U,892
174
- fusion_bench/mixins/clip_classification.py,sha256=Bk0M5AdHFDc6HYO45guQY70BS_O116S-bCiOns3GCJ0,10049
187
+ fusion_bench/mixins/clip_classification.py,sha256=2Q20bEfRcRx9cg79ubCVpsey3TtpWa8jxk-N_JZVueY,10162
175
188
  fusion_bench/mixins/fabric_training.py,sha256=ZmycEhCaNCgVi5oM9m0q6msxgk3quowmFvDAcvskFrg,13017
176
189
  fusion_bench/mixins/lightning_fabric.py,sha256=6S1-rV6ItNQDSu7GM4qB99s8rnNXdO4PZDiQI4w0-DU,6593
177
190
  fusion_bench/mixins/rich_live.py,sha256=j7wNgrgwfdpl6nCXZGF_2DLtNq2aqCb_52Qhe9QSltc,495
@@ -251,23 +264,23 @@ fusion_bench/optim/lr_scheduler/utils/__init__.py,sha256=GfZk9VYL3cFE1Qy2xQpGc1G
251
264
  fusion_bench/optim/lr_scheduler/utils/visualization.py,sha256=Ea1n9ElNizAe0iUnjynyfteuZunv2-UBMN_NfEU2imA,3490
252
265
  fusion_bench/programs/__init__.py,sha256=oGoRp2TMI6ELxyfkeTg2h27hZJEDz9x31AsmvwvNvJw,508
253
266
  fusion_bench/programs/base_program.py,sha256=0dX_KcMWASo53pr-ldzfUBWIjEXy6oeDWZBrfc7FIk8,195
254
- fusion_bench/programs/fabric_fusion_program.py,sha256=gkt9BUj1KELotxtxjnXzhJeM9pEA5zyLVmMfZowbY0c,12406
267
+ fusion_bench/programs/fabric_fusion_program.py,sha256=WOA9a2hxAKq0aykT4FLwHAyaFTo1XkYLU8fpiyOSX0o,12885
255
268
  fusion_bench/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
- fusion_bench/scripts/cli.py,sha256=497nhqnJAwxkqU2WCMUqcAIvqTmGRdQaByWGNTX_onY,1131
269
+ fusion_bench/scripts/cli.py,sha256=hw32XtmixFxYXwgAY7iRBMzma_XQjdf_FxPiXKL6dIc,1154
257
270
  fusion_bench/scripts/imgui.py,sha256=r9Glbfbwu3JCsX9TKQFwcHarvwA_G7ff0jWBUPW1S1U,7613
258
271
  fusion_bench/scripts/nyuv2_mtl_train.py,sha256=hB_P_4DIT83CGOXoyyaBnh9fYnxTJtvAPbKa3_arF6E,3603
259
272
  fusion_bench/scripts/webui.py,sha256=ryA-2leSnHcYA88tTAYzJGDhiljbi0vl1Fibejzndlw,14398
260
273
  fusion_bench/scripts/clip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
274
  fusion_bench/scripts/clip/convert_checkpoint.py,sha256=zncgRAhInFpJDSHIm3GO4F6BzgsdAQVj3LLmV7g-JiQ,1221
262
275
  fusion_bench/taskpool/__init__.py,sha256=_qaYgzYnvrJDrZ2DjKXMvOFbelsLrujCKa_gP3UQBBg,1094
263
- fusion_bench/taskpool/base_pool.py,sha256=FaP0nndeSsrwbdd9mKa_CedbX9T5AHJmxk7Lc0NEVNY,835
276
+ fusion_bench/taskpool/base_pool.py,sha256=Cbe3ZgJ34DWSDZeZEjlgqR0b84aM1i68D9-vomaooo8,852
264
277
  fusion_bench/taskpool/dummy.py,sha256=Di9JZO3XyDYn6wAGukrJMTnkS_NaxGTeQYo_3j1JD3Y,1675
265
278
  fusion_bench/taskpool/gpt2_text_classification.py,sha256=S4YyrcJhD4JOgvHF-AVG-gENgVGl-wpQZr1SbiThM04,4886
266
279
  fusion_bench/taskpool/nyuv2_taskpool.py,sha256=Y-TI-rzh9udCjX3FJ11ZbIG7CGrjDccGc-Ch1Ug6cRY,2059
267
280
  fusion_bench/taskpool/clip_vision/__init__.py,sha256=4xGO7rRbRpXF-I34A3WEMU4vydgfdtvXQ57ThaFcpmE,214
268
281
  fusion_bench/taskpool/clip_vision/clip_rankone_moe_taskpool.py,sha256=JKbRrGaRYztgZ-P0U767HISe40UpDVQ7fn6Tf2rrug0,4891
269
282
  fusion_bench/taskpool/clip_vision/clip_sparse_wemoe_taskpool.py,sha256=hVDTtg-oXqRFmAE2wZPFpk_kvtdk_wS-2-ev2ujEJBs,5390
270
- fusion_bench/taskpool/clip_vision/taskpool.py,sha256=xbJHQXUYd2ZDs-oIyE-3knCsPdiUbZCKN7O86kPwpsQ,14907
283
+ fusion_bench/taskpool/clip_vision/taskpool.py,sha256=f6PlUlkeVOZr_S1jYP5g1t4dit1CSzL6m6llPSF9aro,14990
271
284
  fusion_bench/taskpool/llama/__init__.py,sha256=iB4ESMgnsl0m-z0YtRdPZiwGGv96-86R8pbSnkdet8Q,57
272
285
  fusion_bench/taskpool/llama/reward_model.py,sha256=ZpRSX4esBAuE0MdTjPHjqS2TnvGb6P8arOGxBeXnq6Y,5028
273
286
  fusion_bench/taskpool/llama/test_generation.py,sha256=kJ_5GruG12FsuJHDh_S7pbQgwEojTqhGpA_wVNH5KPc,6675
@@ -307,27 +320,33 @@ fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py,sha256=-B1wqVGp3wZ
307
320
  fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py,sha256=sVihXHbqwi8IlDpiIxzvmDv-Ob7WKvi23GIRYbBUKOc,1833
308
321
  fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py,sha256=GhRmGmcJGF4oVgZQarsBtx8GNKrNEZUkrillNz3iBuY,13183
309
322
  fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py,sha256=mKMTXIr5o-BqS_Hvv1bbMvvjQLLeKNVw7BKS9qgQ8Dw,1890
310
- fusion_bench/utils/__init__.py,sha256=yFhiBlrdcsJqZe-C5wdlZZ3wpmSN8Tipfpa2-R7CFbc,337
323
+ fusion_bench/utils/__init__.py,sha256=fogKvcbYQx2nhj4-NWeeUg0xWUKA30lVJBxJpoPdFA0,398
311
324
  fusion_bench/utils/auto.py,sha256=uACQLE62_kNyhl4BGduvcbyeTE61qXpIJx3Ccl8kh68,920
312
325
  fusion_bench/utils/cache_utils.py,sha256=rU8x4-RFUtaCZWKd4Kft_7xgPTr1bpXnqUDMkrIdpj8,1653
313
326
  fusion_bench/utils/data.py,sha256=51nbgOnayyerLBUGHrlm9iilGjhJsBkXKKGXOKgLRW8,6104
314
327
  fusion_bench/utils/devices.py,sha256=72HeUVVlVGTt97JA7KFG3D8BM8VHqR-y1nkr9Bm-PRE,7578
328
+ fusion_bench/utils/dict.py,sha256=ZCK0CRRT_B1Z18WY_GOYcmth7k5x9Jn1k7XhAVWRu98,1379
315
329
  fusion_bench/utils/dtype.py,sha256=kYoEGqsXitnwOU3W7ivqhQ0OjdI7MGu1VsyMJS4cSyQ,4299
330
+ fusion_bench/utils/expr.py,sha256=zwHNrtIbOMnIChU-0ZI5qLbDva8zvHbizL-4F2TwM14,2386
331
+ fusion_bench/utils/fabric.py,sha256=X2B_QPT2kqDPceQo3tp4XYAKbBpIs07w94Je_h2_81w,355
316
332
  fusion_bench/utils/functools.py,sha256=7_tYJ2WD88_2DDuOOj5aZz3cYuslYH5tsVyIgCeLtmk,1318
317
333
  fusion_bench/utils/hydra_utils.py,sha256=TklUDKDEZlg4keI-TEZiqh4gFjr9-61Rt1RMlqkoSGk,1174
318
- fusion_bench/utils/instantiate.py,sha256=v8L9JDfh2YoEOFpIQIHomvBoqdboZdYIaHEATnD2gdQ,16972
319
- fusion_bench/utils/json.py,sha256=iNeZHFvpzbb4oX-52dX15De_dMcux7vQtAUFZqW12GA,1907
334
+ fusion_bench/utils/instantiate.py,sha256=8DFPFECJRWsJ8vKMWItR_vm19q5ClMP7bDL9y44TbWk,17134
335
+ fusion_bench/utils/json.py,sha256=sVCqbm9mmyHybiui-O57KFt_ULrjLtN2wipSo6VDvqE,2533
320
336
  fusion_bench/utils/lazy_imports.py,sha256=v5l9cpHXPMaz1IVBmB5oOqefYr9vA3XvP340xT7Wy18,2796
321
337
  fusion_bench/utils/misc.py,sha256=liZPUnORPus45tZ9bOuyMJj3TshP6lOPxTVroshjmjc,385
322
338
  fusion_bench/utils/packages.py,sha256=DBmq7t02V0gCE8W05gaZwJnaz0NUrH7K75tRh4kwgyU,1833
323
- fusion_bench/utils/parameters.py,sha256=pR-Emteo2-SI3hFAvTQsCfkzqEh5ssPSNZ1Gf3J5o6Q,10263
324
- fusion_bench/utils/path.py,sha256=fG-3_bkjiYsZHx7uXM5UKNz20AkoXeINbprD5DuR098,157
339
+ fusion_bench/utils/parameters.py,sha256=ZQG3AGo6B0DmbX13LQFJEESLUipaIqnp9hoWhr0t8-Y,10803
340
+ fusion_bench/utils/path.py,sha256=hRA1CPHNnTYBUmzbftH77sHvn4aTuybEK5Tth1skP-k,531
325
341
  fusion_bench/utils/pylogger.py,sha256=a5tHfpEFbsdzw0vhQxt4BJ6CfTXaxyuwzoDFhyNy4KI,2468
326
- fusion_bench/utils/rich_utils.py,sha256=V_BjY3o8bXMp-kWfxle4cK48GGHDnKbVonZX65qbXAA,5464
342
+ fusion_bench/utils/rich_utils.py,sha256=B8DhAYuVp23pG6ZnnYrUhcL-ikHZoQeTNqlM7u4pwwU,5786
343
+ fusion_bench/utils/set.py,sha256=_43ZvGKJ_BK9sUslsSNhi7xEfuAQuyj3vViImnGpnCY,134
327
344
  fusion_bench/utils/state_dict_arithmetic.py,sha256=dVPBkO8Te9_VANPbetV59ORAQTw7D3css_-d0lYgK4k,9062
345
+ fusion_bench/utils/tensorboard.py,sha256=VTEN-uoYBmfhCEJOOXCCZpJe2ErZg0VKcTGyfWZJkSM,1673
328
346
  fusion_bench/utils/timer.py,sha256=RC2hP8JqaibdL0FnRyUCBRf4m7CXyfn5tE16zBWZ7hg,1338
329
347
  fusion_bench/utils/type.py,sha256=Jz--BmTAzQkxcXXZfGiQLzLR0IPktrFGdjiWhkE93Qg,567
330
348
  fusion_bench/utils/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
+ fusion_bench/utils/plot/color_data.py,sha256=5QO2tlf-9bCKywsIZJXxl6klWb8EntXFilTas_8je5c,48260
331
350
  fusion_bench/utils/plot/token.py,sha256=QGmL_qX8drmWnN_VNLD_0YjKc1o_qahJE-svXVor8dU,1634
332
351
  fusion_bench/utils/plot/token_notebook.py,sha256=bsntXf46Zz_RavTxNiB9c3-KvHw7LFwyLeG0MIwOwF4,3739
333
352
  fusion_bench/utils/strenum/__init__.py,sha256=id9ORi1uXrDxhbmVxitJ1KDwLS4H3AAwFpaK5h1cQzw,8531
@@ -436,7 +455,7 @@ fusion_bench_config/hydra/default.yaml,sha256=TT0RaUwYgfB7pKpbHgEbmuCVTB2fx2eXxv
436
455
  fusion_bench_config/hydra/help/fusion_bench_help.yaml,sha256=v8s891Cr5wyxBXGDn_VBBwwRmb0JXOL874Sl-zNoCWA,1880
437
456
  fusion_bench_config/hydra/job_logging/rich_logging.yaml,sha256=_dYGeFTCqaPrRowLXBNMXwzYhw8ns1TkQFfALwK1aCw,441
438
457
  fusion_bench_config/method/adamerging.yaml,sha256=fBG7jBBepygKpCbM3fmUeVAr2zzx0g8C21rGGfnEPkA,730
439
- fusion_bench_config/method/clip_finetune.yaml,sha256=LGrTAdY6we2tq-QHCbnmtH5HXBDnWepaOx0EDJoISFU,675
458
+ fusion_bench_config/method/clip_finetune.yaml,sha256=yWjcdKYaKvy53sGaygg2ElAjb9-YFCyCGE1s9aB_dPM,677
440
459
  fusion_bench_config/method/depth_upscaling.yaml,sha256=tLU1DdSoV4StGcG7EFpf_3RGPiSL2Dfqr0txASAAwDY,623
441
460
  fusion_bench_config/method/dummy.yaml,sha256=5qs6OuIfriKOH7FgqvcMXMUoRLmXDZmjA4irpAsc5xo,45
442
461
  fusion_bench_config/method/mixtral_moe_merging.yaml,sha256=AdVhXD6Crw-B3QyNpP4ToHRSg-EeSCIGtazA7lQvPOU,148
@@ -453,11 +472,14 @@ fusion_bench_config/method/adamerging/layer_wise_gpt2.yaml,sha256=MsyTLP6-ad4tS-
453
472
  fusion_bench_config/method/adamerging/llama_sft.yaml,sha256=GNTNElki6Lsu5QvQxzu_sQ8fmxR-Zb60c-pD-gq2umA,1024
454
473
  fusion_bench_config/method/analysis/task_vector_cos_similarity.yaml,sha256=5eeJmJpbHdOOz20RyFcUJDCib_VG3CznvNm77_F2iNQ,140
455
474
  fusion_bench_config/method/analysis/task_vector_violin_plot.yaml,sha256=A8I51WRBTpI8-1LjP-pZVqJQ0K-OpVSMraT0AmT88_A,135
475
+ fusion_bench_config/method/classification/clip_continual_finetune.yaml,sha256=NNSgKqtAUifbGNNQCFigyGkiMmYS3r99e37gmCd-JsY,792
476
+ fusion_bench_config/method/classification/clip_finetune.yaml,sha256=yWjcdKYaKvy53sGaygg2ElAjb9-YFCyCGE1s9aB_dPM,677
456
477
  fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml,sha256=XsHzr_5NoUZs0Us3eVwP3lUYXYvyJwGEEG9aDI_Z0rU,740
457
478
  fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml,sha256=eNoqcY1iMbs0Y5kKi_ya3rmQQMHqU7ht3EU7G_xmwN0,746
458
479
  fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml,sha256=WgTJj28FlVjR0_mCGJC5B8aJa9yezI3QusoXXHOrFoU,739
459
480
  fusion_bench_config/method/dare/simple_average.yaml,sha256=oTFSCHul86NTjTtJYK5pNr3tuxW7XxNI-y6fL9Yo4VI,113
460
481
  fusion_bench_config/method/dare/task_arithmetic.yaml,sha256=Cvsam89yquamn_GkITT6q8qFKN_Yb5nv8p-XgvnVrgU,134
482
+ fusion_bench_config/method/dare/ties_merging.yaml,sha256=50mPiRkzLN7gxaIs56sPWkAUSvqvdxjQJ8eVl1yUGOg,418
461
483
  fusion_bench_config/method/dawe/dawe_for_clip.yaml,sha256=8-Z_kwwGCy1AO4brW-R_pe8oJ0yqoD4WCLI9ZtJ4KOo,1026
462
484
  fusion_bench_config/method/ensemble/max_model_predictor.yaml,sha256=fsWuNJwr1ohVB2aJ5L2fsiDLztm5GieE9JS99w--two,56
463
485
  fusion_bench_config/method/ensemble/simple_ensemble.yaml,sha256=bw9FabjhQYNbttsiMgTVd-Z4KIowf050Uy97vKtm2ys,55
@@ -465,6 +487,8 @@ fusion_bench_config/method/ensemble/weighted_ensemble.yaml,sha256=U_wQXtogtgiqOT
465
487
  fusion_bench_config/method/fisher_merging/clip_fisher_merging.yaml,sha256=rl7kfVvdo2pG-DnglQUbjzkyBqnq1FpfoSDSjFtdLwk,633
466
488
  fusion_bench_config/method/fisher_merging/fisher_merging.yaml,sha256=B1wrv9mhaOID4KcAUEMZNxlvY3tR3Q3UGualFslvx-Y,475
467
489
  fusion_bench_config/method/fisher_merging/gpt2_fisher_merging.yaml,sha256=AE7XZqRDj4__J_ipEcjPs7qTB2J3xLQyFRlq1W4iHFE,563
490
+ fusion_bench_config/method/isotropic_merging/iso_c.yaml,sha256=Lh_OtTaUJ08--h85fUr2asF85xLe1NMCK8fVAhHOzdQ,82
491
+ fusion_bench_config/method/isotropic_merging/iso_cts.yaml,sha256=x5vZo__kO8njl4_gFdXnOt15X_qFLv6-diSWHOR4clw,111
468
492
  fusion_bench_config/method/linear/expo.yaml,sha256=St3NW6cKVRV3vCn8y0gxQ8k66VTdtsLTEWQTbO9wQ0Y,420
469
493
  fusion_bench_config/method/linear/linear_interpolation.yaml,sha256=IQgltk5REITSx8xLuLP11ByPbuMgy7dHz_BrxIgwOas,67
470
494
  fusion_bench_config/method/linear/llama_expo.yaml,sha256=SEsC-l5gugY0vlsQkTJqzVgWJnMjFzWuTz814UKbFeM,624
@@ -476,6 +500,10 @@ fusion_bench_config/method/linear/weighted_average_for_llama.yaml,sha256=r8BlNqz
476
500
  fusion_bench_config/method/lm_finetune/bradley_terry_rm.yaml,sha256=em0Lnodl9bg8dos9MODMXjKtxWCXwQArjLT2z4TC3Q0,1352
477
501
  fusion_bench_config/method/lm_finetune/fullfinetune_sft.yaml,sha256=edj3juaYos2I9oQ8J6NKQNcNwqwcQGD74ZMosDsB5SY,1341
478
502
  fusion_bench_config/method/lm_finetune/peftfinetune_sft.yaml,sha256=9S-qsWUIALRwWd_gzNF1bwIuPPGP1MmqTpdQ53cwZmc,1628
503
+ fusion_bench_config/method/opcm/opcm.yaml,sha256=FnkudkvzLT9nYSwPkmT36TGwpM0_oFUlyroN-Oesm2c,332
504
+ fusion_bench_config/method/opcm/task_arithmetic.yaml,sha256=q2DnV3DmIqr9YyuShDYaIuI92tkcNEtCrfcRpECFris,328
505
+ fusion_bench_config/method/opcm/ties_merging.yaml,sha256=llXE1Kp9fx2veik_XUGETmiD3LcVUha0n7SDJ6AOm_A,543
506
+ fusion_bench_config/method/opcm/weight_average.yaml,sha256=vQla5o6wwwLZN_3AOA5o82zN7oiLRRmimpeD6aenwVI,305
479
507
  fusion_bench_config/method/pruning/llama_magnitude_pruning.yaml,sha256=Px8LU_UtDz-YHDFfqQ7scEPOproiFOaudKVshrhCTgc,483
480
508
  fusion_bench_config/method/pruning/llama_random_pruning.yaml,sha256=0RiZS8d42PXZzwncPG8zcbnyYJ9vtfr2sOSqS8oDyT4,325
481
509
  fusion_bench_config/method/pruning/llama_wanda_pruning.yaml,sha256=qKe5yIRsmK2KUyYENENWlw1qlGet9TpDhR-E_uO7vAw,501
@@ -492,7 +520,7 @@ fusion_bench_config/method/sparselo_pruning/llama_iterative_sparselo.yaml,sha256
492
520
  fusion_bench_config/method/sparselo_pruning/llama_pcp_sparselo.yaml,sha256=w1OWb38nW08K_hvrRMsCwmRxHWLGQfSSXg5nTiYaP8E,635
493
521
  fusion_bench_config/method/sparselo_pruning/llama_sparselo.yaml,sha256=J6vYIwqzh95-B3ekDias3FnCrVr4sig4zxpWyvz8hZ0,613
494
522
  fusion_bench_config/method/surgery/adamerging_surgery.yaml,sha256=Ne9JlJFgsRYcygBNCOBSN1ygBcLkE6I-8yusfTxyg-Y,826
495
- fusion_bench_config/method/task_singular_vector/TaskSingularVectorMerging.yaml,sha256=Se2v7AwwGqulXEVktRRzznpba4nNrWegY2bOwvjrHG8,74
523
+ fusion_bench_config/method/task_singular_vector/TaskSingularVectorMerging.yaml,sha256=CLONjN9TXQ0OQwZHaje0q3WJWxR3LD1b5q5KrWJfZIA,169
496
524
  fusion_bench_config/method/trust_region/clip_task_arithmetic.yaml,sha256=mK09Ohsvj0Q6suj5qJM4DyCzRy192QBt4wjHS6W29IY,197
497
525
  fusion_bench_config/method/wemoe/sparse_weight_ensembling_moe.yaml,sha256=jiAco7M1XO0aekHFZKLKlXL_jRoCA8bgGD44Z7iB208,1001
498
526
  fusion_bench_config/method/wemoe/weight_ensembling_moe.yaml,sha256=OEv5yhyUCe5lXeT2PyXC49yrHXEM7i8SZDw6IQRDtAE,620
@@ -633,6 +661,7 @@ fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustne
633
661
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml,sha256=SBTyUX3wJwzdCTvZsW14FqaQP5r_nHPvusggGzP9P4o,148
634
662
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_task_projection.yaml,sha256=3dymOGjBsEGzqCvzfDGkfImDNcCS0twJ07XpCrrTGcs,393
635
663
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_svhn_and_mnist.yaml,sha256=fYthV8iwRvF-b4-OCIFW1Rud-BVoLx4Oo3DzVszfqek,175
664
+ fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_two_tasks_control_task.yaml,sha256=n60FIiq_VeoDDB-SwkpR3tYiS5r6XJVE8aLA2UubMn0,483
636
665
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8.yaml,sha256=-Tt_YggxkuIGT4_q5FR16zPvW2wWhGJ5LL8omxvHjvw,380
637
666
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TA8_model_only.yaml,sha256=PrDQr04UnhAciDrdtUutx-prMxF1Cs4jrEar7uJ-1Es,238
638
667
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TALL14.yaml,sha256=TyF7CKXpBOiDoLtDVvZuBzPI9gEJo_c99j3Gwkl3FWw,510
@@ -695,9 +724,9 @@ fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-single-task_sun397
695
724
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-single-task_svhn.yaml,sha256=2AqMiNCRRunLIrssHvFzu1lUzOaQn8uOHM9yjrQq-_A,109
696
725
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_rankone_wemoe_clip-vit-classification_TA8.yaml,sha256=iQMj2VpDTe_D8OfCo94w5Ud2MON-EGa0DzVr6UmphrA,436
697
726
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip_sparse_wemoe_clip-vit-classification_TA8.yaml,sha256=i5Bn8bLl2cgqvrgtIGmoovUfSMehk_m-6C2wwcx5JMU,435
698
- fusion_bench-0.2.8.dist-info/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
699
- fusion_bench-0.2.8.dist-info/METADATA,sha256=hMQ_4EyhPeYV0GFDmKHo9xqM2n9EwkKr3HDgeJ32SgU,13528
700
- fusion_bench-0.2.8.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
701
- fusion_bench-0.2.8.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
702
- fusion_bench-0.2.8.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
703
- fusion_bench-0.2.8.dist-info/RECORD,,
727
+ fusion_bench-0.2.10.dist-info/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
728
+ fusion_bench-0.2.10.dist-info/METADATA,sha256=kBYozBf6hgA-7ebsn7znqJdhCz4H0dJSv2jVIEkBvyA,16780
729
+ fusion_bench-0.2.10.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
730
+ fusion_bench-0.2.10.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
731
+ fusion_bench-0.2.10.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
732
+ fusion_bench-0.2.10.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,28 @@
1
+ _target_: fusion_bench.method.ContinualImageClassificationFineTuningForCLIP
2
+
3
+ seed: 42
4
+ # shuffle the order of the tasks
5
+ shuffle_order: true
6
+ learning_rate: 1e-5
7
+ weight_decay: 0
8
+ # number of training steps on each task
9
+ num_steps: 4000
10
+ batch_size: 128
11
+ num_workers: 16
12
+ save_interval: 500
13
+ # if `state_dict_load_path` is not null, the training will be resumed from the state_dict_path
14
+ state_dict_load_path: null
15
+ # if `state_dict_save_path` is not null, the state_dict will be saved to the path after training
16
+ state_dict_save_path: null
17
+ # if `skip_training` is true, use with `state_dict_load_path` to skip training and only evaluate
18
+ skip_training: false
19
+ # === LoRA ===
20
+ use_lora: false
21
+ lora_config:
22
+ r: 16
23
+ lora_alpha: 32
24
+ target_modules:
25
+ - q_proj
26
+ - v_proj
27
+ lora_dropout: 0.1
28
+ bias: none
@@ -0,0 +1,26 @@
1
+ name: clip_finetune
2
+ seed: 42
3
+ learning_rate: 1e-5
4
+ weight_decay: 0
5
+ num_steps: 4000
6
+ batch_size: 128
7
+ num_workers: 16
8
+ save_interval: 500
9
+ # if `state_dict_load_path` is not null, the training will be resumed from the state_dict_path
10
+ state_dict_load_path: null
11
+ # if `state_dict_save_path` is not null, the state_dict will be saved to the path after training
12
+ state_dict_save_path: null
13
+ # if `skip_training` is true, use with `state_dict_load_path` to skip training and only evaluate
14
+ skip_training: false
15
+ # === LoRA ===
16
+ use_lora: false
17
+ lora_config:
18
+ r: 16
19
+ lora_alpha: 32
20
+ target_modules:
21
+ - q_proj
22
+ - v_proj
23
+ lora_dropout: 0.1
24
+ bias: none
25
+ # === L-LoRA ===
26
+ use_l_lora: false
@@ -3,8 +3,8 @@ seed: 42
3
3
  learning_rate: 1e-5
4
4
  weight_decay: 0
5
5
  num_steps: 4000
6
- batch_size: 64
7
- num_workers: 8
6
+ batch_size: 128
7
+ num_workers: 16
8
8
  save_interval: 500
9
9
  # if `state_dict_load_path` is not null, the training will be resumed from the state_dict_path
10
10
  state_dict_load_path: null
@@ -0,0 +1,15 @@
1
+ _target_: fusion_bench.method.dare.DareTiesMerging
2
+
3
+ # === DARE parameters ===
4
+ sparsity_ratio: 0.5
5
+ only_on_linear_weights: false
6
+ rescale: true
7
+
8
+ # === Ties merging parameters ===
9
+ # Scaling factor $\lambda$
10
+ scaling_factor: 0.5
11
+ threshold: 20
12
+ # List of keys to remove from the state dict, default is empty
13
+ remove_keys: []
14
+ # Function to merge the models, default is sum. Options are 'sum', 'mean', and 'max'
15
+ merge_func: sum
@@ -0,0 +1,4 @@
1
+ _target_: fusion_bench.method.ISO_C_Merge
2
+
3
+ scaling_factor: 1.0
4
+ exclude_keys: null
@@ -0,0 +1,5 @@
1
+ _target_: fusion_bench.method.ISO_CTS_Merge
2
+
3
+ scaling_factor: 1.0
4
+ common_space_fraction: 0.8
5
+ exclude_keys: null
@@ -0,0 +1,12 @@
1
+ _target_: fusion_bench.method.opcm.opcm.OPCMForCLIP
2
+
3
+ # shuffle the order of the models
4
+ shuffle_order: true
5
+ # the scaling factor for the SVD projection
6
+ alpha: 0.5
7
+ # the random seed to use
8
+ seed: null
9
+ # save the merged model on every step
10
+ save_on_every_step: true
11
+ # evaluate the merged model on every step
12
+ evaluate_on_every_step: true
@@ -0,0 +1,12 @@
1
+ _target_: fusion_bench.method.opcm.task_arithmetic.ContinualTaskArithmeticForCLIP
2
+
3
+ scaling_factor: 0.3
4
+
5
+ # shuffle the order of the models
6
+ shuffle_order: true
7
+ # the random seed to use
8
+ seed: null
9
+ # save the merged model on every step
10
+ save_on_every_step: true
11
+ # evaluate the merged model on every step
12
+ evaluate_on_every_step: true
@@ -0,0 +1,18 @@
1
+ _target_: fusion_bench.method.opcm.ties_merging.ContinualTiesMergingForCLIP
2
+
3
+ # Scaling factor $\lambda$
4
+ scaling_factor: 0.5
5
+ threshold: 20
6
+ # List of keys to remove from the state dict, default is empty
7
+ remove_keys: []
8
+ # Function to merge the models, default is sum. Options are 'sum', 'mean', and 'max'
9
+ merge_func: sum
10
+
11
+ # shuffle the order of the models
12
+ shuffle_order: true
13
+ # the random seed to use
14
+ seed: null
15
+ # save the merged model on every step
16
+ save_on_every_step: true
17
+ # evaluate the merged model on every step
18
+ evaluate_on_every_step: true
@@ -0,0 +1,10 @@
1
+ _target_: fusion_bench.method.opcm.weight_average.ContinualWeightAverageForCLIP
2
+
3
+ # shuffle the order of the models
4
+ shuffle_order: true
5
+ # the random seed to use
6
+ seed: null
7
+ # save the merged model on every step
8
+ save_on_every_step: true
9
+ # evaluate the merged model on every step
10
+ evaluate_on_every_step: true
@@ -1,2 +1,8 @@
1
1
  _target_: fusion_bench.method.TaskSingularVectorMerging
2
2
  remove_keys: null
3
+
4
+ # alpha is a float or a list of floats
5
+ # example:
6
+ # alpha: 1
7
+ # alpha: [1, 0.5, 0.25]
8
+ alpha: 1
@@ -0,0 +1,18 @@
1
+ defaults:
2
+ - _self_
3
+ - /dataset/image_classification/train@train_datasets:
4
+ - tiny-imagenet
5
+
6
+ _target_: fusion_bench.modelpool.CLIPVisionModelPool
7
+ _recursive_: false
8
+
9
+ models:
10
+ _pretrained_: openai/clip-vit-base-patch32
11
+ model_1: tanganke/clip-vit-base-patch32_sun397
12
+ model_2: tanganke/clip-vit-base-patch32_stanford-cars
13
+
14
+ train_datasets: ???
15
+
16
+ processor:
17
+ _target_: transformers.CLIPProcessor.from_pretrained
18
+ pretrained_model_name_or_path: openai/clip-vit-base-patch32