fusion-bench 0.2.18__py3-none-any.whl → 0.2.19__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.
@@ -14,6 +14,7 @@ from torch import nn
14
14
  from transformers import AutoConfig
15
15
 
16
16
  from fusion_bench.utils.dtype import parse_dtype
17
+ from fusion_bench.utils.packages import import_object
17
18
 
18
19
  if TYPE_CHECKING:
19
20
  from transformers import PretrainedConfig
@@ -54,10 +55,13 @@ class LazyStateDict:
54
55
  """
55
56
 
56
57
  _local_path: str
58
+ """local path to the checkpoint."""
57
59
  _state_dict_cache: Optional[Dict]
60
+ """Cache for the state dict, if enabled."""
58
61
  _index_filename: Optional[str]
59
62
  _checkpoint_files: Optional[List[str]]
60
- _index: Optional[Dict]
63
+ _index: Optional[Dict[str, str]]
64
+ """Mapping of parameter names to checkpoint files."""
61
65
 
62
66
  def __init__(
63
67
  self,
@@ -71,7 +75,22 @@ class LazyStateDict:
71
75
  hf_cache_dir: Optional[str] = None,
72
76
  hf_proxies: Optional[Dict] = None,
73
77
  ):
78
+ """
79
+ Args:
80
+ checkpoint (str): Path to the checkpoint file or directory.
81
+ meta_module_class (Type[nn.Module], optional): Class of the meta module to instantiate.
82
+ meta_module (nn.Module, optional): Pre-initialized meta module.
83
+ cache_state_dict (bool): Whether to cache the state dict in memory.
84
+ torch_dtype (torch.dtype, optional): The dtype to use for the tensors.
85
+ device (str): The device to load the tensors onto.
86
+ hf_revision (str, optional): The revision of the model to download from Hugging Face Hub.
87
+ hf_cache_dir (str, optional): The cache directory for Hugging Face models.
88
+ hf_proxies (Dict, optional): Proxies to use for downloading from Hugging Face Hub.
89
+ """
90
+ self.cache_state_dict = cache_state_dict
74
91
  self.meta_module_class = meta_module_class
92
+ if isinstance(self.meta_module_class, str):
93
+ self.meta_module_class = import_object(self.meta_module_class)
75
94
  self.meta_module = meta_module
76
95
  if self.meta_module_class is not None:
77
96
  if self.meta_module is not None:
@@ -110,6 +129,18 @@ class LazyStateDict:
110
129
  self._state_dict_cache = {}
111
130
  else:
112
131
  self._state_dict_cache = None
132
+ elif len(self._checkpoint_files) == 1 and self._checkpoint_files[0].endswith(
133
+ SAFE_WEIGHTS_NAME
134
+ ):
135
+ # let the keys of self._index be the keys of the state dict, the values are the checkpoint file
136
+ with safe_open(
137
+ self._checkpoint_files[0], framework="pt", device=device
138
+ ) as f:
139
+ self._index = {key: self._checkpoint_files[0] for key in f.keys()}
140
+ if cache_state_dict:
141
+ self._state_dict_cache = {}
142
+ else:
143
+ self._state_dict_cache = None
113
144
  elif len(self._checkpoint_files) == 1 and self._checkpoint_files[0].endswith(
114
145
  WEIGHTS_NAME
115
146
  ):
@@ -137,7 +168,11 @@ class LazyStateDict:
137
168
  def config(self) -> "PretrainedConfig":
138
169
  return AutoConfig.from_pretrained(self._checkpoint)
139
170
 
140
- def state_dict(self) -> "LazyStateDict":
171
+ def state_dict(self, keep_vars: bool = False) -> "LazyStateDict":
172
+ """
173
+ Args:
174
+ keep_vars (bool): Ignored, as LazyStateDict does not support keep_vars. Just for compatibility.
175
+ """
141
176
  return self
142
177
 
143
178
  def _resolve_checkpoint_files(self, checkpoint: str):
@@ -255,6 +290,21 @@ class LazyStateDict:
255
290
  )
256
291
  return tensor
257
292
 
293
+ def __setitem__(self, key: str, value: torch.Tensor) -> None:
294
+ """
295
+ Set a tensor in the LazyStateDict. This will update the state dict cache if it is enabled.
296
+ """
297
+ assert key in list(
298
+ self.keys()
299
+ ), "KeyError: Cannot set a tensor for a key that does not exist in the LazyStateDict."
300
+ if self._state_dict_cache is not None:
301
+ self._state_dict_cache[key] = value
302
+ else:
303
+ log.warning(
304
+ "State dict cache is disabled, setting a tensor will not update the cache."
305
+ )
306
+ self._state_dict_cache = {key: value}
307
+
258
308
  def __contains__(self, key: str) -> bool:
259
309
  if self._state_dict_cache is not None and key in self._state_dict_cache:
260
310
  return True
@@ -314,7 +364,7 @@ class LazyStateDict:
314
364
 
315
365
  def __repr__(self) -> str:
316
366
  if self._index is not None:
317
- return f"{self.__class__.__name__}(index={self._index})"
367
+ return f"{self.__class__.__name__}(keys={list(self.keys())})"
318
368
  else:
319
369
  return (
320
370
  f"{self.__class__.__name__}(checkpoint_files={self._checkpoint_files})"
@@ -336,3 +386,25 @@ class LazyStateDict:
336
386
  raise RuntimeError(
337
387
  "Cannot get submodule because meta_module is not provided."
338
388
  )
389
+
390
+ def load_state_dict(
391
+ self, state_dict: Dict[str, torch.Tensor], strict: bool = True
392
+ ) -> None:
393
+ """
394
+ Load a state dict into this LazyStateDict.
395
+ This method is only for compatibility with nn.Module and it overrides the cache of LazyStateDict.
396
+
397
+ Args:
398
+ state_dict (Dict[str, torch.Tensor]): The state dict to load.
399
+ strict (bool): Whether to enforce that all keys in the state dict are present in this LazyStateDict.
400
+ """
401
+ log.warning(
402
+ "Loading state dict into LazyStateDict is not recommended, as it may lead to unexpected behavior. "
403
+ "Use with caution."
404
+ )
405
+ if strict:
406
+ for key in state_dict:
407
+ if key not in self:
408
+ raise KeyError(f"Key {key} not found in LazyStateDict.")
409
+ for key, value in state_dict.items():
410
+ self[key] = value
@@ -1,6 +1,6 @@
1
1
  from typing import Iterable, List
2
2
 
3
- __all__ = ["first", "has_length", "join_list"]
3
+ __all__ = ["first", "has_length", "join_list", "attr_equal"]
4
4
 
5
5
 
6
6
  def first(iterable: Iterable):
@@ -23,3 +23,21 @@ def join_list(list_of_list: List[List]):
23
23
  for item in list_of_list:
24
24
  ans.extend(item)
25
25
  return ans
26
+
27
+
28
+ def attr_equal(obj, attr: str, value):
29
+ """
30
+ Check if the attribute of the object is equal to the given value.
31
+ Returns False if the attribute does not exist or is not equal to the value.
32
+
33
+ Args:
34
+ obj: The object to check.
35
+ attr (str): The attribute name to check.
36
+ value: The value to compare against.
37
+
38
+ Returns:
39
+ bool: True if the attribute exists and is equal to the value, False otherwise.
40
+ """
41
+ if not hasattr(obj, attr):
42
+ return False
43
+ return getattr(obj, attr) == value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fusion_bench
3
- Version: 0.2.18
3
+ Version: 0.2.19
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
@@ -1,4 +1,4 @@
1
- fusion_bench/__init__.py,sha256=68dF-zPvb8E2MgYnmgIJsxIHJBy1MApKeOrRZvQEVlg,421
1
+ fusion_bench/__init__.py,sha256=vu3nMzKuiiHkbH13m8SOzj8qYU-n1PreBipWs_xjZig,1937
2
2
  fusion_bench/__main__.py,sha256=weUjxpP3ULnDgUxCehdbmoCM9cqfkhDhGB85tAF5qoE,81
3
3
  fusion_bench/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  fusion_bench/compat/method/__init__.py,sha256=A9pbskEYB4_ryD6sVrR0qI4eVYsbI7sExbhPeypP3fQ,5757
@@ -12,6 +12,7 @@ fusion_bench/compat/taskpool/base_pool.py,sha256=1AIZBxqUJgshq0Xo3Yo9es4b-8X8ksN
12
12
  fusion_bench/compat/taskpool/clip_image_classification.py,sha256=ZYZsbsE-fPzm6yafA0p-6wcDwVGryLmtXXtuEXeQbTY,7425
13
13
  fusion_bench/compat/taskpool/flan_t5_glue_text_generation.py,sha256=JsdAE72V1C1eDcA1WCa0PIcSDTrGPclNKFDQ9G-hYts,5786
14
14
  fusion_bench/constants/__init__.py,sha256=Pyc4dLbl6oNduOCdnpeXQ9LDyVoIrkdl9eZ_l2axIv8,41
15
+ fusion_bench/constants/banner.py,sha256=fuIO36ETKlS6a3wbwZn-rA2OswSCfOYyyhZ0Fnal1s4,1656
15
16
  fusion_bench/constants/clip_vision.py,sha256=k0NRfiacxRaswdxUj91-e3jcP1u-RmvsaaYdqohcQVU,310
16
17
  fusion_bench/constants/paths.py,sha256=DVZyQ9FLhkyUdw6ARpXUCAMf_B8hFyJ6UNI-oYly3pE,591
17
18
  fusion_bench/dataset/__init__.py,sha256=OJiYmcqz0Vm5O7mE4PB5QFJeL_KjrsseQTRsQATGTm4,1050
@@ -47,7 +48,7 @@ fusion_bench/method/base_algorithm.py,sha256=UuITuGnSskcKEwUVINuPoWJUwqGm9AIgyQI
47
48
  fusion_bench/method/dummy.py,sha256=hb1y6LR_geRZ5eRgGwt5zJUcHYorCeIbs5i76CvurUc,1031
48
49
  fusion_bench/method/ensemble.py,sha256=rGxvJTeorfcBuE_e0XO-0-MAc9un7ZCC46ikKGuAcN4,3077
49
50
  fusion_bench/method/model_recombination.py,sha256=2tviqmYSPOL0_Ktv8_gt_YzQ4tyCANHxXquUot_3Cgo,5360
50
- fusion_bench/method/simple_average.py,sha256=vVzlfdf0mPHeY3VeOLrcWI4sWoLBW0gaX0lusjePVyQ,4539
51
+ fusion_bench/method/simple_average.py,sha256=A_VYtHhECcxY0_Mppe5ThOY-ip6XUvvtPHsaQKSmDPc,4971
51
52
  fusion_bench/method/ada_svd/__init__.py,sha256=4XzQbbvE9HI3NtEmEFvo8iC3ds_85vJXe7P7qJfL7kk,77
52
53
  fusion_bench/method/ada_svd/clip_vision.py,sha256=XvXgIdlShAREMsubRgphyycGrhWqSnuVBo6S9bNYSd0,12581
53
54
  fusion_bench/method/adamerging/__init__.py,sha256=nt0saBT_3bqghk-pINQ-XCWm9UWwSZllu4R1sDuAJAA,376
@@ -120,7 +121,7 @@ fusion_bench/method/linear/__init__.py,sha256=ChfkoOEAb-rUKwpowFPel-a1hRfS8gCrbn
120
121
  fusion_bench/method/linear/expo.py,sha256=LCHTWlsPm1Mjhrq0mfpWLVC7skkI9ZksGduy3TxULoU,3939
121
122
  fusion_bench/method/linear/linear_interpolation.py,sha256=IONw9BPiRJouY8bE9Abfyz7qVI_1B1n8KGZa0f7Pza8,2157
122
123
  fusion_bench/method/linear/llama_expo.py,sha256=ccECjhAqcFmzOIDyZ7e_aPzTM2Kj8u2D8TJytyz18YM,8476
123
- fusion_bench/method/linear/simple_average_for_llama.py,sha256=7JlVrmTMmrePvNGnZNoxSuCSq2Vu7cPQzjGC3WWUXBE,2079
124
+ fusion_bench/method/linear/simple_average_for_llama.py,sha256=OcjvfG5nuUzdo3P4Xi1mO6ApRu51YAUYXG5lAMeD6rg,2711
124
125
  fusion_bench/method/linear/task_arithmetic_for_llama.py,sha256=4SZpiTD7OzhWUXtcdK3PYdXbBGyDqiZd7oZOQ0lraN0,1963
125
126
  fusion_bench/method/lm_finetune/__init__.py,sha256=IFGAqXujX3Fabzl_tC6zZyOyPFJfVziL0qFtj5MVxj0,149
126
127
  fusion_bench/method/lm_finetune/bradley_terry_rm.py,sha256=ys_td1IeL3bzPTE0Cixlj2JooCaB7qseRwSDwroAk5A,18777
@@ -252,7 +253,7 @@ fusion_bench/modelpool/huggingface_gpt2_classification.py,sha256=j8nicVwtoLXY4RP
252
253
  fusion_bench/modelpool/lazy_state_dict_pool.py,sha256=HtEA85rqSCHfsIddI5sKDcZf5kSuHNwrb8fF1TUSTr0,652
253
254
  fusion_bench/modelpool/nyuv2_modelpool.py,sha256=btuXmYxwfjI6MnGakhoOf53Iyb9fxYH20CavGTrTcnA,1375
254
255
  fusion_bench/modelpool/causal_lm/__init__.py,sha256=F432-aDIgAbUITj4GNZS9dgUKKhaDMCbTeHB-9MecaQ,99
255
- fusion_bench/modelpool/causal_lm/causal_lm.py,sha256=dkumbKspfEJhp3gtlZC71zUutdfJOKpKZnHy5z97qbc,6727
256
+ fusion_bench/modelpool/causal_lm/causal_lm.py,sha256=7-mUWVGVsXyljH_06CmIyReClKx_xVjy5zeXTJcLQIk,8085
256
257
  fusion_bench/modelpool/clip_vision/__init__.py,sha256=3b9gN2bWUsoA1EmpitnIMnIlX7nklxbkn4WJ0QJtS2c,43
257
258
  fusion_bench/modelpool/clip_vision/modelpool.py,sha256=ADgzslXwYd95x42V26XvgS09WEKGfhH_AYuQmWKdT0w,5887
258
259
  fusion_bench/modelpool/openclip_vision/__init__.py,sha256=QDmAitKqUwRygN9QncdS_kGWZdfTKL4uUifC8xh9c10,47
@@ -384,7 +385,7 @@ fusion_bench/tasks/clip_classification/fer2013.py,sha256=_oc2fdV308ywcb16rLZxBAd
384
385
  fusion_bench/tasks/clip_classification/flower102.py,sha256=p_JMs6HCCPZBKe7PTXt0WABsd-KcgmpBkxDSlJJaVVY,2096
385
386
  fusion_bench/tasks/clip_classification/food101.py,sha256=Oepvws5byGxrHswXt3ILG3UEPiZaFXYqK1yJqm1uYVE,1968
386
387
  fusion_bench/tasks/clip_classification/gtsrb.py,sha256=Dsaz-XNz6oA9nNTF2C2iXmmhhVz-gsw-WcGuFTqjzl4,2677
387
- fusion_bench/tasks/clip_classification/imagenet.py,sha256=Az7gnFuecVCDkP3mMjiLwOgrYAf_cxz177kkdivComU,38815
388
+ fusion_bench/tasks/clip_classification/imagenet.py,sha256=EhZ2iYAc8oApr5BU_vgM3cDY879anTkvb-5hfi-B7m4,48826
388
389
  fusion_bench/tasks/clip_classification/kmnist.py,sha256=Ohce6aVaXkPnviDaZYXANMhhBNHZXO3FnXYxYG-ISVg,311
389
390
  fusion_bench/tasks/clip_classification/mnist.py,sha256=-gQpHz_kCXmUOtAsM8FBUYFjlwcbAgnqpuVtRfCJ3JM,129
390
391
  fusion_bench/tasks/clip_classification/mongo_leaf_disease.py,sha256=L_2IgnzbZdGZrX27VNGu1rC-N3Aj4fetIXB9HM1QZkI,519
@@ -417,8 +418,8 @@ fusion_bench/utils/hydra_utils.py,sha256=TklUDKDEZlg4keI-TEZiqh4gFjr9-61Rt1RMlqk
417
418
  fusion_bench/utils/instantiate_utils.py,sha256=57D8YP25OO-ArltOSsHDKtnNcA44m1yAq-1wKZc2YVI,17523
418
419
  fusion_bench/utils/json.py,sha256=sVCqbm9mmyHybiui-O57KFt_ULrjLtN2wipSo6VDvqE,2533
419
420
  fusion_bench/utils/lazy_imports.py,sha256=v5l9cpHXPMaz1IVBmB5oOqefYr9vA3XvP340xT7Wy18,2796
420
- fusion_bench/utils/lazy_state_dict.py,sha256=xb_NM4F653_HiPK8OClG3oTPuPk4SaarfCtLLg87Yi8,13347
421
- fusion_bench/utils/misc.py,sha256=Rgec7eKcGIcp9BaFVdm2pzx0J-L8AyX5qWuiYNTGvTc,530
421
+ fusion_bench/utils/lazy_state_dict.py,sha256=Hu8PkhbJcUikXJxWUJ7vabu2uDbnUUF6UsRS0k8i71U,16841
422
+ fusion_bench/utils/misc.py,sha256=Qc3_H8UMooOp81Ow89zqvM1sNPIybq1cbq7s4-4lsfU,1082
422
423
  fusion_bench/utils/packages.py,sha256=L64paDi1SmeT3gRvRV6LaqB8AeGdzIYWIRI31qSQbSk,2110
423
424
  fusion_bench/utils/parameters.py,sha256=2vs8vo2o-nRA9NOMOYFye-X8-aHQZoYe54tM6n0r0RE,11757
424
425
  fusion_bench/utils/path.py,sha256=hRA1CPHNnTYBUmzbftH77sHvn4aTuybEK5Tth1skP-k,531
@@ -436,7 +437,7 @@ fusion_bench/utils/plot/token_notebook.py,sha256=bsntXf46Zz_RavTxNiB9c3-KvHw7LFw
436
437
  fusion_bench/utils/strenum/__init__.py,sha256=id9ORi1uXrDxhbmVxitJ1KDwLS4H3AAwFpaK5h1cQzw,8531
437
438
  fusion_bench/utils/strenum/_name_mangler.py,sha256=o11M5-bURW2RBvRTYXFQIPNeqLzburdoWLIqk8X3ydw,3397
438
439
  fusion_bench/utils/strenum/_version.py,sha256=6JQRo9LcvODbCOeVFYQb9HNJ_J9XiG_Zbn8ws2A3BV8,18466
439
- fusion_bench-0.2.18.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
440
+ fusion_bench-0.2.19.dist-info/licenses/LICENSE,sha256=nhnOJlw4CPuPVE0qvkGmxfFgHmKi-6nzXvTu8t0NUdg,1066
440
441
  fusion_bench_config/README.md,sha256=Lc8YSBJ5oxf9KV5kKDivJ9LRyGuraGQPmBbgbdVA-j4,703
441
442
  fusion_bench_config/clip-vit-base-patch32_robustness_corrupted.yaml,sha256=7IxLQoLRz-sRWyV8Vqc5kQcmYE_9YQz2_77pmvAkum8,1207
442
443
  fusion_bench_config/fabric_model_fusion.yaml,sha256=YwJx_aUXm4ca4_mVItKVUOesMvmBBRGudQIOqgc1EP8,974
@@ -795,6 +796,7 @@ fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TALL14_
795
796
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TALL20.yaml,sha256=yC2U_IoBAhawgSahY_mdi7ea5kJ2SSRPJ2FM-bA-E9M,510
796
797
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_TALL20_model_only.yaml,sha256=a2nviqKSRNoQScYVbj5buq0PbUzmYJwNWdPBUoLaeV8,386
797
798
  fusion_bench_config/modelpool/CLIPVisionModelPool/clip-vit-large-patch14_individual.yaml,sha256=G6yvZuWOKb75RLn6tu2LPnwHUyvoxPfL_wqb_B11aZo,549
799
+ fusion_bench_config/modelpool/CausalLMPool/Qwen2.5-1.5B_math_and_coder.yaml,sha256=HZXjqbZKpSZCHb-G8qjj03PcvXg_8mrAuewDHZp0oEw,263
798
800
  fusion_bench_config/modelpool/CausalLMPool/deepseek-v2-lite.yaml,sha256=8gr8ZtgegSHV0GHtJBiEgdYbRe8UHhO4_y8dayxZChk,506
799
801
  fusion_bench_config/modelpool/CausalLMPool/llama_alpaca_cleaned.yaml,sha256=oDsZkuAoh1mWUC7jZNzw8794zgX2bV5Z0esXpvbTs-c,643
800
802
  fusion_bench_config/modelpool/CausalLMPool/llama_codealpaca.yaml,sha256=FuUsBrvk3_bQiciMRlNsO5vp6AKHQM_-g-8bmU8251w,641
@@ -875,8 +877,8 @@ fusion_bench_config/taskpool/LMEvalHarnessTaskPool/lm_eval.yaml,sha256=3q-KMuFaM
875
877
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-16_TA8.yaml,sha256=GjpiiRownrBCpl-TNwWRW2PYePbF-Cl99jlLNPrK5T4,1017
876
878
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-B-32_TA8.yaml,sha256=WwiYMQKehtJixDPnu5o3vcWe4yJksXTWRqOzm3uVWXQ,1017
877
879
  fusion_bench_config/taskpool/OpenCLIPVisionModelTaskPool/ViT-L-14_TA8.yaml,sha256=xGRt0J9joXTzWUew6DvoYprAWlPXhaVFw5AX4im5VQw,1017
878
- fusion_bench-0.2.18.dist-info/METADATA,sha256=igyW5oJQzJfuEagCgyNbi0MvXp-Rz56u3FPtIHJFG5Y,21966
879
- fusion_bench-0.2.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
880
- fusion_bench-0.2.18.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
881
- fusion_bench-0.2.18.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
882
- fusion_bench-0.2.18.dist-info/RECORD,,
880
+ fusion_bench-0.2.19.dist-info/METADATA,sha256=5pl4dtlAYklMMiMLBeKNaHqCQRd7sLSct7aIh9JIoGY,21966
881
+ fusion_bench-0.2.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
882
+ fusion_bench-0.2.19.dist-info/entry_points.txt,sha256=iUQ8MCJvda7HP4vYh2n1Teoapb4G9PBVYZkAfcc5SHU,116
883
+ fusion_bench-0.2.19.dist-info/top_level.txt,sha256=BuO4TL6iHL_2yPBUX9-LlIrHRczA_BNMIFwweK0PQEI,13
884
+ fusion_bench-0.2.19.dist-info/RECORD,,
@@ -0,0 +1,11 @@
1
+ _target_: fusion_bench.modelpool.CausalLMPool
2
+ _recursive_: false
3
+
4
+ load_lazy: false
5
+ models:
6
+ _pretrained_: Qwen/Qwen2.5-1.5B
7
+ expert_1: Qwen/Qwen2.5-Math-1.5B
8
+ expert_2: Qwen/Qwen2.5-Coder-1.5B
9
+ model_kwargs:
10
+ torch_dtype: bfloat16
11
+ tokenizer: Qwen/Qwen2.5-1.5B