@@ -1334,6 +1334,12 @@ def _find_param(self, obj: dict[str, Any], keys: Iterable[str], optional: bool =
1334
1334
return None
1335
1335
raise KeyError (f"could not find any of: { keys } " )
1336
1336
1337
+ def tensor_force_quant (self , name , new_name , bid , n_dims ):
1338
+ del bid , name , n_dims # unused
1339
+ if ".patch_embd.weight" in new_name :
1340
+ return gguf .GGMLQuantizationType .F16 if self .ftype == gguf .LlamaFileType .MOSTLY_F16 else gguf .GGMLQuantizationType .F32
1341
+ return False
1342
+
1337
1343
1338
1344
@ModelBase .register ("GPTNeoXForCausalLM" )
1339
1345
class GPTNeoXModel (TextModel ):
@@ -2305,10 +2311,9 @@ def set_gguf_parameters(self):
2305
2311
self .gguf_writer .add_vision_use_gelu (True )
2306
2312
2307
2313
def tensor_force_quant (self , name , new_name , bid , n_dims ):
2308
- del bid , new_name , n_dims # unused
2309
2314
if ".embeddings." in name :
2310
2315
return gguf .GGMLQuantizationType .F32
2311
- return False
2316
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
2312
2317
2313
2318
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
2314
2319
del bid # unused
@@ -3296,12 +3301,9 @@ def set_gguf_parameters(self):
3296
3301
self .gguf_writer .add_vision_attention_layernorm_eps (self .global_config .get ("rms_norm_eps" , 1e-6 ))
3297
3302
3298
3303
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3299
- del bid , name , n_dims # unused
3300
- if ".patch_embd." in new_name :
3301
- return gguf .GGMLQuantizationType .F16
3302
3304
if ".position_embd." in new_name :
3303
3305
return gguf .GGMLQuantizationType .F32
3304
- return False
3306
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3305
3307
3306
3308
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
3307
3309
del bid # unused
@@ -3374,10 +3376,9 @@ def generate_extra_tensors(self) -> Iterable[tuple[str, Tensor]]:
3374
3376
yield ("audio_tower.embed_positions.weight" , pos_embd )
3375
3377
3376
3378
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3377
- del bid , new_name , n_dims # unused
3378
3379
if ".conv" in name and ".weight" in name :
3379
3380
return gguf .GGMLQuantizationType .F16
3380
- return False
3381
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3381
3382
3382
3383
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
3383
3384
if name .startswith ("thinker." ):
@@ -3423,12 +3424,9 @@ def set_gguf_parameters(self):
3423
3424
self .gguf_writer .add_vision_projector_scale_factor (int (1.0 / downsample_ratio ))
3424
3425
3425
3426
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3426
- del bid , name , n_dims # unused
3427
- if ".patch_embd." in new_name :
3428
- return gguf .GGMLQuantizationType .F16
3429
3427
if ".position_embd." in new_name :
3430
3428
return gguf .GGMLQuantizationType .F32
3431
- return False
3429
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3432
3430
3433
3431
def _mapping_interns1_name (self , name ):
3434
3432
names_map = {
@@ -5062,13 +5060,12 @@ def set_gguf_parameters(self):
5062
5060
self .gguf_writer .add_vision_projector_scale_factor (proj_scale_factor )
5063
5061
5064
5062
def tensor_force_quant (self , name , new_name , bid , n_dims ):
5065
- del bid , new_name , n_dims # unused
5066
5063
# related to https://github.com/ggml-org/llama.cpp/issues/13025
5067
5064
if "input_projection" in name :
5068
5065
return gguf .GGMLQuantizationType .F16
5069
5066
if ".embeddings." in name :
5070
5067
return gguf .GGMLQuantizationType .F32
5071
- return False
5068
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
5072
5069
5073
5070
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
5074
5071
del bid # unused
@@ -7727,10 +7724,9 @@ def set_gguf_parameters(self):
7727
7724
self .gguf_writer .add_audio_attention_layernorm_eps (self .hparams .get ("layer_norm_eps" , 1e-5 ))
7728
7725
7729
7726
def tensor_force_quant (self , name , new_name , bid , n_dims ):
7730
- del bid , new_name , n_dims # unused
7731
7727
if ".conv" in name and ".weight" in name :
7732
7728
return gguf .GGMLQuantizationType .F16
7733
- return False
7729
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
7734
7730
7735
7731
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
7736
7732
del bid # unused
0 commit comments