fusion-bench 0.2.29__py3-none-any.whl → 0.2.31__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 (41) hide show
  1. fusion_bench/constants/runtime.py +4 -1
  2. fusion_bench/method/__init__.py +9 -1
  3. fusion_bench/method/base_algorithm.py +29 -19
  4. fusion_bench/method/classification/image_classification_finetune.py +1 -0
  5. fusion_bench/method/concrete_subspace/clip_concrete_tsvm.py +285 -0
  6. fusion_bench/method/task_singular_vector/TSVM.py +7 -6
  7. fusion_bench/method/task_singular_vector/utils/TSVM_utils.py +0 -1
  8. fusion_bench/metrics/model_kinship/__init__.py +2 -0
  9. fusion_bench/metrics/model_kinship/calculate.py +77 -0
  10. fusion_bench/metrics/model_kinship/calculate_split.py +171 -0
  11. fusion_bench/metrics/model_kinship/utility.py +184 -0
  12. fusion_bench/mixins/lightning_fabric.py +2 -8
  13. fusion_bench/mixins/openclip_classification.py +155 -1
  14. fusion_bench/modelpool/base_pool.py +1 -0
  15. fusion_bench/modelpool/openclip_vision/modelpool.py +12 -3
  16. fusion_bench/models/masks/mask_model.py +8 -2
  17. fusion_bench/models/open_clip/modeling.py +68 -5
  18. fusion_bench/models/open_clip/utils.py +13 -2
  19. fusion_bench/models/wrappers/layer_wise_fusion.py +41 -3
  20. fusion_bench/models/wrappers/task_wise_fusion.py +14 -3
  21. fusion_bench/py.typed +1 -0
  22. fusion_bench/scripts/cli.py +21 -16
  23. fusion_bench/scripts/imgui.py +2 -2
  24. fusion_bench/scripts/webui.py +2 -2
  25. fusion_bench/utils/__init__.py +2 -0
  26. fusion_bench/utils/devices.py +3 -1
  27. fusion_bench/utils/hydra_utils.py +75 -0
  28. fusion_bench/utils/instantiate_utils.py +29 -18
  29. fusion_bench/utils/misc.py +16 -0
  30. fusion_bench/utils/parameters.py +33 -0
  31. fusion_bench/utils/rich_utils.py +165 -25
  32. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/METADATA +7 -7
  33. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/RECORD +41 -34
  34. fusion_bench_config/README.md +9 -0
  35. fusion_bench_config/fabric/auto.yaml +1 -0
  36. fusion_bench_config/hydra/default.yaml +3 -1
  37. fusion_bench_config/method/concrete_subspace/clip_concrete_tsvm.yaml +38 -0
  38. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/WHEEL +0 -0
  39. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/entry_points.txt +0 -0
  40. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/licenses/LICENSE +0 -0
  41. {fusion_bench-0.2.29.dist-info → fusion_bench-0.2.31.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from pathlib import Path
3
- from typing import Sequence
3
+ from typing import Optional, Sequence
4
4
 
5
5
  import rich
6
6
  import rich.syntax
@@ -19,6 +19,9 @@ from rich.text import Text
19
19
  from rich.traceback import install as install_rich_traceback
20
20
 
21
21
  from fusion_bench.utils import pylogger
22
+ from fusion_bench.utils.packages import _is_package_available
23
+
24
+ install_rich_traceback()
22
25
 
23
26
  log = pylogger.RankedLogger(__name__, rank_zero_only=True)
24
27
 
@@ -61,24 +64,99 @@ def display_available_styles():
61
64
  console.print(Columns(style_samples, equal=True, expand=False))
62
65
 
63
66
 
64
- def print_bordered(message, title=None, style="blue", code_style=None):
67
+ def format_code_str(message: str, code_style="python"):
68
+ if code_style.lower() == "python" and _is_package_available("black"):
69
+ # Use black formatting for python code if black is available
70
+ import black
71
+
72
+ try:
73
+ message = black.format_str(message, mode=black.Mode())
74
+ except black.InvalidInput:
75
+ pass # If black fails, use the original message
76
+
77
+ return message.strip()
78
+
79
+
80
+ def print_bordered(
81
+ message,
82
+ title=None,
83
+ style="blue",
84
+ code_style=None,
85
+ *,
86
+ expand: bool = True,
87
+ theme: str = "monokai",
88
+ background_color: Optional[str] = "default",
89
+ print_fn=print,
90
+ format_code: bool = True,
91
+ ):
65
92
  """
66
93
  Print a message with a colored border.
67
94
 
68
95
  Args:
69
- message (str): The message to print.
70
- title (str, optional): The title of the panel. Defaults to None.
71
- style (str, optional): The color style for the border. Defaults to "cyan".
72
- code_style (str, optional): The syntax highlighting style if the message is code.
73
- Set to None for plain text. Defaults to "python".
96
+ message (str): The message to print.
97
+ title (str, optional): The title of the panel. Defaults to None.
98
+ style (str, optional): The color style for the border. Defaults to "cyan".
99
+ code_style (str, optional): The syntax highlighting style if the message is code.
100
+ Set to None for plain text. Defaults to "python".
74
101
  """
75
102
  if code_style:
76
- content = Syntax(message, code_style, theme="monokai", word_wrap=True)
103
+ if format_code:
104
+ message = format_code_str(message, code_style)
105
+ content = Syntax(
106
+ message,
107
+ code_style,
108
+ word_wrap=True,
109
+ theme=theme,
110
+ background_color=background_color,
111
+ )
77
112
  else:
78
113
  content = Text(message)
79
114
 
80
- panel = Panel(content, title=title, border_style=style)
81
- print(panel)
115
+ panel = Panel(content, title=title, border_style=style, expand=expand)
116
+ print_fn(panel)
117
+
118
+
119
+ def print_code(
120
+ message,
121
+ title=None,
122
+ code_style=None,
123
+ *,
124
+ expand: bool = True,
125
+ theme: str = "monokai",
126
+ background_color: Optional[str] = "default",
127
+ print_fn=print,
128
+ ):
129
+ """
130
+ Print code or plain text with optional syntax highlighting.
131
+
132
+ Args:
133
+ message (str): The message or code to print.
134
+ title (str, optional): Optional title associated with this output. Currently
135
+ not used by this function, but kept for API compatibility. Defaults to None.
136
+ code_style (str, optional): The language/lexer name for syntax highlighting
137
+ (for example, ``"python"``). If ``None``, the message is rendered as plain
138
+ text without syntax highlighting. Defaults to ``None``.
139
+ expand (bool, optional): Placeholder flag for API symmetry with other printing
140
+ helpers. It is not used in the current implementation. Defaults to True.
141
+ theme (str, optional): Name of the Rich syntax highlighting theme to use when
142
+ ``code_style`` is provided. Defaults to ``"monokai"``.
143
+ background_color (str, optional): Background color style to apply to the code
144
+ block when using syntax highlighting. Defaults to ``"default"``.
145
+ print_fn (Callable, optional): Function used to render the resulting Rich
146
+ object. Defaults to :func:`rich.print`.
147
+ """
148
+ if code_style:
149
+ content = Syntax(
150
+ message,
151
+ code_style,
152
+ word_wrap=True,
153
+ theme=theme,
154
+ background_color=background_color,
155
+ )
156
+ else:
157
+ content = Text(message)
158
+
159
+ print_fn(content)
82
160
 
83
161
 
84
162
  @rank_zero_only
@@ -90,19 +168,31 @@ def print_config_tree(
90
168
  "callbacks",
91
169
  "logger",
92
170
  "trainer",
93
- "paths",
171
+ "path",
94
172
  "extras",
95
173
  ),
96
174
  resolve: bool = False,
97
175
  save_to_file: bool = False,
176
+ *,
177
+ theme: str = "monokai",
178
+ background_color: Optional[str] = "default",
98
179
  ) -> None:
99
180
  """Prints the contents of a DictConfig as a tree structure using the Rich library.
100
181
 
101
- :param cfg: A DictConfig composed by Hydra.
102
- :param print_order: Determines in what order config components are printed. Default is ``("data", "model",
103
- "callbacks", "logger", "trainer", "paths", "extras")``.
104
- :param resolve: Whether to resolve reference fields of DictConfig. Default is ``False``.
105
- :param save_to_file: Whether to export config to the hydra output folder. Default is ``False``.
182
+ Args:
183
+ cfg (DictConfig): A DictConfig composed by Hydra.
184
+ print_order (Sequence[str], optional): Determines in what order config components are printed.
185
+ Defaults to ``("data", "model", "callbacks", "logger", "trainer", "paths", "extras")``.
186
+ resolve (bool, optional): Whether to resolve reference fields of DictConfig.
187
+ Defaults to ``False``.
188
+ save_to_file (bool, optional): Whether to export config to the hydra output folder.
189
+ Defaults to ``False``.
190
+ theme (str, optional): The theme to use for syntax highlighting. Defaults to "monokai".
191
+ background_color (str, optional): The background color to use for syntax highlighting.
192
+ Defaults to "default".
193
+
194
+ Returns:
195
+ None
106
196
  """
107
197
  style = "tree"
108
198
  tree = rich.tree.Tree("CONFIG", style=style, guide_style=style)
@@ -119,30 +209,80 @@ def print_config_tree(
119
209
  )
120
210
  )
121
211
 
122
- # add all the other fields to queue (not specified in `print_order`)
123
- for field in cfg:
124
- if field not in queue:
125
- queue.append(field)
126
-
127
212
  # generate config tree from queue
128
213
  for field in queue:
129
214
  branch = tree.add(field, style=style, guide_style=style)
130
215
 
131
216
  config_group = cfg[field]
132
217
  if isinstance(config_group, DictConfig):
133
- branch_content = OmegaConf.to_yaml(config_group, resolve=resolve)
218
+ branch_content = OmegaConf.to_yaml(config_group, resolve=resolve).strip()
134
219
  else:
135
220
  branch_content = str(config_group)
136
221
 
137
- branch.add(rich.syntax.Syntax(branch_content, "yaml"))
222
+ branch.add(
223
+ rich.syntax.Syntax(
224
+ branch_content,
225
+ "yaml",
226
+ theme=theme,
227
+ background_color=background_color,
228
+ )
229
+ )
230
+
231
+ # add all the other fields to queue (not specified in `print_order`)
232
+ other_fields = [field for field in cfg if field not in queue]
233
+ if other_fields:
234
+ others_branch = tree.add(Text("[others]"), style=style, guide_style=style)
235
+
236
+ other_cfg = OmegaConf.create({field: cfg[field] for field in other_fields})
237
+ branch_content = OmegaConf.to_yaml(other_cfg, resolve=resolve).strip()
238
+
239
+ others_branch.add(
240
+ rich.syntax.Syntax(
241
+ branch_content, "yaml", theme=theme, background_color=background_color
242
+ )
243
+ )
138
244
 
139
245
  # print config tree
140
246
  rich.print(tree)
141
247
 
142
248
  # save config tree to file
143
249
  if save_to_file:
144
- with open(Path(cfg.paths.output_dir, "config_tree.log"), "w") as file:
145
- rich.print(tree, file=file)
250
+ if not cfg.get("paths") or not cfg.paths.get("output_dir"):
251
+ log.error(
252
+ "Cannot save config tree to file. 'paths.output_dir' is not specified in the config."
253
+ )
254
+ else:
255
+ with open(Path(cfg.path.output_dir, "config_tree.log"), "w") as file:
256
+ rich.print(tree, file=file)
257
+
258
+
259
+ @rank_zero_only
260
+ def print_config_yaml(
261
+ cfg: DictConfig,
262
+ resolve: bool = False,
263
+ output_path: Optional[str] = False,
264
+ *,
265
+ theme: str = "monokai",
266
+ background_color: Optional[str] = "default",
267
+ ) -> None:
268
+ """
269
+ Prints the contents of a DictConfig as a YAML string using the Rich library.
270
+
271
+ Args:
272
+ cfg: A DictConfig composed by Hydra.
273
+ resolve: Whether to resolve reference fields of DictConfig. Default is ``False``.
274
+ output_path: Optional path to export the config YAML to. If provided, the file is written to this path.
275
+ """
276
+ config_yaml = OmegaConf.to_yaml(cfg, resolve=resolve)
277
+ syntax = rich.syntax.Syntax(
278
+ config_yaml, "yaml", theme=theme, background_color=background_color
279
+ )
280
+ rich.print(syntax)
281
+
282
+ if output_path:
283
+ Path(output_path).parent.mkdir(parents=True, exist_ok=True)
284
+ with open(Path(output_path), "w") as file:
285
+ rich.print(syntax, file=file)
146
286
 
147
287
 
148
288
  @rank_zero_only
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fusion-bench
3
- Version: 0.2.29
3
+ Version: 0.2.31
4
4
  Summary: A Comprehensive Benchmark of Deep Model Fusion
5
5
  Author-email: Anke Tang <tang.anke@foxmail.com>
6
6
  Project-URL: Repository, https://github.com/tanganke/fusion_bench
@@ -255,9 +255,9 @@ First, create a new Python file for the algorithm in the `fusion_bench/method` d
255
255
  Following the naming convention, the file should be named `{method_name_or_class}/{variant}.py`.
256
256
 
257
257
  ```python
258
- from fusion_bench import BaseModelFusionAlgorithm, BaseModelPool
258
+ from fusion_bench import BaseAlgorithm, BaseModelPool
259
259
 
260
- class DerivedModelFusionAlgorithm(BaseModelFusionAlgorithm):
260
+ class DerivedModelFusionAlgorithm(BaseAlgorithm):
261
261
  """
262
262
  An example of a derived model fusion algorithm.
263
263
  """
@@ -265,7 +265,7 @@ class DerivedModelFusionAlgorithm(BaseModelFusionAlgorithm):
265
265
  # _config_mapping maps the attribution to the corresponding key in the configuration file.
266
266
  # this is optional and can be used to serialize the object to a configuration file.
267
267
  # `self.config.hyperparam_1` will be mapped to the attribute `hyperparam_attr_1`.
268
- _config_mapping = BaseModelFusionAlgorithm._config_mapping | {
268
+ _config_mapping = BaseAlgorithm._config_mapping | {
269
269
  "hyperparam_attr_1": "hyperparam_1",
270
270
  "hyperparam_attr_2": "hyperparam_2",
271
271
  }
@@ -344,9 +344,9 @@ If you find this benchmark useful, please consider citing our work:
344
344
  ```bibtex
345
345
  @article{tang2024fusionbench,
346
346
  title={Fusionbench: A comprehensive benchmark of deep model fusion},
347
- author={Tang, Anke and Shen, Li and Luo, Yong and Hu, Han and Du, Bo and Tao, Dacheng},
348
- journal={arXiv preprint arXiv:2406.03280},
349
- year={2024}
347
+ author={Tang, Anke and Shen, Li and Luo, Yong and Yang, Enneng and Hu, Han and Zhang, Lefei and Du, Bo and Tao, Dacheng},
348
+ journal={Journal of Machine Learning Research},
349
+ year={2025}
350
350
  }
351
351
  ```
352
352
 
@@ -1,5 +1,6 @@
1
1
  fusion_bench/__init__.py,sha256=C-0-HgZFdRjscXqpfNsz7iGUijUeSoP4GFRnFxuxQ7M,5992
2
2
  fusion_bench/__main__.py,sha256=weUjxpP3ULnDgUxCehdbmoCM9cqfkhDhGB85tAF5qoE,81
3
+ fusion_bench/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
3
4
  fusion_bench/_get_started/__init__.py,sha256=Ht6OK6Luei2kdY9jRZzRQfzBlm3Yfm64BkXxpzeRg9Q,40
4
5
  fusion_bench/_get_started/greeting_program.py,sha256=wvVsPa7Djwx5Z5spAI6F9Kvv9KwfNkjIgJVH8oXR3Bo,1233
5
6
  fusion_bench/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -17,7 +18,7 @@ fusion_bench/constants/__init__.py,sha256=icLBUEZ84oExUXRNm5Nrm4FVcvAZ-SiQ5HWOLO
17
18
  fusion_bench/constants/banner.py,sha256=fuIO36ETKlS6a3wbwZn-rA2OswSCfOYyyhZ0Fnal1s4,1656
18
19
  fusion_bench/constants/clip_vision.py,sha256=qOHlYZYSOqpOO4-cfwUUhbv7qyr5IuUAW3yWjqjbJBo,1430
19
20
  fusion_bench/constants/paths.py,sha256=1xLaZ2J3B3d0bo2ndubawaOjiFMJDAK6TjF685HlCM0,719
20
- fusion_bench/constants/runtime.py,sha256=0X8ldWJLGZ38lg_MbQE3M2ewm_vz9bUBPx3QkN3fNW4,4755
21
+ fusion_bench/constants/runtime.py,sha256=Er9MDGvzgYeipu3MzvjA-QN0CSFWlr1Chb6RYNdRt6E,4836
21
22
  fusion_bench/dataset/__init__.py,sha256=2b4UGemg_F1I5cXkAzNMm12XmlP9-06DH8cW1V6ugwo,1495
22
23
  fusion_bench/dataset/clip_dataset.py,sha256=xQ1aRiA_WMIZKha0do0Dg5F8qsEIucuouy8AbsxbewI,3263
23
24
  fusion_bench/dataset/fer2013.py,sha256=Lub_xVhHfqaiPprvOsDVspJNioh1FjSrkhn3gL_UXDA,404
@@ -48,8 +49,8 @@ fusion_bench/dataset/llama/stanford_shp.py,sha256=6ueXKnFXIBBobacU1h5WxGLZrSOtBk
48
49
  fusion_bench/dataset/llama/ultrachat.py,sha256=Go7WvrDAYnm184fdazHGRYLbSY6Xd7jrESyQeUJtOww,1736
49
50
  fusion_bench/dataset/llama/wikitext.py,sha256=9ZHR-nMfXRumd3o-PIj3n7B83YlVeqpGkZ2zJs2B-9Y,2883
50
51
  fusion_bench/dataset/llama/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- fusion_bench/method/__init__.py,sha256=sXjV8DDn3yXVjzsl6k-nMVx6EABQDjXjY3xK-I6nvr0,9527
52
- fusion_bench/method/base_algorithm.py,sha256=OnKSNPQ_nIdIWxryyblW_sko7uoEBN4lGh-eLkJ4kh4,9004
52
+ fusion_bench/method/__init__.py,sha256=Set_2GWpmI3q_WvbV1hBUfa6GFiIuajyiZR2hRbfrN0,9811
53
+ fusion_bench/method/base_algorithm.py,sha256=Pa3A7ON0YK3PJqFE77IY9dpQC-tQGJpX6kdf8IMnM_k,9453
53
54
  fusion_bench/method/dummy.py,sha256=hb1y6LR_geRZ5eRgGwt5zJUcHYorCeIbs5i76CvurUc,1031
54
55
  fusion_bench/method/ensemble.py,sha256=Bjzqxt-tUp5cawT1jIhqKswN5QH3bkYbmuI4LS4uTG0,3619
55
56
  fusion_bench/method/model_recombination.py,sha256=b2ku5wCrWd1QSZscIra4KlhLDxt04JjU30ItMNvpZ6g,5268
@@ -80,10 +81,11 @@ fusion_bench/method/bitdelta/bitdelta_utils/diff.py,sha256=o3ib5sgGDYLgnL8YTfX0Y
80
81
  fusion_bench/method/classification/__init__.py,sha256=byVJ574JQ_DUvsDv8S6ZM6BKAv4ZZ964Ej4btm0aC7k,867
81
82
  fusion_bench/method/classification/clip_finetune.py,sha256=5q5Sr3eVVh8DfYdeSoGjwaKDksC8F2dY2r8Dl-wRaDg,15844
82
83
  fusion_bench/method/classification/continual_clip_finetune.py,sha256=OLhZKS-6aCnafevZkZYcNMKTWDDj3DATB27eZl_i8EY,11530
83
- fusion_bench/method/classification/image_classification_finetune.py,sha256=JGD8zpt_f4HojZ7Y9b7mFI-x9os1J0440tgorQMMZGY,15282
84
+ fusion_bench/method/classification/image_classification_finetune.py,sha256=TJLe3aLFp5Mk7pywXdzFcvx9l2hjHSNIDvz6y3N4mcc,15309
84
85
  fusion_bench/method/concrete_subspace/__init__.py,sha256=jJoFcjnQe-jvccsm9DuCXna378m9XBT9vV1fEZbdfR0,464
85
86
  fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py,sha256=UkLOkaa_Dzlb4Q5ES69Y9GV1bodTnD7DzZFreykt65s,24706
86
87
  fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py,sha256=Nx-3AiAeIt5zmcC21Ta2_-4cAQg9hOWvThurXNZzA-w,10580
88
+ fusion_bench/method/concrete_subspace/clip_concrete_tsvm.py,sha256=SlRNC8PglJk9N8RWn5Lz_PKSxleWVW2HTSBD9iZoNOU,10666
87
89
  fusion_bench/method/concrete_subspace/clip_post_defense.py,sha256=h-c0ioxDopg7pUoRjxx3epqQxVKZAZWz8s7yHjM88mg,32355
88
90
  fusion_bench/method/concrete_subspace/clip_safe_concrete_adamerging.py,sha256=eEKKUBgHufYTBaWWxkIKDF0lkuLI2bBgNHVr1JqT41c,35694
89
91
  fusion_bench/method/dare/__init__.py,sha256=63Xwkawyl_Ooy4xFxoDlP6wf-rgEWNqPuWTT9-6Ku5o,156
@@ -231,10 +233,10 @@ fusion_bench/method/tall_mask/utils.py,sha256=Wlp8WcPwR_lCaBIZ9rgG6ewLfSzz3G7kPk
231
233
  fusion_bench/method/task_arithmetic/__init__.py,sha256=pSx_NV5Ra_6UXpyYWCi6ANQoAnEtymZt_X1dDN9wT4Y,96
232
234
  fusion_bench/method/task_arithmetic/task_arithmetic.py,sha256=yGMWk2--VlXTcQjDjnPdiug1q_rpjzu5SFvgCYDfTQ0,6479
233
235
  fusion_bench/method/task_singular_vector/TSVC.py,sha256=yn4SrZNvtA6PoGYJmbmtNeDyDbGnRCgfZ7ZCg914AZU,410
234
- fusion_bench/method/task_singular_vector/TSVM.py,sha256=Sdgoi8xT0Hl19pmGdIuUS3D1DsVqSVD-Hipp-Sj_HoA,13652
236
+ fusion_bench/method/task_singular_vector/TSVM.py,sha256=1im81JpyIQjwSojtK_aWv9InmmS-tyH2p3VLG0gqwYA,13706
235
237
  fusion_bench/method/task_singular_vector/__init__.py,sha256=WMucyl9pu_Ev2kcdrfT4moqMMbzD7hHQVFME5Su5jMA,298
236
238
  fusion_bench/method/task_singular_vector/utils/TSVC_utils.py,sha256=FytKbal48EW6iGIA-2zV7QSVbYTVflXr4Mr56q0W75k,2286
237
- fusion_bench/method/task_singular_vector/utils/TSVM_utils.py,sha256=WGM8wCICdGsNVpceHamQytZi-q4wzrCmGGQCYOm67mI,29146
239
+ fusion_bench/method/task_singular_vector/utils/TSVM_utils.py,sha256=zwpQjrzjpbOCNc6ZR6XARY3_vUkxlppCriLPFOqucgQ,29129
238
240
  fusion_bench/method/task_singular_vector/utils/__init__.py,sha256=Mep62TnXJscBEFZ6QDsI28cWmfygt8EPwjQdfUJzEZQ,315
239
241
  fusion_bench/method/task_singular_vector/utils/task_singular_interference.py,sha256=tXsFwx8eomzu00nSp95CjjWZX82zq32ff2Q6VM_29CM,1348
240
242
  fusion_bench/method/ties_merging/__init__.py,sha256=9u9teBbdILbupr9jbwk-qCXSzssCssC5FUV2BfpyZM4,67
@@ -257,6 +259,10 @@ fusion_bench/method/wudi/wudi.py,sha256=HL3Y0MPjozp7NML_UNjIWWPbQDQxYH_WG_Buyrip
257
259
  fusion_bench/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
260
  fusion_bench/metrics/continual_learning/__init__.py,sha256=f-mkv4SpXTq5kiQVHbe2g0IPf4yLFgu1Dw7g2DOK6T4,57
259
261
  fusion_bench/metrics/continual_learning/backward_transfer.py,sha256=LCMWFFmBgWv7UIAJqiTaSvVvanx4qjnXIGuCMYvzmtc,559
262
+ fusion_bench/metrics/model_kinship/__init__.py,sha256=-XWD0NR6Xz-p4oE8AKGoWrq-s1ayqWse7qLgNRENsaU,137
263
+ fusion_bench/metrics/model_kinship/calculate.py,sha256=FoyBQuz3-q2NRfUW9w0dq9Tm51WG83iF_L_nHMOSI20,2447
264
+ fusion_bench/metrics/model_kinship/calculate_split.py,sha256=_aTw7nfAZeEhiyqWlUkzwafQXLI3iDQMHdFy6ZMb88w,5797
265
+ fusion_bench/metrics/model_kinship/utility.py,sha256=9iF9bWsJOFhhLqPMDyHyg-PAmat_zYUbud-umTfgBLs,5903
260
266
  fusion_bench/metrics/nyuv2/__init__.py,sha256=Ed1FQTJAxguJoorZLHIO-cSIgKYHHfqdf17J3o9_feI,1390
261
267
  fusion_bench/metrics/nyuv2/depth.py,sha256=xmUokztxyPrl90qtcoQaanti6DbFaIVqglAo3PDnEso,2851
262
268
  fusion_bench/metrics/nyuv2/loss.py,sha256=YKZSqycNyPWJV29Qa12--Wh87zZvtJcuUxUuiPbccpM,2529
@@ -271,8 +277,8 @@ fusion_bench/mixins/__init__.py,sha256=2_mAT0VHiUYGyWJyiDSxcFmI4Qt64Y2qlNu1Z11fg
271
277
  fusion_bench/mixins/clip_classification.py,sha256=Ifc3R_RO1yb-nbT_lipfNudQS3iiB3G_trNMS1dEfRU,11329
272
278
  fusion_bench/mixins/fabric_training.py,sha256=ZmycEhCaNCgVi5oM9m0q6msxgk3quowmFvDAcvskFrg,13017
273
279
  fusion_bench/mixins/hydra_config.py,sha256=rfT-XPUKV_U3nvuTVsKLmSmEiieoSIsbhxE5_-E0er0,5508
274
- fusion_bench/mixins/lightning_fabric.py,sha256=Ezg4WRhfXBQYM5ndErWWX1vvKLmYBfpDf0wyQIB0nCY,9237
275
- fusion_bench/mixins/openclip_classification.py,sha256=O45HzgLXNvlQr5RVpfIGsYdIQ0tY5g_68KB0MTqsZWU,290
280
+ fusion_bench/mixins/lightning_fabric.py,sha256=epK8lFJpHHNWUVP8TMDITa0cq7cXdMHnpPIRiK3NEPc,9049
281
+ fusion_bench/mixins/openclip_classification.py,sha256=FGj5btxZD-qA1wOsRl9kSftylcOXz2bFj26vrcVw_HQ,6196
276
282
  fusion_bench/mixins/pyinstrument.py,sha256=I8CLVRUK6G_U8S5x-netmtAcy6m9uLB0UGB1AokbheU,5108
277
283
  fusion_bench/mixins/rich_live.py,sha256=bzUu4F90bq9x8DCY8rZmLz7sfmZiFH0GPIoY1O2ysHg,2970
278
284
  fusion_bench/mixins/serialization.py,sha256=z73Mmq952TIdPwwZ8cRdl3n0_uc9lqylFI9fxKesREs,13260
@@ -281,7 +287,7 @@ fusion_bench/mixins/optim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
281
287
  fusion_bench/mixins/optim/adamw_with_warmup.py,sha256=qTnRl8GVVIfaplOFBHnJFuZUbxPZRWRGHGNzm_EDhDE,1421
282
288
  fusion_bench/modelpool/PeftModelForSeq2SeqLM.py,sha256=rxPKTTWno3KAcTTEfydPpXx1b0EJa8PLbqrberweFF8,2108
283
289
  fusion_bench/modelpool/__init__.py,sha256=qDlBPrWFW-Z-LByzmfqP1ozYhWx2lYAEjhqjKF4EAbY,2307
284
- fusion_bench/modelpool/base_pool.py,sha256=WzAJf1Quj7DAPVycBnwE-LQ9ddv1rZ8qPid7R71QZdA,15501
290
+ fusion_bench/modelpool/base_pool.py,sha256=PCP4ORj9ZbIuF1DpMMXhe2sMye527bcG3L8rVyXARrM,15541
285
291
  fusion_bench/modelpool/convnext_for_image_classification.py,sha256=m9MxFgfzNjGnHOU6gufaTPgkk67lifNNwW03nHUxXKo,7377
286
292
  fusion_bench/modelpool/dinov2_for_image_classification.py,sha256=Wd60J5Ji4KwXUYTPcYYXuYWrcpDlh7pjGZ-zjjRqYio,7496
287
293
  fusion_bench/modelpool/huggingface_automodel.py,sha256=OJ6EyYyjNv1_Bhjn-zli-e__BJ0xVa4Fx9lhXVb-DJo,552
@@ -294,7 +300,7 @@ fusion_bench/modelpool/causal_lm/causal_lm.py,sha256=FbatPI6aAJbaT5qa4Get2I0i8fx
294
300
  fusion_bench/modelpool/clip_vision/__init__.py,sha256=3b9gN2bWUsoA1EmpitnIMnIlX7nklxbkn4WJ0QJtS2c,43
295
301
  fusion_bench/modelpool/clip_vision/modelpool.py,sha256=ENQfAAwQ3NFEyDv0C313HA0h5yF6QyvT0_IOe9cDQ40,9250
296
302
  fusion_bench/modelpool/openclip_vision/__init__.py,sha256=QDmAitKqUwRygN9QncdS_kGWZdfTKL4uUifC8xh9c10,47
297
- fusion_bench/modelpool/openclip_vision/modelpool.py,sha256=2MieB4PMvg85DaiYu49m3BzuBjib1xozJHTpYyHhRTs,11102
303
+ fusion_bench/modelpool/openclip_vision/modelpool.py,sha256=-RXn3iKr-w13-rOITWR7_01t7-d1F2JTrlcLJh12XxI,11652
298
304
  fusion_bench/modelpool/seq2seq_lm/__init__.py,sha256=FnfSMHcwNHDQEMdB2HdK4WphQ6MufsRLUkczuALjM4Q,57
299
305
  fusion_bench/modelpool/seq2seq_lm/modelpool.py,sha256=yfa_B5TUIkuC1fTn4xD3HHnFPd6AYE-HWpfB8ZrShB8,8819
300
306
  fusion_bench/modelpool/seq_classification_lm/__init__.py,sha256=_VB9nlR_gm6IEXNMsNR3VnzFiCpxNGuAGF39rZ9DpBA,129
@@ -330,7 +336,7 @@ fusion_bench/models/llama/model_utils/misc.py,sha256=3SJ7wk71zLMVF-AJEvQ_KCfFaMg
330
336
  fusion_bench/models/llama/model_utils/mod.py,sha256=xzNOgTRfOK9q8kml4Q2nmSOl23f33dE1tPi5zxgpWK0,1498
331
337
  fusion_bench/models/llama/model_utils/visual.py,sha256=wpqWqEASyA7WhJLCfC26h0Cdn5CXnwC1qPJUlSXggo4,8310
332
338
  fusion_bench/models/masks/__init__.py,sha256=vXG6jrBkDbPsnrX6nMEYAW1rQuGEWDgdjID7cKzXvrs,69
333
- fusion_bench/models/masks/mask_model.py,sha256=YXNZ_CGp6VPshZH__Znh6Z07BqOK53G-Ltc1LVy1E3I,5502
339
+ fusion_bench/models/masks/mask_model.py,sha256=NDVhtuvZ10NUfTLEI_ONTKiceuSF-W7T9SEeUnyZFYQ,5680
334
340
  fusion_bench/models/model_card_templates/default.md,sha256=OoU83l1hip1gKsoA08hoKx-nCrOYbKaVTVCjK0pt9WY,1028
335
341
  fusion_bench/models/modeling_deepseek_v2/__init__.py,sha256=trXrhtKb_gIxXVo7wSZ-il5sLJtDTiNZezRrEt3M8zM,505
336
342
  fusion_bench/models/modeling_deepseek_v2/configuration_deepseek.py,sha256=TblFOCfNwaXUnXnD-sxFhSn5Df-_yy2LMcrth-sBPFI,10301
@@ -364,8 +370,8 @@ fusion_bench/models/nyuv2/lightning_module.py,sha256=SLtC0yL6455uKeb-o07MR6v-xE4
364
370
  fusion_bench/models/nyuv2/resnet.py,sha256=PcCfBhEsxm7W8cu3epBbIbCYFARPrPTamIa3TtUAVa0,14305
365
371
  fusion_bench/models/nyuv2/resnet_dilated.py,sha256=4EXB6vrBJS307YP6k-TRY1dFJ50LURcTuzqN4tZzYRk,3125
366
372
  fusion_bench/models/open_clip/__init__.py,sha256=zT2sGAT98Py5vXMckZF4aD8MYEICEWa2p7nRg4IrS0w,192
367
- fusion_bench/models/open_clip/modeling.py,sha256=34wKcbxe5xb6fzAVdIz0QcsSXs-8FQFUyqRNlIJso78,5556
368
- fusion_bench/models/open_clip/utils.py,sha256=YM_vGQSxIDoB2euHG54hhRGIcINJfR0NxNT5U42KRCw,10394
373
+ fusion_bench/models/open_clip/modeling.py,sha256=Z9H1r-faxqp60eQ1vAW3Vuc4SgAkA0pCQXAYNMLR2ow,8351
374
+ fusion_bench/models/open_clip/utils.py,sha256=omwypFHchva6aTZ4BmHXb4NTspZaWZEKac17utbXQCo,10788
369
375
  fusion_bench/models/open_clip/variables_and_paths.py,sha256=_OBcKvZwSGvYSmgKtXOuekEJI-btW94Ia-BQ9n4isfY,1231
370
376
  fusion_bench/models/smile_moe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
371
377
  fusion_bench/models/smile_moe/linear_from_hf_config.py,sha256=4vzYYjDHGOf1IO7gO0dzQC1xqcwEij9M7d4tVZm-7dY,11919
@@ -376,9 +382,9 @@ fusion_bench/models/surgery/__init__.py,sha256=tcUSi2m9GzGWfvRDQScIbdEbFBS_35gm9
376
382
  fusion_bench/models/surgery/surgerymodelwrapper.py,sha256=F8jX88K5zVWC6HsfN-nGNkEiPwNrN11ydyQQ1EZHehM,5133
377
383
  fusion_bench/models/wrappers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
384
  fusion_bench/models/wrappers/ensemble.py,sha256=T-DAKrAm-ciZwV6Hbt8uASbjtoQpHTlvVyan3rhk_8k,11632
379
- fusion_bench/models/wrappers/layer_wise_fusion.py,sha256=A7LjG0inL5oeEVOkJwEUDM15v4dpQnsCq2y9zA78R3k,11198
385
+ fusion_bench/models/wrappers/layer_wise_fusion.py,sha256=T1sbujx_84Pj5yHFy5QqfipT6v3p96gUmnMgyy4lG0c,12560
380
386
  fusion_bench/models/wrappers/layer_wise_fusion_doge_ta.py,sha256=q5Hc4BtLpAawMbxsWJRL-8OR-x7994Jhr9IyN7vKZ9o,16930
381
- fusion_bench/models/wrappers/task_wise_fusion.py,sha256=ROLANdDq0bZ3sIROqIv3udPN8lzDdEwxD0Jonx-5ycw,17465
387
+ fusion_bench/models/wrappers/task_wise_fusion.py,sha256=iCrevrkG4uTr3U8_hgT_xEY4epnEK0EJO8yg-uEMIUI,17836
382
388
  fusion_bench/optim/__init__.py,sha256=JS7J2VjrM2LdkiFCxuQnIuFwBsWiPyFb7QuEU6V2bPY,845
383
389
  fusion_bench/optim/exception.py,sha256=fMgo1heiqfGhuI5RIbf30BwWSShn5RQiyeb30QtfTI0,1607
384
390
  fusion_bench/optim/mezo.py,sha256=Vm4vMGh10Fhe28_9L1MK8r_U7DrurA8Liprh2_gn4_U,3646
@@ -392,10 +398,10 @@ fusion_bench/programs/base_program.py,sha256=Bl_bv8SawEUc-GBTtZFMoii0y-r-0hOXBAJ
392
398
  fusion_bench/programs/fabric_fusion_program.py,sha256=wIHNpLUw6uAXpAasJRAMWut55hF_EGFShxn70zRRvfk,12449
393
399
  fusion_bench/programs/fusion_program.py,sha256=qLyA3FHJUMM1L3mlYn4jlnZzv9OKguWM5aGGIoLts2I,11309
394
400
  fusion_bench/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
395
- fusion_bench/scripts/cli.py,sha256=kEWLEkZEBqUr1_-XTePzNC5NM8lwWvgUBf0Lcuk_FI8,2739
396
- fusion_bench/scripts/imgui.py,sha256=r9Glbfbwu3JCsX9TKQFwcHarvwA_G7ff0jWBUPW1S1U,7613
401
+ fusion_bench/scripts/cli.py,sha256=yAac2JhklwYicMV4FpOj_wvymEOCdC47hBND_GK4NE8,3114
402
+ fusion_bench/scripts/imgui.py,sha256=P8YGem3XnyN0J4esuXTnBhB7Qp7uY6GGdJWhre29Xgo,7611
397
403
  fusion_bench/scripts/nyuv2_mtl_train.py,sha256=W1C45R9NdF4O-UjCx1bUxRTdFE0-FlRpwJHZ5gY18rI,3602
398
- fusion_bench/scripts/webui.py,sha256=ROvZUIj-hR4JLgCiWEKGc25LMtAjaMAZLJ5ckDYt-w4,21513
404
+ fusion_bench/scripts/webui.py,sha256=xMZXbHGKPI3ns3p1BIomVR31QyNoAb-5sdrvjlgTeq8,21511
399
405
  fusion_bench/scripts/clip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
400
406
  fusion_bench/scripts/clip/convert_checkpoint.py,sha256=zncgRAhInFpJDSHIm3GO4F6BzgsdAQVj3LLmV7g-JiQ,1221
401
407
  fusion_bench/taskpool/__init__.py,sha256=n5jUUMI1TDK0g72PpFLlajqZ6FwEKjyfQLY4hnYlQ4I,1479
@@ -454,27 +460,27 @@ fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py,sha256=-B1wqVGp3wZ
454
460
  fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py,sha256=sVihXHbqwi8IlDpiIxzvmDv-Ob7WKvi23GIRYbBUKOc,1833
455
461
  fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py,sha256=GhRmGmcJGF4oVgZQarsBtx8GNKrNEZUkrillNz3iBuY,13183
456
462
  fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py,sha256=mKMTXIr5o-BqS_Hvv1bbMvvjQLLeKNVw7BKS9qgQ8Dw,1890
457
- fusion_bench/utils/__init__.py,sha256=EvrvupFGAzxll_jO0HYk1-I6jCHqDrIwZ5vswlR-9Pw,5149
463
+ fusion_bench/utils/__init__.py,sha256=BT-IaPT5aTjrKJhZbw4Z00hdNcpp4FORzZI8YOD8eT8,5223
458
464
  fusion_bench/utils/cache_utils.py,sha256=-bTZijQgl4BuAx0VSJFD-bSDOXuq3o0NkrOaiLiyofU,4795
459
465
  fusion_bench/utils/data.py,sha256=QAXpsvzHOgfAf6G_Pe2a5HOKUAP8Mxz77avujQI9Fd8,10027
460
- fusion_bench/utils/devices.py,sha256=6AkGcs3flt0FSo9yfEREuehoTrgcc65gkwpTWQy8XsI,9546
466
+ fusion_bench/utils/devices.py,sha256=IyUBaWbnZGDsAxI97LEioUj-JIjYTzxQo_EhyKY3RZM,9566
461
467
  fusion_bench/utils/dict.py,sha256=ZCK0CRRT_B1Z18WY_GOYcmth7k5x9Jn1k7XhAVWRu98,1379
462
468
  fusion_bench/utils/dtype.py,sha256=z6UlPGF9dzG4Ik8rXGf59PJk_RKzG6Trp8O6wcBS9PU,4360
463
469
  fusion_bench/utils/expr.py,sha256=zwHNrtIbOMnIChU-0ZI5qLbDva8zvHbizL-4F2TwM14,2386
464
470
  fusion_bench/utils/fabric.py,sha256=qKcJ6Xj-6rEGy35dsUPHzxZT6az9RkSNcyBQl1uOv0M,6050
465
471
  fusion_bench/utils/functools.py,sha256=7_tYJ2WD88_2DDuOOj5aZz3cYuslYH5tsVyIgCeLtmk,1318
466
- fusion_bench/utils/hydra_utils.py,sha256=TklUDKDEZlg4keI-TEZiqh4gFjr9-61Rt1RMlqkoSGk,1174
467
- fusion_bench/utils/instantiate_utils.py,sha256=OXkfhq_o3Sgy5n3Psf-HI-dIfbK9oD2GBdfcx3gT63Q,17526
472
+ fusion_bench/utils/hydra_utils.py,sha256=-7wMwOZOLIoKp_aXu64UU5x6c-mTRO55uQzox2XZkDg,3455
473
+ fusion_bench/utils/instantiate_utils.py,sha256=UNfx188feTDrMSgp-ocLHetj6uD6axZcC46dRfBMtko,17884
468
474
  fusion_bench/utils/json.py,sha256=XZvEqBGpq-e0MaKkkX-1_PD8xMf6IDLAn4BrAF7IeiU,4552
469
475
  fusion_bench/utils/lazy_imports.py,sha256=s-1ABhPyyHs7gW4aodCzu3NySzILzTL7kVNZ0DZRXJA,6156
470
476
  fusion_bench/utils/lazy_state_dict.py,sha256=mJaiAtKB1vlNUAoQILnnCmU80FGJ8MSwmdPpmdhOyDE,22206
471
- fusion_bench/utils/misc.py,sha256=_7BaS9dNKyySGU0qmTmE0Tk8WK82TEm7IBJxVRkuEAw,5315
477
+ fusion_bench/utils/misc.py,sha256=xntIUj4cwgx10y7Z1YqXT0zU4nDHfnKRK_M9biWgLH4,5780
472
478
  fusion_bench/utils/modelscope.py,sha256=P8fV6Eff8oP0LVGIFGbLvuk8MBteysN438djZ6ZEfE4,10699
473
479
  fusion_bench/utils/packages.py,sha256=m2E0ryIMI0NwWR9vUHkK9FtZEwA1G-A4dYOf87olli4,2217
474
- fusion_bench/utils/parameters.py,sha256=ufEDOYJwcQQxLfveK8hBAGwpu5J3LA_cTWiDgZ2zkJ0,11788
480
+ fusion_bench/utils/parameters.py,sha256=Up0DcFAomPery9kG5QI9v8BGcTWATacLp8jE_P4Mp28,12966
475
481
  fusion_bench/utils/path.py,sha256=piznok_znXkTY71VBwJrxBlXureYOdQnMfvqaZ26qvc,2643
476
482
  fusion_bench/utils/pylogger.py,sha256=1Uy_LkHkbrYdt1g5Ge_eAh2YoCJwn3U3Ndouz9sVA6g,3419
477
- fusion_bench/utils/rich_utils.py,sha256=3Z0di-1IOs3QoovF2frNA28ITVKWBLdm84zbXdTrM28,5924
483
+ fusion_bench/utils/rich_utils.py,sha256=y3Kj6CxmGAtDlI0M9fVTMJgXjas2IKP725Ivn81ZV-A,10698
478
484
  fusion_bench/utils/set.py,sha256=_43ZvGKJ_BK9sUslsSNhi7xEfuAQuyj3vViImnGpnCY,134
479
485
  fusion_bench/utils/state_dict_arithmetic.py,sha256=bXO3zewO3KDzRmTaznlsnURIoSlcW5V5IhuXGtI_nxk,41234
480
486
  fusion_bench/utils/tensorboard.py,sha256=9fkgNYR9LM38nPNkudcxL9TjLUseW-280M0k2nLff7o,1669
@@ -488,8 +494,8 @@ fusion_bench/utils/plot/token_notebook.py,sha256=bsntXf46Zz_RavTxNiB9c3-KvHw7LFw
488
494
  fusion_bench/utils/strenum/__init__.py,sha256=id9ORi1uXrDxhbmVxitJ1KDwLS4H3AAwFpaK5h1cQzw,8531
489
495
  fusion_bench/utils/strenum/_name_mangler.py,sha256=o11M5-bURW2RBvRTYXFQIPNeqLzburdoWLIqk8X3ydw,3397
490
496
  fusion_bench/utils/strenum/_version.py,sha256=6JQRo9LcvODbCOeVFYQb9HNJ_J9XiG_Zbn8ws2A3BV8,18466
491
- fusion_bench-0.2.29.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
492
- fusion_bench_config/README.md,sha256=Lc8YSBJ5oxf9KV5kKDivJ9LRyGuraGQPmBbgbdVA-j4,703
497
+ fusion_bench-0.2.31.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
498
+ fusion_bench_config/README.md,sha256=oHbaJW_stRvcWHqj-h6t2de20rZwjYxTE1u6AY5Vwj8,1101
493
499
  fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=pZ5dFgg5n1W9cKdNyGNa7b4yPd4aQSu2iR2-yw9hhbY,442
494
500
  fusion_bench_config/fabric_model_fusion.yaml,sha256=kSQbhBsKypVFA3rmkdhY9BITnZWDXJof-I35t473_U0,2646
495
501
  fusion_bench_config/llama_full_finetune.yaml,sha256=2xBhxEJxLZNDYc_9X8TtpXMRu85ksJxjkfqsz_xn5Yo,195
@@ -592,7 +598,7 @@ fusion_bench_config/dataset/text_generation/test/gsm8k_question_label.yaml,sha25
592
598
  fusion_bench_config/dataset/text_generation/train/CodeAlpaca-20k.yaml,sha256=4lb37lxTUStAR8eXhNxp3RONwSOYJI0bKY-hViZnjtE,94
593
599
  fusion_bench_config/dataset/text_generation/train/gsm8k.yaml,sha256=gP-xAZQxHHqTEf_Dgbi4F_SQDgGZFeddwMFsvcE1WW0,90
594
600
  fusion_bench_config/dataset/text_generation/train/gsm8k_question_label.yaml,sha256=6BhKgApz8LhdDyATqCsaonBo0Q99o1uM22F0yj_pJi4,178
595
- fusion_bench_config/fabric/auto.yaml,sha256=PoYC5vtDogZ3Ce9H8fv2nlLTTT-q6hMPW-7CwSQ-g08,652
601
+ fusion_bench_config/fabric/auto.yaml,sha256=jlAgdPmyRGWl37FJjBYSchN3kwtfjwfUrvNtEELggzI,668
596
602
  fusion_bench_config/fabric/llama_ddp.yaml,sha256=bOOuK5BPKmScE6yh5xY59qlawlMk2sRzsipW7GDQJWs,705
597
603
  fusion_bench_config/fabric/llama_fsdp.yaml,sha256=pTvz0k79dSOVAAlvU0T1kNd8TNCwz2FGjDOujBtQ_Ks,574
598
604
  fusion_bench_config/fabric/llama_peft_fsdp.yaml,sha256=AosSmY4624iahKbTWY681BsZTC1ul78x9aHZ9zHS81s,579
@@ -604,7 +610,7 @@ fusion_bench_config/fabric/loggers/wandb_logger.yaml,sha256=awIrv7gJRZrbar_tbKpd
604
610
  fusion_bench_config/fabric/strategy/deepspeed.yaml,sha256=zcSUeHVaATy92oTTRx3_hWQkCB3BPR7YOIt_U1gimCU,343
605
611
  fusion_bench_config/fabric/strategy/llama_fsdp.yaml,sha256=WBx05GFUCuEtF-H7LhlTq95VZeaIg36hqntw478qJng,307
606
612
  fusion_bench_config/fabric/strategy/llama_peft_fsdp.yaml,sha256=4NTFnpZTEByH4Z6f-nwDtS4GUFtcluja27hXKWNRUiE,347
607
- fusion_bench_config/hydra/default.yaml,sha256=Fpi3pV1hqPoPk5QdBncse6NlNOAl2YHzD44LvRNbzq4,256
613
+ fusion_bench_config/hydra/default.yaml,sha256=bmDolgyshoLe9zJLQ6SBn2Hif8WNWX15Skc_ND7m2fU,511
608
614
  fusion_bench_config/hydra/help/fusion_bench_help.yaml,sha256=v8s891Cr5wyxBXGDn_VBBwwRmb0JXOL874Sl-zNoCWA,1880
609
615
  fusion_bench_config/hydra/job_logging/rich_logging.yaml,sha256=_dYGeFTCqaPrRowLXBNMXwzYhw8ns1TkQFfALwK1aCw,441
610
616
  fusion_bench_config/method/depth_upscaling.yaml,sha256=86YqczaMzZftymLy_k2cb-GMy4C42yTxxP4c4htZTBs,1230
@@ -631,6 +637,7 @@ fusion_bench_config/method/classification/image_classification_finetune_test.yam
631
637
  fusion_bench_config/method/concrete_subspace/clip_concrete_layer_wise_adamerging.yaml,sha256=r0zR1WenY1fYba6mEBAoHJZKcx1x7L2cQmEA_54NTYM,739
632
638
  fusion_bench_config/method/concrete_subspace/clip_concrete_task_arithmetic.yaml,sha256=eNoqcY1iMbs0Y5kKi_ya3rmQQMHqU7ht3EU7G_xmwN0,746
633
639
  fusion_bench_config/method/concrete_subspace/clip_concrete_task_wise_adamerging.yaml,sha256=P3mwQQewFFiqZNYJp8c02Sf8zBuStKInr_Yn74OCOxI,738
640
+ fusion_bench_config/method/concrete_subspace/clip_concrete_tsvm.yaml,sha256=rRA-TIG1SCl2cSA27ZHWVujhvfpJjzsJ6SZausb9O9g,1129
634
641
  fusion_bench_config/method/concrete_subspace/clip_post_defense_AWM.yaml,sha256=pHkZoUKesiGifxaY5BAltCnjceDVQcxyW-LRDGgzang,837
635
642
  fusion_bench_config/method/concrete_subspace/clip_post_defense_SAU.yaml,sha256=grOw6PdcEHh0iYUEDEBFKk53jsToksHx4L7Dv003wHE,879
636
643
  fusion_bench_config/method/concrete_subspace/clip_safe_concrete_layer_wise_adamerging.yaml,sha256=lkCtwN_Xo1WcoGC0mkrfiJ2WwmqeNsKO_cCEUnRA1pk,913
@@ -1015,8 +1022,8 @@ fusion_bench_config/taskpool/LMEvalHarnessTaskPool/lm_eval.yaml,sha256=3q-KMuFaM
1015
1022
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-16_TA8.yaml,sha256=GjpiiRownrBCpl-TNwWRW2PYePbF-Cl99jlLNPrK5T4,1017
1016
1023
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-32_TA8.yaml,sha256=WwiYMQKehtJixDPnu5o3vcWe4yJksXTWRqOzm3uVWXQ,1017
1017
1024
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-L-14_TA8.yaml,sha256=xGRt0J9joXTzWUew6DvoYprAWlPXhaVFw5AX4im5VQw,1017
1018
- fusion_bench-0.2.29.dist-info/METADATA,sha256=RivzHbrFvjc6WrrpTlsPwyCpUz8vw8Kc7GfxIwtIKxk,26292
1019
- fusion_bench-0.2.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1020
- fusion_bench-0.2.29.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
1021
- fusion_bench-0.2.29.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
1022
- fusion_bench-0.2.29.dist-info/RECORD,,
1025
+ fusion_bench-0.2.31.dist-info/METADATA,sha256=q9jcr_GBD0XIZf6aFJOUwqDAUuqN2MUNTf51Jb_WIjg,26298
1026
+ fusion_bench-0.2.31.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1027
+ fusion_bench-0.2.31.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
1028
+ fusion_bench-0.2.31.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
1029
+ fusion_bench-0.2.31.dist-info/RECORD,,
@@ -3,6 +3,15 @@
3
3
  This directory contains configuration files for FusionBench.
4
4
  These configurations are essential for setting up and managing various algorithms and their hyperparameters.
5
5
 
6
+ ## Built on Hydra
7
+
8
+ FusionBench's configuration system is built on [Hydra](https://hydra.cc/), a powerful framework for configuring complex applications. If you're new to Hydra, we recommend starting with the [Hydra documentation](https://hydra.cc/docs/intro/) to understand concepts like:
9
+
10
+ - Configuration composition and defaults
11
+ - Override syntax
12
+ - Configuration groups
13
+ - Variable interpolation
14
+
6
15
  ## Configuration Structure
7
16
 
8
17
  FusionBench employs a modular configuration system, which is divided into three primary groups:
@@ -13,3 +13,4 @@ strategy: auto
13
13
  # ``"cpu"``, ``"cuda"``, ``"mps"``, ``"gpu"``, ``"tpu"``, ``"auto"``.
14
14
  # for example: fabric.accelerator=cpu
15
15
  accelerator: auto
16
+ precision: null
@@ -4,7 +4,9 @@ defaults:
4
4
  run:
5
5
  dir: ${path.log_dir}
6
6
  sweep:
7
- dir: ${path.log_dir}
7
+ # the directory where all multirun outputs are stored
8
+ # can not refer to ${path.log_dir} because this is evaluated before constructing the separate run configs
9
+ dir: ${oc.env:FUSION_BENCH_PROJECT_ROOT,"."}/outputs/multirun/${hydra.job.config_name}/${now:%Y-%m-%d_%H-%M-%S}
8
10
  subdir: ${hydra.job.num}
9
11
  job:
10
12
  env_set:
@@ -0,0 +1,38 @@
1
+ _target_: fusion_bench.method.concrete_subspace.clip_concrete_tsvm.ConcreteTSVMForOpenCLIP
2
+ # === Concrete Subspace parameters ===
3
+ # batch size per gpu
4
+ # if you have multiple gpus, the total batch size will be `batch_size * num_gpus`
5
+ dataloader_kwargs:
6
+ batch_size: 16
7
+ num_workers: 8
8
+ optimizer:
9
+ _target_: torch.optim.AdamW
10
+ lr: 1e-3
11
+ weight_decay: 0.01
12
+ fused: null
13
+ lr_scheduler: null
14
+ merge_dtype: null
15
+ max_steps: 2000
16
+ save_interval: 500
17
+ initial_logits: 0
18
+ temperature: 0.5
19
+ # "discrete" or "continuous", this is the mask applied for evaluation, not during training
20
+ # the performance of final model are expected to be similar
21
+ eval_mask_type: continuous
22
+ mask_checkpoint: null
23
+ # if `clamp_weights` is true, the weights will be clamped to [0, 1]
24
+ clamp_weights: false
25
+ # arguments of `functional_call`
26
+ tie_weights: true
27
+ strict: false
28
+ # directory to cache zero-shot classification heads
29
+ cache_dir: outputs
30
+ skip_training: false
31
+ # === TSVM parameters ===
32
+ exclude_keys: null
33
+ # alpha (also known as scaling factor) is a float or a list of floats
34
+ # example:
35
+ # alpha: 1
36
+ # alpha: [1, 0.5, 0.25]
37
+ alpha: 1
38
+ return_single_task_models: false