fusion-bench 0.2.28__py3-none-any.whl → 0.2.30__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 (50) hide show
  1. fusion_bench/constants/__init__.py +5 -1
  2. fusion_bench/constants/runtime.py +111 -7
  3. fusion_bench/dataset/gsm8k.py +6 -2
  4. fusion_bench/dataset/image_corruption/make_corruption.py +168 -0
  5. fusion_bench/method/__init__.py +10 -2
  6. fusion_bench/method/base_algorithm.py +29 -19
  7. fusion_bench/method/classification/image_classification_finetune.py +1 -2
  8. fusion_bench/method/gossip/clip_task_wise_gossip.py +1 -29
  9. fusion_bench/metrics/model_kinship/__init__.py +2 -0
  10. fusion_bench/metrics/model_kinship/calculate.py +77 -0
  11. fusion_bench/metrics/model_kinship/calculate_split.py +171 -0
  12. fusion_bench/metrics/model_kinship/utility.py +184 -0
  13. fusion_bench/metrics/nyuv2/__init__.py +31 -0
  14. fusion_bench/metrics/nyuv2/depth.py +30 -0
  15. fusion_bench/metrics/nyuv2/loss.py +40 -0
  16. fusion_bench/metrics/nyuv2/noise.py +24 -0
  17. fusion_bench/metrics/nyuv2/normal.py +34 -1
  18. fusion_bench/metrics/nyuv2/segmentation.py +35 -1
  19. fusion_bench/mixins/clip_classification.py +30 -2
  20. fusion_bench/mixins/lightning_fabric.py +46 -5
  21. fusion_bench/mixins/rich_live.py +76 -0
  22. fusion_bench/modelpool/base_pool.py +86 -5
  23. fusion_bench/models/masks/mask_model.py +8 -2
  24. fusion_bench/models/open_clip/modeling.py +7 -0
  25. fusion_bench/models/wrappers/layer_wise_fusion.py +41 -3
  26. fusion_bench/models/wrappers/task_wise_fusion.py +14 -3
  27. fusion_bench/scripts/cli.py +14 -0
  28. fusion_bench/scripts/webui.py +250 -17
  29. fusion_bench/utils/__init__.py +14 -0
  30. fusion_bench/utils/data.py +100 -9
  31. fusion_bench/utils/devices.py +3 -1
  32. fusion_bench/utils/fabric.py +185 -4
  33. fusion_bench/utils/instantiate_utils.py +29 -18
  34. fusion_bench/utils/json.py +6 -0
  35. fusion_bench/utils/misc.py +16 -0
  36. fusion_bench/utils/rich_utils.py +123 -6
  37. fusion_bench/utils/validation.py +197 -0
  38. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/METADATA +72 -13
  39. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/RECORD +49 -45
  40. fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml +6 -19
  41. fusion_bench_config/llama_full_finetune.yaml +4 -16
  42. fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml +1 -1
  43. fusion_bench_config/nyuv2_config.yaml +4 -13
  44. fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-base-patch32_robustness_corrupted.yaml +1 -1
  45. fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml +1 -1
  46. fusion_bench/utils/auto.py +0 -31
  47. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/WHEEL +0 -0
  48. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/entry_points.txt +0 -0
  49. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/licenses/LICENSE +0 -0
  50. {fusion_bench-0.2.28.dist-info → fusion_bench-0.2.30.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,197 @@
1
+ """
2
+ Validation utilities for FusionBench.
3
+
4
+ This module provides robust input validation functions to ensure data integrity
5
+ and provide clear error messages throughout the FusionBench framework.
6
+ """
7
+
8
+ import logging
9
+ from pathlib import Path
10
+ from typing import Any, Optional, Union
11
+
12
+ __all__ = [
13
+ "ValidationError",
14
+ "validate_path_exists",
15
+ "validate_file_exists",
16
+ "validate_directory_exists",
17
+ "validate_model_name",
18
+ ]
19
+
20
+ log = logging.getLogger(__name__)
21
+
22
+
23
+ class ValidationError(ValueError):
24
+ """Custom exception for validation errors with detailed context."""
25
+
26
+ def __init__(self, message: str, field: Optional[str] = None, value: Any = None):
27
+ self.field = field
28
+ self.value = value
29
+ detailed_message = message
30
+ if field:
31
+ detailed_message = f"Validation error for '{field}': {message}"
32
+ if value is not None:
33
+ detailed_message += f" (got: {value!r})"
34
+ super().__init__(detailed_message)
35
+
36
+
37
+ def validate_path_exists(
38
+ path: Union[str, Path],
39
+ name: str = "path",
40
+ create_if_missing: bool = False,
41
+ must_be_file: bool = False,
42
+ must_be_dir: bool = False,
43
+ ) -> Path:
44
+ """
45
+ Validate that a path exists and optionally check its type.
46
+
47
+ Args:
48
+ path: Path to validate.
49
+ name: Name of the path for error messages.
50
+ create_if_missing: If True and path doesn't exist, create it as a directory.
51
+ must_be_file: If True, ensure path points to a file.
52
+ must_be_dir: If True, ensure path points to a directory.
53
+
54
+ Returns:
55
+ Path object of the validated path.
56
+
57
+ Raises:
58
+ ValidationError: If path validation fails.
59
+
60
+ Examples:
61
+ >>> validate_path_exists("./config", name="config_dir", must_be_dir=True)
62
+ PosixPath('config')
63
+ """
64
+ if path is None:
65
+ raise ValidationError(f"{name} cannot be None", field=name, value=path)
66
+
67
+ assert not (
68
+ create_if_missing and must_be_file
69
+ ), "create_if_missing and must_be_file cannot both be True. By definition, a created path is a directory."
70
+
71
+ path_obj = Path(path).expanduser().resolve()
72
+
73
+ if not path_obj.exists():
74
+ if create_if_missing:
75
+ log.info(f"Creating missing directory: {path_obj}")
76
+ path_obj.mkdir(parents=True, exist_ok=True)
77
+ else:
78
+ raise ValidationError(
79
+ f"{name} does not exist: {path_obj}", field=name, value=str(path)
80
+ )
81
+
82
+ if must_be_file and not path_obj.is_file():
83
+ raise ValidationError(
84
+ f"{name} must be a file, but got directory: {path_obj}",
85
+ field=name,
86
+ value=str(path),
87
+ )
88
+
89
+ if must_be_dir and not path_obj.is_dir():
90
+ raise ValidationError(
91
+ f"{name} must be a directory, but got file: {path_obj}",
92
+ field=name,
93
+ value=str(path),
94
+ )
95
+
96
+ return path_obj
97
+
98
+
99
+ def validate_file_exists(path: Union[str, Path], name: str = "file") -> Path:
100
+ """
101
+ Validate that a file exists.
102
+
103
+ Args:
104
+ path: File path to validate.
105
+ name: Name of the file for error messages.
106
+
107
+ Returns:
108
+ Path object of the validated file.
109
+
110
+ Raises:
111
+ ValidationError: If file doesn't exist or is not a file.
112
+ """
113
+ return validate_path_exists(path, name=name, must_be_file=True)
114
+
115
+
116
+ def validate_directory_exists(
117
+ path: Union[str, Path], name: str = "directory", create_if_missing: bool = False
118
+ ) -> Path:
119
+ """
120
+ Validate that a directory exists.
121
+
122
+ Args:
123
+ path: Directory path to validate.
124
+ name: Name of the directory for error messages.
125
+ create_if_missing: If True, create directory if it doesn't exist.
126
+
127
+ Returns:
128
+ Path object of the validated directory.
129
+
130
+ Raises:
131
+ ValidationError: If directory doesn't exist (and not creating) or is not a directory.
132
+ """
133
+ return validate_path_exists(
134
+ path, name=name, must_be_dir=True, create_if_missing=create_if_missing
135
+ )
136
+
137
+
138
+ def validate_model_name(
139
+ model_name: str, allow_special: bool = True, field: str = "model_name"
140
+ ) -> str:
141
+ """
142
+ Validate a model name string.
143
+
144
+ Args:
145
+ model_name: Model name to validate.
146
+ allow_special: If True, allow special names like "_pretrained_". If False,
147
+ names starting and ending with underscores will be rejected.
148
+ field: Field name for error messages.
149
+
150
+ Returns:
151
+ The validated model name.
152
+
153
+ Raises:
154
+ ValidationError: If model name is invalid.
155
+
156
+ Examples:
157
+ >>> validate_model_name("openai/clip-vit-base-patch32")
158
+ 'openai/clip-vit-base-patch32'
159
+ >>> validate_model_name("_pretrained_", allow_special=True)
160
+ '_pretrained_'
161
+ >>> validate_model_name("_pretrained_", allow_special=False)
162
+ Traceback (most recent call last):
163
+ ...
164
+ ValidationError: Validation error for 'model_name': Special model names (starting and ending with '_') are not allowed (got: '_pretrained_')
165
+ """
166
+ if not model_name or not isinstance(model_name, str):
167
+ raise ValidationError(
168
+ "Model name must be a non-empty string", field=field, value=model_name
169
+ )
170
+
171
+ model_name = model_name.strip()
172
+ if not model_name:
173
+ raise ValidationError(
174
+ "Model name cannot be empty or whitespace only",
175
+ field=field,
176
+ value=model_name,
177
+ )
178
+
179
+ # Check for special names (e.g., _pretrained_, _base_model_)
180
+ if not allow_special and model_name.startswith("_") and model_name.endswith("_"):
181
+ raise ValidationError(
182
+ "Special model names (starting and ending with '_') are not allowed",
183
+ field=field,
184
+ value=model_name,
185
+ )
186
+
187
+ # Check for invalid characters that might cause issues
188
+ invalid_chars = ["\n", "\r", "\t", "\0"]
189
+ for char in invalid_chars:
190
+ if char in model_name:
191
+ raise ValidationError(
192
+ f"Model name contains invalid character: {char!r}",
193
+ field=field,
194
+ value=model_name,
195
+ )
196
+
197
+ return model_name
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fusion-bench
3
- Version: 0.2.28
3
+ Version: 0.2.30
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
@@ -44,12 +44,14 @@ Dynamic: license-file
44
44
 
45
45
  [![arXiv](https://img.shields.io/badge/arXiv-2406.03280-b31b1b.svg)](http://arxiv.org/abs/2406.03280)
46
46
  [![GitHub License](https://img.shields.io/github/license/tanganke/fusion_bench)](https://github.com/tanganke/fusion_bench/blob/main/LICENSE)
47
- [![PyPI - Version](https://img.shields.io/pypi/v/fusion-bench)](https://pypi.org/project/fusion-bench/)
48
- [![Downloads](https://static.pepy.tech/badge/fusion-bench/month)](https://pepy.tech/project/fusion-bench)
49
47
  [![Static Badge](https://img.shields.io/badge/doc-mkdocs-blue)](https://tanganke.github.io/fusion_bench/)
50
48
  [![Static Badge](https://img.shields.io/badge/code%20style-black-black)](https://github.com/psf/black)
51
49
  [![Static Badge](https://img.shields.io/badge/code%20style-yamlfmt-black)](https://github.com/google/yamlfmt)
52
50
 
51
+ [![CodeFactor](https://www.codefactor.io/repository/github/tanganke/fusion_bench/badge/main)](https://www.codefactor.io/repository/github/tanganke/fusion_bench/overview/main)
52
+ [![PyPI - Version](https://img.shields.io/pypi/v/fusion-bench)](https://pypi.org/project/fusion-bench/)
53
+ [![Downloads](https://static.pepy.tech/badge/fusion-bench/month)](https://pepy.tech/project/fusion-bench)
54
+
53
55
  </div>
54
56
 
55
57
  > [!TIP]
@@ -205,15 +207,57 @@ The CLI's design allows for easy extension to new fusion methods, model types, a
205
207
 
206
208
  Read the [CLI documentation](https://tanganke.github.io/fusion_bench/cli/fusion_bench/) for more information.
207
209
 
210
+ ## The FusionBench Workflow
211
+
212
+ FusionBench follows a three-component architecture to perform model fusion experiments:
213
+
214
+ ```mermaid
215
+ graph LR
216
+ CLI[fusion_bench CLI] --> Hydra[Hydra Config]
217
+ Hydra --> Program[Program]
218
+
219
+ Program --> MP[ModelPool<br/>Manages Models<br/>& Datasets]
220
+ Program --> Method[Method<br/>Fusion Algorithm]
221
+ Program --> TP[TaskPool<br/>Evaluation Tasks]
222
+
223
+ MP --> Method
224
+ Method --> Merged[Merged Model]
225
+ Merged --> TP
226
+ TP --> Report[Evaluation Report]
227
+
228
+ style CLI fill:#e1f5e1
229
+ style Hydra fill:#f0e1ff
230
+ style Method fill:#ffe1f0
231
+ style Merged fill:#fff4e1
232
+ style Report fill:#e1f0ff
233
+ ```
234
+
235
+ **Key Components:**
236
+
237
+ 1. **CLI**: Entry point using Hydra for configuration management
238
+ 2. **Program**: Orchestrates the fusion workflow (e.g., `FabricModelFusionProgram`)
239
+ 3. **ModelPool**: Manages task-specific models and their datasets
240
+ 4. **Method**: Implements the fusion algorithm (e.g., Simple Average, Task Arithmetic, AdaMerging)
241
+ 5. **TaskPool**: Evaluates the merged model on benchmark tasks
242
+
243
+ **Workflow Steps:**
244
+
245
+ 1. User runs `fusion_bench` with config overrides
246
+ 2. Hydra loads YAML configs for method, modelpool, and taskpool
247
+ 3. Program instantiates all three components
248
+ 4. Method executes fusion algorithm on ModelPool
249
+ 5. TaskPool evaluates the merged model
250
+ 6. Results are saved and reported
251
+
208
252
  ## Implement your own model fusion algorithm
209
253
 
210
254
  First, create a new Python file for the algorithm in the `fusion_bench/method` directory.
211
255
  Following the naming convention, the file should be named `{method_name_or_class}/{variant}.py`.
212
256
 
213
257
  ```python
214
- from fusion_bench import BaseModelFusionAlgorithm, BaseModelPool
258
+ from fusion_bench import BaseAlgorithm, BaseModelPool
215
259
 
216
- class DerivedModelFusionAlgorithm(BaseModelFusionAlgorithm):
260
+ class DerivedModelFusionAlgorithm(BaseAlgorithm):
217
261
  """
218
262
  An example of a derived model fusion algorithm.
219
263
  """
@@ -221,7 +265,7 @@ class DerivedModelFusionAlgorithm(BaseModelFusionAlgorithm):
221
265
  # _config_mapping maps the attribution to the corresponding key in the configuration file.
222
266
  # this is optional and can be used to serialize the object to a configuration file.
223
267
  # `self.config.hyperparam_1` will be mapped to the attribute `hyperparam_attr_1`.
224
- _config_mapping = BaseModelFusionAlgorithm._config_mapping | {
268
+ _config_mapping = BaseAlgorithm._config_mapping | {
225
269
  "hyperparam_attr_1": "hyperparam_1",
226
270
  "hyperparam_attr_2": "hyperparam_2",
227
271
  }
@@ -272,11 +316,24 @@ Click on [<kbd>Use this template</kbd>](https://github.com/fusion-bench/fusion-b
272
316
 
273
317
  </div>
274
318
 
275
- ### FusionBench Command Generator WebUI (for v0.1.x)
319
+ ### FusionBench Command Generator WebUI
320
+
321
+ > [!NOTE]
322
+ > Requires `gradio` package. Install with `pip install gradio`.
323
+
324
+ For users who prefer a graphical interface, FusionBench provides an interactive web UI for generating commands:
325
+
326
+ ```bash
327
+ fusion_bench_webui
328
+ ```
329
+
330
+ This launches a browser-based interface where you can:
276
331
 
277
- FusionBench Command Generator is a user-friendly web interface for generating FusionBench commands based on configuration files.
278
- It provides an interactive way to select and customize FusionBench configurations, making it easier to run experiments with different settings.
279
- [Read more here](https://tanganke.github.io/fusion_bench/cli/fusion_bench_webui/).
332
+ - Select root configurations and components through dropdowns
333
+ - Adjust hyperparameters interactively
334
+ - View real-time YAML configuration updates
335
+
336
+ The WebUI is particularly useful for exploring available configurations, experimenting with different parameter combinations, and learning the FusionBench configuration structure. [Learn more about the WebUI](https://tanganke.github.io/fusion_bench/cli/fusion_bench_webui/).
280
337
 
281
338
  ![FusionBench Command Generator Web Interface](docs/cli/images/fusion_bench_webui.png)
282
339
 
@@ -287,12 +344,14 @@ If you find this benchmark useful, please consider citing our work:
287
344
  ```bibtex
288
345
  @article{tang2024fusionbench,
289
346
  title={Fusionbench: A comprehensive benchmark of deep model fusion},
290
- author={Tang, Anke and Shen, Li and Luo, Yong and Hu, Han and Du, Bo and Tao, Dacheng},
291
- journal={arXiv preprint arXiv:2406.03280},
292
- 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}
293
350
  }
294
351
  ```
295
352
 
296
353
  ## Star History
297
354
 
298
355
  [![Star History Chart](https://api.star-history.com/svg?repos=tanganke/fusion_bench&type=Date)](https://www.star-history.com/#tanganke/fusion_bench&Date)
356
+
357
+ ![Alt](https://repobeats.axiom.co/api/embed/83f1f046562e4a4787bdd6ed1190856f9f30bd9f.svg "Repobeats analytics image")
@@ -13,16 +13,16 @@ fusion_bench/compat/taskpool/__init__.py,sha256=LHCRs7vrWMTtMfrqFRMmnNiSZnnZ7tZy
13
13
  fusion_bench/compat/taskpool/base_pool.py,sha256=1AIZBxqUJgshq0Xo3Yo9es4b-8X8ksN1mFHxSOqnDsA,3307
14
14
  fusion_bench/compat/taskpool/clip_image_classification.py,sha256=2L-VzsmKxNg8tglUzGA_qmLZ2oR5zKl352ylCmeY9mI,7426
15
15
  fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py,sha256=JsdAE72V1C1eDcA1WCa0PIcSDTrGPclNKFDQ9G-hYts,5786
16
- fusion_bench/constants/__init__.py,sha256=Kgd1ex7odRVAlWAoKfi5iB4IMahndgJYJXqknH8R3vA,195
16
+ fusion_bench/constants/__init__.py,sha256=icLBUEZ84oExUXRNm5Nrm4FVcvAZ-SiQ5HWOLOuzU00,363
17
17
  fusion_bench/constants/banner.py,sha256=fuIO36ETKlS6a3wbwZn-rA2OswSCfOYyyhZ0Fnal1s4,1656
18
18
  fusion_bench/constants/clip_vision.py,sha256=qOHlYZYSOqpOO4-cfwUUhbv7qyr5IuUAW3yWjqjbJBo,1430
19
19
  fusion_bench/constants/paths.py,sha256=1xLaZ2J3B3d0bo2ndubawaOjiFMJDAK6TjF685HlCM0,719
20
- fusion_bench/constants/runtime.py,sha256=UWhUwjfXgaHkcyxSqkkrcmrMVZ_HxR4VVfUz_ewnw4M,1838
20
+ fusion_bench/constants/runtime.py,sha256=0X8ldWJLGZ38lg_MbQE3M2ewm_vz9bUBPx3QkN3fNW4,4755
21
21
  fusion_bench/dataset/__init__.py,sha256=2b4UGemg_F1I5cXkAzNMm12XmlP9-06DH8cW1V6ugwo,1495
22
22
  fusion_bench/dataset/clip_dataset.py,sha256=xQ1aRiA_WMIZKha0do0Dg5F8qsEIucuouy8AbsxbewI,3263
23
23
  fusion_bench/dataset/fer2013.py,sha256=Lub_xVhHfqaiPprvOsDVspJNioh1FjSrkhn3gL_UXDA,404
24
24
  fusion_bench/dataset/gpt2_glue.py,sha256=UvNWKAAMnKMNjF0BCpwwc7Nz0SI7KacxRR6SDm9Mn0s,8869
25
- fusion_bench/dataset/gsm8k.py,sha256=2OkDGDebZ295vkne2Ni4bhs6GbOIt4Vxx2F1315jsyk,2235
25
+ fusion_bench/dataset/gsm8k.py,sha256=26IVIIm8vldN8xYYVfdrdTre6WizilCacVyY2Ti4qog,2274
26
26
  fusion_bench/dataset/image_dataset.py,sha256=_N5JJC0lH3EbbrZMeuDatJILrKDK2EKHqtJB-m1pdFs,1879
27
27
  fusion_bench/dataset/imdb.py,sha256=YRzeq5z-Fl0aYcC2QtwEBWFkvucvpNo975jwjL5SZvs,260
28
28
  fusion_bench/dataset/nyuv2.py,sha256=9SAmRMxkWvZ6cYNRoOIBgf9fH8AXQCmdBOIkYxcz-1c,3811
@@ -35,7 +35,7 @@ fusion_bench/dataset/arc_agi/np_cache.py,sha256=Ec1DQFtlBdMy-f4dvGEhSr4jyVnBLQEL
35
35
  fusion_bench/dataset/arc_agi/preprocess.py,sha256=lQrXqV4SkhrxREgbqFAop-IwC5qaoxkKosoMO-ZHITY,8509
36
36
  fusion_bench/dataset/arc_agi/representers.py,sha256=-2eTYl-UcFW4zULDjkUrOQYv9P31nttMjc9eTJsaN0g,35852
37
37
  fusion_bench/dataset/image_corruption/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
- fusion_bench/dataset/image_corruption/make_corruption.py,sha256=ohYO7QAnyxsxbUBMHXUMHImk8-5Z7kNeVph9nz5_VrI,5454
38
+ fusion_bench/dataset/image_corruption/make_corruption.py,sha256=-v23617McqivbY90bn0Ciqngca4zfH_UK8FBaW5FRvY,11047
39
39
  fusion_bench/dataset/llama/__init__.py,sha256=p8M7G69L6bga4qLl5lvAO6SKNeUBn99kkJrAQEeOvHw,22
40
40
  fusion_bench/dataset/llama/alpaca.py,sha256=0nCQRBZzIPaMzA5VSJAsWw-nE0aVhiAQD5MGJRSrvEQ,7787
41
41
  fusion_bench/dataset/llama/collate.py,sha256=fSH-vKKCGCpPT47gchETXLF2yTCMPUE3NTE-inCdczg,3869
@@ -48,8 +48,8 @@ fusion_bench/dataset/llama/stanford_shp.py,sha256=6ueXKnFXIBBobacU1h5WxGLZrSOtBk
48
48
  fusion_bench/dataset/llama/ultrachat.py,sha256=Go7WvrDAYnm184fdazHGRYLbSY6Xd7jrESyQeUJtOww,1736
49
49
  fusion_bench/dataset/llama/wikitext.py,sha256=9ZHR-nMfXRumd3o-PIj3n7B83YlVeqpGkZ2zJs2B-9Y,2883
50
50
  fusion_bench/dataset/llama/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- fusion_bench/method/__init__.py,sha256=xslTF2298UcTTpbB6bcBbR7UeFU0Gu63fdP7qvex1nk,9527
52
- fusion_bench/method/base_algorithm.py,sha256=OnKSNPQ_nIdIWxryyblW_sko7uoEBN4lGh-eLkJ4kh4,9004
51
+ fusion_bench/method/__init__.py,sha256=Set_2GWpmI3q_WvbV1hBUfa6GFiIuajyiZR2hRbfrN0,9811
52
+ fusion_bench/method/base_algorithm.py,sha256=Pa3A7ON0YK3PJqFE77IY9dpQC-tQGJpX6kdf8IMnM_k,9453
53
53
  fusion_bench/method/dummy.py,sha256=hb1y6LR_geRZ5eRgGwt5zJUcHYorCeIbs5i76CvurUc,1031
54
54
  fusion_bench/method/ensemble.py,sha256=Bjzqxt-tUp5cawT1jIhqKswN5QH3bkYbmuI4LS4uTG0,3619
55
55
  fusion_bench/method/model_recombination.py,sha256=b2ku5wCrWd1QSZscIra4KlhLDxt04JjU30ItMNvpZ6g,5268
@@ -80,7 +80,7 @@ fusion_bench/method/bitdelta/bitdelta_utils/diff.py,sha256=o3ib5sgGDYLgnL8YTfX0Y
80
80
  fusion_bench/method/classification/__init__.py,sha256=byVJ574JQ_DUvsDv8S6ZM6BKAv4ZZ964Ej4btm0aC7k,867
81
81
  fusion_bench/method/classification/clip_finetune.py,sha256=5q5Sr3eVVh8DfYdeSoGjwaKDksC8F2dY2r8Dl-wRaDg,15844
82
82
  fusion_bench/method/classification/continual_clip_finetune.py,sha256=OLhZKS-6aCnafevZkZYcNMKTWDDj3DATB27eZl_i8EY,11530
83
- fusion_bench/method/classification/image_classification_finetune.py,sha256=xWSspEuiyM9mz7nTFCLMbJMvkuD-k3B7mx-KMvq7nEU,15310
83
+ fusion_bench/method/classification/image_classification_finetune.py,sha256=JGD8zpt_f4HojZ7Y9b7mFI-x9os1J0440tgorQMMZGY,15282
84
84
  fusion_bench/method/concrete_subspace/__init__.py,sha256=jJoFcjnQe-jvccsm9DuCXna378m9XBT9vV1fEZbdfR0,464
85
85
  fusion_bench/method/concrete_subspace/clip_concrete_adamerging.py,sha256=UkLOkaa_Dzlb4Q5ES69Y9GV1bodTnD7DzZFreykt65s,24706
86
86
  fusion_bench/method/concrete_subspace/clip_concrete_task_arithmetic.py,sha256=Nx-3AiAeIt5zmcC21Ta2_-4cAQg9hOWvThurXNZzA-w,10580
@@ -122,7 +122,7 @@ fusion_bench/method/fw_merging/fw_soft.py,sha256=rmwwcEtJOqotxDqS9Vs2YVtwxYK--fw
122
122
  fusion_bench/method/fw_merging/utils.py,sha256=EZyltS9hUM8NmcvXjAqhBpj-ucMlMtR95082kPDsJPU,10296
123
123
  fusion_bench/method/gossip/__init__.py,sha256=3b7mB4wl7weA6JtPmEeHHG2Zb_MWaOt-i1beJjNCbc8,198
124
124
  fusion_bench/method/gossip/clip_layer_wise_gossip.py,sha256=spio-nPSRDHrA4hSMtAc746AX_lLIgN0shOvZ0LYZVc,1218
125
- fusion_bench/method/gossip/clip_task_wise_gossip.py,sha256=yY-fHBynWgkac5J61V9xI1SNUv6k2z1SgvmNb13l2jg,7063
125
+ fusion_bench/method/gossip/clip_task_wise_gossip.py,sha256=a0sH4NCShVWbhGVv6Wt10cJmIbOl1JKhGP46pztpa60,6210
126
126
  fusion_bench/method/gossip/entropy_loss.py,sha256=ZeVe0Hq1PaMfppLqDbB0MOscZUZRNh4CALrvt8pmQC0,736
127
127
  fusion_bench/method/gossip/flan_t5_layer_wise_gossip.py,sha256=H4KpVkZtcm90GCWodHNJYChxUj3beXn3GajqI4iNiYw,15674
128
128
  fusion_bench/method/gossip/layer_wise_gossip.py,sha256=btcQxAZ6LepJMGPbsUsypAOlmGfUjKu2GfeTg_BfaVw,17173
@@ -257,31 +257,35 @@ fusion_bench/method/wudi/wudi.py,sha256=HL3Y0MPjozp7NML_UNjIWWPbQDQxYH_WG_Buyrip
257
257
  fusion_bench/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
258
258
  fusion_bench/metrics/continual_learning/__init__.py,sha256=f-mkv4SpXTq5kiQVHbe2g0IPf4yLFgu1Dw7g2DOK6T4,57
259
259
  fusion_bench/metrics/continual_learning/backward_transfer.py,sha256=LCMWFFmBgWv7UIAJqiTaSvVvanx4qjnXIGuCMYvzmtc,559
260
- fusion_bench/metrics/nyuv2/__init__.py,sha256=ozlWR3QgvlP260iaScqavQ4qs_PWsid4WN6S5wKgzAM,282
261
- fusion_bench/metrics/nyuv2/depth.py,sha256=oKc8NUZd0yAsk7-f78CbOzyuqmFpBhVFA8GOOdaNP7c,1548
262
- fusion_bench/metrics/nyuv2/loss.py,sha256=oBrkU8cDTczjIKixHjUGLJ_rghx0Vw59OL9DB-kZT3M,914
263
- fusion_bench/metrics/nyuv2/noise.py,sha256=I2CZbOnarvnosQEQbxT9Ye34k0zfSzJjgL_4nMkuPYc,295
264
- fusion_bench/metrics/nyuv2/normal.py,sha256=vLunq7YJ19Xa4LSCuezETrq7PH2QYko9qif02rVvFtA,1489
265
- fusion_bench/metrics/nyuv2/segmentation.py,sha256=tITINYu1UcuN5UXj03RPd3qy-NXUve_-R8a8-b6-qy8,1245
260
+ fusion_bench/metrics/model_kinship/__init__.py,sha256=-XWD0NR6Xz-p4oE8AKGoWrq-s1ayqWse7qLgNRENsaU,137
261
+ fusion_bench/metrics/model_kinship/calculate.py,sha256=FoyBQuz3-q2NRfUW9w0dq9Tm51WG83iF_L_nHMOSI20,2447
262
+ fusion_bench/metrics/model_kinship/calculate_split.py,sha256=_aTw7nfAZeEhiyqWlUkzwafQXLI3iDQMHdFy6ZMb88w,5797
263
+ fusion_bench/metrics/model_kinship/utility.py,sha256=9iF9bWsJOFhhLqPMDyHyg-PAmat_zYUbud-umTfgBLs,5903
264
+ fusion_bench/metrics/nyuv2/__init__.py,sha256=Ed1FQTJAxguJoorZLHIO-cSIgKYHHfqdf17J3o9_feI,1390
265
+ fusion_bench/metrics/nyuv2/depth.py,sha256=xmUokztxyPrl90qtcoQaanti6DbFaIVqglAo3PDnEso,2851
266
+ fusion_bench/metrics/nyuv2/loss.py,sha256=YKZSqycNyPWJV29Qa12--Wh87zZvtJcuUxUuiPbccpM,2529
267
+ fusion_bench/metrics/nyuv2/noise.py,sha256=2--bmTGN000zMFAf1t46PQrh_8M6_4a_EFEjggqlptA,1007
268
+ fusion_bench/metrics/nyuv2/normal.py,sha256=DJQRr3CEVGo0FnT2KjYYxFoH_8DQ3KbuJr7zRbQqAus,2901
269
+ fusion_bench/metrics/nyuv2/segmentation.py,sha256=l5VYish76PtdMQQrWxLk-WhAdlwuQRbOzNgmo1suI1I,2688
266
270
  fusion_bench/metrics/text_to_image_generation/__init__.py,sha256=OEIxpKmyy6-3iWyJDP8oAFr1w56Gz9pAhmN2etaJimg,394
267
271
  fusion_bench/metrics/text_to_image_generation/aesthetic_scorer.py,sha256=-ZaD84ENPITh_K0Fe9OKYYoiGnPhlSE9gTbBqrtnqqA,4487
268
272
  fusion_bench/metrics/text_to_image_generation/compressibility.py,sha256=x4dNTFnAN4naChBDZBO-jUghnHAyobRVOupctKYRg1w,1656
269
273
  fusion_bench/metrics/text_to_image_generation/pickscore_scorer.py,sha256=aSWzl8k7z80Cirg5qdfkPsp3sMFEv_PjA1NJv3PPWXY,3115
270
274
  fusion_bench/mixins/__init__.py,sha256=2_mAT0VHiUYGyWJyiDSxcFmI4Qt64Y2qlNu1Z11fgyY,1320
271
- fusion_bench/mixins/clip_classification.py,sha256=8dqJuI3AVetFZKuzTp1SR2kGQ-vGvfbcmwfnzuUiwfI,10096
275
+ fusion_bench/mixins/clip_classification.py,sha256=Ifc3R_RO1yb-nbT_lipfNudQS3iiB3G_trNMS1dEfRU,11329
272
276
  fusion_bench/mixins/fabric_training.py,sha256=ZmycEhCaNCgVi5oM9m0q6msxgk3quowmFvDAcvskFrg,13017
273
277
  fusion_bench/mixins/hydra_config.py,sha256=rfT-XPUKV_U3nvuTVsKLmSmEiieoSIsbhxE5_-E0er0,5508
274
- fusion_bench/mixins/lightning_fabric.py,sha256=-ACc6F87oNHSKmFl-DTo1vhCWyR8lZ7o_WIvuRnv3QU,7884
278
+ fusion_bench/mixins/lightning_fabric.py,sha256=Ezg4WRhfXBQYM5ndErWWX1vvKLmYBfpDf0wyQIB0nCY,9237
275
279
  fusion_bench/mixins/openclip_classification.py,sha256=O45HzgLXNvlQr5RVpfIGsYdIQ0tY5g_68KB0MTqsZWU,290
276
280
  fusion_bench/mixins/pyinstrument.py,sha256=I8CLVRUK6G_U8S5x-netmtAcy6m9uLB0UGB1AokbheU,5108
277
- fusion_bench/mixins/rich_live.py,sha256=j7wNgrgwfdpl6nCXZGF_2DLtNq2aqCb_52Qhe9QSltc,495
281
+ fusion_bench/mixins/rich_live.py,sha256=bzUu4F90bq9x8DCY8rZmLz7sfmZiFH0GPIoY1O2ysHg,2970
278
282
  fusion_bench/mixins/serialization.py,sha256=z73Mmq952TIdPwwZ8cRdl3n0_uc9lqylFI9fxKesREs,13260
279
283
  fusion_bench/mixins/simple_profiler.py,sha256=QA4fZhD-uL06fZaoqBQowI0c_qrAUhWszFteyznFfUw,5391
280
284
  fusion_bench/mixins/optim/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
281
285
  fusion_bench/mixins/optim/adamw_with_warmup.py,sha256=qTnRl8GVVIfaplOFBHnJFuZUbxPZRWRGHGNzm_EDhDE,1421
282
286
  fusion_bench/modelpool/PeftModelForSeq2SeqLM.py,sha256=rxPKTTWno3KAcTTEfydPpXx1b0EJa8PLbqrberweFF8,2108
283
287
  fusion_bench/modelpool/__init__.py,sha256=qDlBPrWFW-Z-LByzmfqP1ozYhWx2lYAEjhqjKF4EAbY,2307
284
- fusion_bench/modelpool/base_pool.py,sha256=7v01al93RjJ5CynUM-HnM6mCgCX9asUmaqPNmxioNoA,12531
288
+ fusion_bench/modelpool/base_pool.py,sha256=WzAJf1Quj7DAPVycBnwE-LQ9ddv1rZ8qPid7R71QZdA,15501
285
289
  fusion_bench/modelpool/convnext_for_image_classification.py,sha256=m9MxFgfzNjGnHOU6gufaTPgkk67lifNNwW03nHUxXKo,7377
286
290
  fusion_bench/modelpool/dinov2_for_image_classification.py,sha256=Wd60J5Ji4KwXUYTPcYYXuYWrcpDlh7pjGZ-zjjRqYio,7496
287
291
  fusion_bench/modelpool/huggingface_automodel.py,sha256=OJ6EyYyjNv1_Bhjn-zli-e__BJ0xVa4Fx9lhXVb-DJo,552
@@ -330,7 +334,7 @@ fusion_bench/models/llama/model_utils/misc.py,sha256=3SJ7wk71zLMVF-AJEvQ_KCfFaMg
330
334
  fusion_bench/models/llama/model_utils/mod.py,sha256=xzNOgTRfOK9q8kml4Q2nmSOl23f33dE1tPi5zxgpWK0,1498
331
335
  fusion_bench/models/llama/model_utils/visual.py,sha256=wpqWqEASyA7WhJLCfC26h0Cdn5CXnwC1qPJUlSXggo4,8310
332
336
  fusion_bench/models/masks/__init__.py,sha256=vXG6jrBkDbPsnrX6nMEYAW1rQuGEWDgdjID7cKzXvrs,69
333
- fusion_bench/models/masks/mask_model.py,sha256=YXNZ_CGp6VPshZH__Znh6Z07BqOK53G-Ltc1LVy1E3I,5502
337
+ fusion_bench/models/masks/mask_model.py,sha256=NDVhtuvZ10NUfTLEI_ONTKiceuSF-W7T9SEeUnyZFYQ,5680
334
338
  fusion_bench/models/model_card_templates/default.md,sha256=OoU83l1hip1gKsoA08hoKx-nCrOYbKaVTVCjK0pt9WY,1028
335
339
  fusion_bench/models/modeling_deepseek_v2/__init__.py,sha256=trXrhtKb_gIxXVo7wSZ-il5sLJtDTiNZezRrEt3M8zM,505
336
340
  fusion_bench/models/modeling_deepseek_v2/configuration_deepseek.py,sha256=TblFOCfNwaXUnXnD-sxFhSn5Df-_yy2LMcrth-sBPFI,10301
@@ -364,7 +368,7 @@ fusion_bench/models/nyuv2/lightning_module.py,sha256=SLtC0yL6455uKeb-o07MR6v-xE4
364
368
  fusion_bench/models/nyuv2/resnet.py,sha256=PcCfBhEsxm7W8cu3epBbIbCYFARPrPTamIa3TtUAVa0,14305
365
369
  fusion_bench/models/nyuv2/resnet_dilated.py,sha256=4EXB6vrBJS307YP6k-TRY1dFJ50LURcTuzqN4tZzYRk,3125
366
370
  fusion_bench/models/open_clip/__init__.py,sha256=zT2sGAT98Py5vXMckZF4aD8MYEICEWa2p7nRg4IrS0w,192
367
- fusion_bench/models/open_clip/modeling.py,sha256=34wKcbxe5xb6fzAVdIz0QcsSXs-8FQFUyqRNlIJso78,5556
371
+ fusion_bench/models/open_clip/modeling.py,sha256=YOCsM1RfvhqJkUzwK9T4WqX1NW7LyAIi0UnN6ERQ-rk,5775
368
372
  fusion_bench/models/open_clip/utils.py,sha256=YM_vGQSxIDoB2euHG54hhRGIcINJfR0NxNT5U42KRCw,10394
369
373
  fusion_bench/models/open_clip/variables_and_paths.py,sha256=_OBcKvZwSGvYSmgKtXOuekEJI-btW94Ia-BQ9n4isfY,1231
370
374
  fusion_bench/models/smile_moe/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -376,9 +380,9 @@ fusion_bench/models/surgery/__init__.py,sha256=tcUSi2m9GzGWfvRDQScIbdEbFBS_35gm9
376
380
  fusion_bench/models/surgery/surgerymodelwrapper.py,sha256=F8jX88K5zVWC6HsfN-nGNkEiPwNrN11ydyQQ1EZHehM,5133
377
381
  fusion_bench/models/wrappers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
382
  fusion_bench/models/wrappers/ensemble.py,sha256=T-DAKrAm-ciZwV6Hbt8uASbjtoQpHTlvVyan3rhk_8k,11632
379
- fusion_bench/models/wrappers/layer_wise_fusion.py,sha256=A7LjG0inL5oeEVOkJwEUDM15v4dpQnsCq2y9zA78R3k,11198
383
+ fusion_bench/models/wrappers/layer_wise_fusion.py,sha256=T1sbujx_84Pj5yHFy5QqfipT6v3p96gUmnMgyy4lG0c,12560
380
384
  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
385
+ fusion_bench/models/wrappers/task_wise_fusion.py,sha256=iCrevrkG4uTr3U8_hgT_xEY4epnEK0EJO8yg-uEMIUI,17836
382
386
  fusion_bench/optim/__init__.py,sha256=JS7J2VjrM2LdkiFCxuQnIuFwBsWiPyFb7QuEU6V2bPY,845
383
387
  fusion_bench/optim/exception.py,sha256=fMgo1heiqfGhuI5RIbf30BwWSShn5RQiyeb30QtfTI0,1607
384
388
  fusion_bench/optim/mezo.py,sha256=Vm4vMGh10Fhe28_9L1MK8r_U7DrurA8Liprh2_gn4_U,3646
@@ -392,10 +396,10 @@ fusion_bench/programs/base_program.py,sha256=Bl_bv8SawEUc-GBTtZFMoii0y-r-0hOXBAJ
392
396
  fusion_bench/programs/fabric_fusion_program.py,sha256=wIHNpLUw6uAXpAasJRAMWut55hF_EGFShxn70zRRvfk,12449
393
397
  fusion_bench/programs/fusion_program.py,sha256=qLyA3FHJUMM1L3mlYn4jlnZzv9OKguWM5aGGIoLts2I,11309
394
398
  fusion_bench/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
395
- fusion_bench/scripts/cli.py,sha256=kEWLEkZEBqUr1_-XTePzNC5NM8lwWvgUBf0Lcuk_FI8,2739
399
+ fusion_bench/scripts/cli.py,sha256=t3YFuscJluxxNdXawW8FOaYH2fKn7m_6bXNlJ8KcZZg,3414
396
400
  fusion_bench/scripts/imgui.py,sha256=r9Glbfbwu3JCsX9TKQFwcHarvwA_G7ff0jWBUPW1S1U,7613
397
401
  fusion_bench/scripts/nyuv2_mtl_train.py,sha256=W1C45R9NdF4O-UjCx1bUxRTdFE0-FlRpwJHZ5gY18rI,3602
398
- fusion_bench/scripts/webui.py,sha256=ryA-2leSnHcYA88tTAYzJGDhiljbi0vl1Fibejzndlw,14398
402
+ fusion_bench/scripts/webui.py,sha256=ROvZUIj-hR4JLgCiWEKGc25LMtAjaMAZLJ5ckDYt-w4,21513
399
403
  fusion_bench/scripts/clip/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
400
404
  fusion_bench/scripts/clip/convert_checkpoint.py,sha256=zncgRAhInFpJDSHIm3GO4F6BzgsdAQVj3LLmV7g-JiQ,1221
401
405
  fusion_bench/taskpool/__init__.py,sha256=n5jUUMI1TDK0g72PpFLlajqZ6FwEKjyfQLY4hnYlQ4I,1479
@@ -454,33 +458,33 @@ fusion_bench/tasks/flan_t5_text_generation/glue_evaluation.py,sha256=-B1wqVGp3wZ
454
458
  fusion_bench/tasks/flan_t5_text_generation/glue_load_dataset.py,sha256=sVihXHbqwi8IlDpiIxzvmDv-Ob7WKvi23GIRYbBUKOc,1833
455
459
  fusion_bench/tasks/flan_t5_text_generation/glue_preprocessors.py,sha256=GhRmGmcJGF4oVgZQarsBtx8GNKrNEZUkrillNz3iBuY,13183
456
460
  fusion_bench/tasks/flan_t5_text_generation/glue_prompt_templates.py,sha256=mKMTXIr5o-BqS_Hvv1bbMvvjQLLeKNVw7BKS9qgQ8Dw,1890
457
- fusion_bench/utils/__init__.py,sha256=b61bfpNY2FOm3QWdexEOMMv1Tcp8zz2pR6644r18RSM,4778
458
- fusion_bench/utils/auto.py,sha256=uACQLE62_kNyhl4BGduvcbyeTE61qXpIJx3Ccl8kh68,920
461
+ fusion_bench/utils/__init__.py,sha256=EvrvupFGAzxll_jO0HYk1-I6jCHqDrIwZ5vswlR-9Pw,5149
459
462
  fusion_bench/utils/cache_utils.py,sha256=-bTZijQgl4BuAx0VSJFD-bSDOXuq3o0NkrOaiLiyofU,4795
460
- fusion_bench/utils/data.py,sha256=aalB3kGbZUF-PZ_IaAhcXanRKhS-RNMT5mUrEBb4R3E,6722
461
- fusion_bench/utils/devices.py,sha256=6AkGcs3flt0FSo9yfEREuehoTrgcc65gkwpTWQy8XsI,9546
463
+ fusion_bench/utils/data.py,sha256=QAXpsvzHOgfAf6G_Pe2a5HOKUAP8Mxz77avujQI9Fd8,10027
464
+ fusion_bench/utils/devices.py,sha256=IyUBaWbnZGDsAxI97LEioUj-JIjYTzxQo_EhyKY3RZM,9566
462
465
  fusion_bench/utils/dict.py,sha256=ZCK0CRRT_B1Z18WY_GOYcmth7k5x9Jn1k7XhAVWRu98,1379
463
466
  fusion_bench/utils/dtype.py,sha256=z6UlPGF9dzG4Ik8rXGf59PJk_RKzG6Trp8O6wcBS9PU,4360
464
467
  fusion_bench/utils/expr.py,sha256=zwHNrtIbOMnIChU-0ZI5qLbDva8zvHbizL-4F2TwM14,2386
465
- fusion_bench/utils/fabric.py,sha256=NxquO_rVJyE2w4V3raMElNMr1-wT01QZWPuIfL2rgdQ,617
468
+ fusion_bench/utils/fabric.py,sha256=qKcJ6Xj-6rEGy35dsUPHzxZT6az9RkSNcyBQl1uOv0M,6050
466
469
  fusion_bench/utils/functools.py,sha256=7_tYJ2WD88_2DDuOOj5aZz3cYuslYH5tsVyIgCeLtmk,1318
467
470
  fusion_bench/utils/hydra_utils.py,sha256=TklUDKDEZlg4keI-TEZiqh4gFjr9-61Rt1RMlqkoSGk,1174
468
- fusion_bench/utils/instantiate_utils.py,sha256=OXkfhq_o3Sgy5n3Psf-HI-dIfbK9oD2GBdfcx3gT63Q,17526
469
- fusion_bench/utils/json.py,sha256=LXmlqdUxgBepaFjf2JoLrOHQ7CdFAcKLzHL8LaSkPog,4359
471
+ fusion_bench/utils/instantiate_utils.py,sha256=UNfx188feTDrMSgp-ocLHetj6uD6axZcC46dRfBMtko,17884
472
+ fusion_bench/utils/json.py,sha256=XZvEqBGpq-e0MaKkkX-1_PD8xMf6IDLAn4BrAF7IeiU,4552
470
473
  fusion_bench/utils/lazy_imports.py,sha256=s-1ABhPyyHs7gW4aodCzu3NySzILzTL7kVNZ0DZRXJA,6156
471
474
  fusion_bench/utils/lazy_state_dict.py,sha256=mJaiAtKB1vlNUAoQILnnCmU80FGJ8MSwmdPpmdhOyDE,22206
472
- fusion_bench/utils/misc.py,sha256=_7BaS9dNKyySGU0qmTmE0Tk8WK82TEm7IBJxVRkuEAw,5315
475
+ fusion_bench/utils/misc.py,sha256=xntIUj4cwgx10y7Z1YqXT0zU4nDHfnKRK_M9biWgLH4,5780
473
476
  fusion_bench/utils/modelscope.py,sha256=P8fV6Eff8oP0LVGIFGbLvuk8MBteysN438djZ6ZEfE4,10699
474
477
  fusion_bench/utils/packages.py,sha256=m2E0ryIMI0NwWR9vUHkK9FtZEwA1G-A4dYOf87olli4,2217
475
478
  fusion_bench/utils/parameters.py,sha256=ufEDOYJwcQQxLfveK8hBAGwpu5J3LA_cTWiDgZ2zkJ0,11788
476
479
  fusion_bench/utils/path.py,sha256=piznok_znXkTY71VBwJrxBlXureYOdQnMfvqaZ26qvc,2643
477
480
  fusion_bench/utils/pylogger.py,sha256=1Uy_LkHkbrYdt1g5Ge_eAh2YoCJwn3U3Ndouz9sVA6g,3419
478
- fusion_bench/utils/rich_utils.py,sha256=3Z0di-1IOs3QoovF2frNA28ITVKWBLdm84zbXdTrM28,5924
481
+ fusion_bench/utils/rich_utils.py,sha256=CJKL1vIHm2EznWa4e7ExmY5-lRtRRHLd7ZFPcn2acUs,9664
479
482
  fusion_bench/utils/set.py,sha256=_43ZvGKJ_BK9sUslsSNhi7xEfuAQuyj3vViImnGpnCY,134
480
483
  fusion_bench/utils/state_dict_arithmetic.py,sha256=bXO3zewO3KDzRmTaznlsnURIoSlcW5V5IhuXGtI_nxk,41234
481
484
  fusion_bench/utils/tensorboard.py,sha256=9fkgNYR9LM38nPNkudcxL9TjLUseW-280M0k2nLff7o,1669
482
485
  fusion_bench/utils/timer.py,sha256=adBpA_XjpCuVvL6uyCtKhAFRzk4SXsr8T8P5kQNz0x8,5012
483
486
  fusion_bench/utils/type.py,sha256=2iu8PQzSzI2KopYwg4Pay7qpq7s_LKkl6Rhj-tjG3u0,630
487
+ fusion_bench/utils/validation.py,sha256=-pUbATmeuinfceB7PNljCYgMk9gUQKwNn1dHvkuevtE,6082
484
488
  fusion_bench/utils/plot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
485
489
  fusion_bench/utils/plot/color_data.py,sha256=5QO2tlf-9bCKywsIZJXxl6klWb8EntXFilTas_8je5c,48260
486
490
  fusion_bench/utils/plot/token.py,sha256=QGmL_qX8drmWnN_VNLD_0YjKc1o_qahJE-svXVor8dU,1634
@@ -488,15 +492,15 @@ fusion_bench/utils/plot/token_notebook.py,sha256=bsntXf46Zz_RavTxNiB9c3-KvHw7LFw
488
492
  fusion_bench/utils/strenum/__init__.py,sha256=id9ORi1uXrDxhbmVxitJ1KDwLS4H3AAwFpaK5h1cQzw,8531
489
493
  fusion_bench/utils/strenum/_name_mangler.py,sha256=o11M5-bURW2RBvRTYXFQIPNeqLzburdoWLIqk8X3ydw,3397
490
494
  fusion_bench/utils/strenum/_version.py,sha256=6JQRo9LcvODbCOeVFYQb9HNJ_J9XiG_Zbn8ws2A3BV8,18466
491
- fusion_bench-0.2.28.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
495
+ fusion_bench-0.2.30.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
492
496
  fusion_bench_config/README.md,sha256=Lc8YSBJ5oxf9KV5kKDivJ9LRyGuraGQPmBbgbdVA-j4,703
493
- fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=7IxLQoLRz-sRWyV8Vqc5kQcmYE_9YQz2_77pmvAkum8,1207
497
+ fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=pZ5dFgg5n1W9cKdNyGNa7b4yPd4aQSu2iR2-yw9hhbY,442
494
498
  fusion_bench_config/fabric_model_fusion.yaml,sha256=kSQbhBsKypVFA3rmkdhY9BITnZWDXJof-I35t473_U0,2646
495
- fusion_bench_config/llama_full_finetune.yaml,sha256=wmtslON9MTEp8L9Y6Wz3adqsZq_IFU1y6dCcxuikoEU,787
499
+ fusion_bench_config/llama_full_finetune.yaml,sha256=2xBhxEJxLZNDYc_9X8TtpXMRu85ksJxjkfqsz_xn5Yo,195
496
500
  fusion_bench_config/llama_magnitude_pruning.yaml,sha256=xFyDJpb8gyIjosteOpEW9eayONWhl0B763r1XmO-9w8,633
497
501
  fusion_bench_config/llama_model_fusion.yaml,sha256=KMMDFPAiiOU1vIMWw58FoMhi8-_SDImF4eqlg9ZoprY,586
498
502
  fusion_bench_config/model_fusion.yaml,sha256=QCq61w-40Lhl53-pTsKSVbn48iNE619YeRIxurH8Hxc,2511
499
- fusion_bench_config/nyuv2_config.yaml,sha256=VtiqcyNwTxsiv8FFxdSBiUp0Qqtxig0j2bSZ8Faf4xA,540
503
+ fusion_bench_config/nyuv2_config.yaml,sha256=SJ-jcYmFsVNgIix_S8bloCMtNFqwISQNNkrCoFpatKA,181
500
504
  fusion_bench_config/nyuv2_mtl_train.yaml,sha256=VpQsJ9oheIlcbfU_vdmIVXJEESKG7GuftSmmoDptstE,609
501
505
  fusion_bench_config/_get_started/clip_evaluate_single_model.yaml,sha256=Bh448Jd_6OlldG6jo9LYZrx0U-xLZXtB8I6yxnFHM_I,630
502
506
  fusion_bench_config/_get_started/clip_simple_average.yaml,sha256=MHaqUyuaLfHKMn5OPeNMpv3jCI1_zIEfsIQjonp3fow,780
@@ -849,7 +853,7 @@ fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_generali
849
853
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_individual.yaml,sha256=ocGSa4hzUFiAaRG1DjBenazAeO_DsCGNGCue-0tUl28,160
850
854
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_mtl.yaml,sha256=pQr8lF-hIFrPXPcZYlbSxx8PF8EClZ6nm2L4yqEmHTk,176
851
855
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_clean.yaml,sha256=7oQtoqXs37fctajb6E7UOB0GT515eEGzFNm93dWOKKk,509
852
- fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=txMh1k0O3Spusqewp7zV0N0L9e2fg87lviDEnNJSHGQ,900
856
+ fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=GiCY7GVaJtjLJjFV-GILiELm-KoFhM6wHdXfh10sDEM,901
853
857
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_finetuned.yaml,sha256=XOweydALcCrXCaH14e5Fn7UDWihSkNmXYEu9daG43jY,236
854
858
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_single_task_projection.yaml,sha256=i78xIL-vP28dYZaXntLsm7e9IdI2yAeUwZZze5fd9Do,288
855
859
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-base-patch32_sun397_and_cars.yaml,sha256=gDEzNfwsMtIu2xH8WSIUblx4ZyL1FsLXoSEpXPHiMaI,482
@@ -972,14 +976,14 @@ fusion_bench_config/modelpool/SequenceClassificationModelPool/roberta-base_glue.
972
976
  fusion_bench_config/modelpool/SequenceClassificationModelPool/single_reward_model.yaml,sha256=sWGcEngJfBOEE2uaah33UBQa3hjoDxtFfGOgT2GtzxQ,624
973
977
  fusion_bench_config/path/default.yaml,sha256=jSEGsRp2YSyvQeBq9FncX1W_piLGVZp71RiyvjGzXPw,1346
974
978
  fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_clean.yaml,sha256=vcU1ygptQ7nlufCEdKDWGMyi-OH4zJs55_vxG-iNHBc,541
975
- fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=Ged9KWmmGl29hq0gXzyG1DlryuLebDQAJIb_t5PvqiE,758
979
+ fusion_bench_config/taskpool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=uYuOXJ3x9RB6TDHjrQl7gNLJxIqitmGnBYkF-mGuv2E,759
976
980
  fusion_bench_config/taskpool/dummy.yaml,sha256=Id4Y_j7oc39qWjjEFG3qLmmMI1fGXXt34gVO56NFZ0U,68
977
981
  fusion_bench_config/taskpool/flan-t5_glue_text_generation.yaml,sha256=3MxfXiiwWJHEVgJ7aViTR7kzOV_YxXLL-fNHtnBaWN4,1002
978
982
  fusion_bench_config/taskpool/gpt-2_glue.yaml,sha256=pkiZnblniEU-VMEiKVuoE9Ian0Fk2TTZH527GgZQUCc,949
979
983
  fusion_bench_config/taskpool/nyuv2_taskpool.yaml,sha256=UaxDpFqEPkEz3h2CjFleUxsmnFnaY1aLXerkud8Zm9s,133
980
984
  fusion_bench_config/taskpool/reward_model_evaluation.yaml,sha256=WvhlUnIt3w0MpYNrYTp3tYvn5WOoYoUSj6stBF2ZiWk,438
981
985
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/_template.yaml,sha256=nOr_clBk9Nfbj4Q2DliMbhNqqVnV3OfDA-KKCLhyJoA,1307
982
- fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=Ged9KWmmGl29hq0gXzyG1DlryuLebDQAJIb_t5PvqiE,758
986
+ fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=uYuOXJ3x9RB6TDHjrQl7gNLJxIqitmGnBYkF-mGuv2E,759
983
987
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-base-patch32_svhn_and_mnist.yaml,sha256=N1cbBiAz0dty2uiWoxiAmG2yrF5fbUrmoVGNaaqNU34,1159
984
988
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8.yaml,sha256=eoNUaX-cBjpJJt0BYb-ZCNiIlv1SarX9toiGAwHbES0,227
985
989
  fusion_bench_config/taskpool/CLIPVisionModelTaskPool/clip-vit-classification_TA8_B16.yaml,sha256=R9q595jKLAjuIV6BFqc646l08BJEQ7bSLFAO7QBtZAA,782
@@ -1015,8 +1019,8 @@ fusion_bench_config/taskpool/LMEvalHarnessTaskPool/lm_eval.yaml,sha256=3q-KMuFaM
1015
1019
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-16_TA8.yaml,sha256=GjpiiRownrBCpl-TNwWRW2PYePbF-Cl99jlLNPrK5T4,1017
1016
1020
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-32_TA8.yaml,sha256=WwiYMQKehtJixDPnu5o3vcWe4yJksXTWRqOzm3uVWXQ,1017
1017
1021
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-L-14_TA8.yaml,sha256=xGRt0J9joXTzWUew6DvoYprAWlPXhaVFw5AX4im5VQw,1017
1018
- fusion_bench-0.2.28.dist-info/METADATA,sha256=2m3tF3J5gbcupGjZt_0Md77Tb7h3oDxwwp_Q_sZsdIM,24307
1019
- fusion_bench-0.2.28.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1020
- fusion_bench-0.2.28.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
1021
- fusion_bench-0.2.28.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
1022
- fusion_bench-0.2.28.dist-info/RECORD,,
1022
+ fusion_bench-0.2.30.dist-info/METADATA,sha256=fcL0hcELjiXF7XmX4E2efcc_v1SrlSL9fsqQ7WCxyVM,26298
1023
+ fusion_bench-0.2.30.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1024
+ fusion_bench-0.2.30.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
1025
+ fusion_bench-0.2.30.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
1026
+ fusion_bench-0.2.30.dist-info/RECORD,,
@@ -1,22 +1,9 @@
1
1
  defaults:
2
- - hydra: default
3
- - fabric: auto
4
- # --- Model, Method, Task ---
5
- - modelpool: CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted
6
- - method: dummy # change this to the method you want to use
7
- - taskpool: CLIPVisionModelTaskPool/clip-vit-base-patch32_robustness_corrupted
2
+ - fabric_model_fusion
3
+ - override modelpool: CLIPVisionModelPool/clip-vit-base-patch32_robustness_corrupted
4
+ - override method: dummy # change this to the method you want to use
5
+ - override taskpool: CLIPVisionModelTaskPool/clip-vit-base-patch32_robustness_corrupted
8
6
  - _self_
9
- _target_: fusion_bench.programs.FabricModelFusionProgram
10
- _recursive_: false
11
- fast_dev_run: false # Run a single batch of data to test the model or method
12
- # Run the script without actually running the experiment, use with `print_config=true`.
13
- # You can also use `--cfg` or `-c` to show the configuration instead of running.
14
- dry_run: false
15
- print_config: true # Print the configuration to the console
16
- merged_model_save_path: null # path to save the merged model, use "{log_dir}" to refer to the logger directory, for example `merged_model_save_path=\{log_dir\}/merged_model`
17
- merged_model_save_kwargs: null
18
- report_save_path: null # path to save the result report
19
- print_function_call: true # set to false if you don't want to print the details of instantiate calls
20
- # `corrption` can be one of:
7
+ # `corruption` can be one of:
21
8
  # contrast, gaussian_noise, impulse_noise, jpeg_compression, motion_blur, pixelate, spatter
22
- corruption: ???
9
+ corruption: gaussian_noise