@@ -1344,6 +1344,12 @@ def _find_param(self, obj: dict[str, Any], keys: Iterable[str], optional: bool =
1344
1344
return None
1345
1345
raise KeyError (f"could not find any of: { keys } " )
1346
1346
1347
+ def tensor_force_quant (self , name , new_name , bid , n_dims ):
1348
+ del bid , name , n_dims # unused
1349
+ if ".patch_embd.weight" in new_name :
1350
+ return gguf .GGMLQuantizationType .F16 if self .ftype == gguf .LlamaFileType .MOSTLY_F16 else gguf .GGMLQuantizationType .F32
1351
+ return False
1352
+
1347
1353
1348
1354
@ModelBase .register ("GPTNeoXForCausalLM" )
1349
1355
class GPTNeoXModel (TextModel ):
@@ -2315,10 +2321,9 @@ def set_gguf_parameters(self):
2315
2321
self .gguf_writer .add_vision_use_gelu (True )
2316
2322
2317
2323
def tensor_force_quant (self , name , new_name , bid , n_dims ):
2318
- del bid , new_name , n_dims # unused
2319
2324
if ".embeddings." in name :
2320
2325
return gguf .GGMLQuantizationType .F32
2321
- return False
2326
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
2322
2327
2323
2328
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
2324
2329
del bid # unused
@@ -3306,12 +3311,9 @@ def set_gguf_parameters(self):
3306
3311
self .gguf_writer .add_vision_attention_layernorm_eps (self .global_config .get ("rms_norm_eps" , 1e-6 ))
3307
3312
3308
3313
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3309
- del bid , name , n_dims # unused
3310
- if ".patch_embd." in new_name :
3311
- return gguf .GGMLQuantizationType .F16
3312
3314
if ".position_embd." in new_name :
3313
3315
return gguf .GGMLQuantizationType .F32
3314
- return False
3316
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3315
3317
3316
3318
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
3317
3319
del bid # unused
@@ -3384,10 +3386,9 @@ def generate_extra_tensors(self) -> Iterable[tuple[str, Tensor]]:
3384
3386
yield ("audio_tower.embed_positions.weight" , pos_embd )
3385
3387
3386
3388
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3387
- del bid , new_name , n_dims # unused
3388
3389
if ".conv" in name and ".weight" in name :
3389
3390
return gguf .GGMLQuantizationType .F16
3390
- return False
3391
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3391
3392
3392
3393
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
3393
3394
if name .startswith ("thinker." ):
@@ -3433,12 +3434,9 @@ def set_gguf_parameters(self):
3433
3434
self .gguf_writer .add_vision_projector_scale_factor (int (1.0 / downsample_ratio ))
3434
3435
3435
3436
def tensor_force_quant (self , name , new_name , bid , n_dims ):
3436
- del bid , name , n_dims # unused
3437
- if ".patch_embd." in new_name :
3438
- return gguf .GGMLQuantizationType .F16
3439
3437
if ".position_embd." in new_name :
3440
3438
return gguf .GGMLQuantizationType .F32
3441
- return False
3439
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
3442
3440
3443
3441
def _mapping_interns1_name (self , name ):
3444
3442
names_map = {
@@ -5072,13 +5070,12 @@ def set_gguf_parameters(self):
5072
5070
self .gguf_writer .add_vision_projector_scale_factor (proj_scale_factor )
5073
5071
5074
5072
def tensor_force_quant (self , name , new_name , bid , n_dims ):
5075
- del bid , new_name , n_dims # unused
5076
5073
# related to https://github.com/ggml-org/llama.cpp/issues/13025
5077
5074
if "input_projection" in name :
5078
5075
return gguf .GGMLQuantizationType .F16
5079
5076
if ".embeddings." in name :
5080
5077
return gguf .GGMLQuantizationType .F32
5081
- return False
5078
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
5082
5079
5083
5080
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
5084
5081
del bid # unused
@@ -7737,10 +7734,9 @@ def set_gguf_parameters(self):
7737
7734
self .gguf_writer .add_audio_attention_layernorm_eps (self .hparams .get ("layer_norm_eps" , 1e-5 ))
7738
7735
7739
7736
def tensor_force_quant (self , name , new_name , bid , n_dims ):
7740
- del bid , new_name , n_dims # unused
7741
7737
if ".conv" in name and ".weight" in name :
7742
7738
return gguf .GGMLQuantizationType .F16
7743
- return False
7739
+ return super (). tensor_force_quant ( name , new_name , bid , n_dims )
7744
7740
7745
7741
def modify_tensors (self , data_torch : Tensor , name : str , bid : int | None ) -> Iterable [tuple [str , Tensor ]]:
7746
7742
del bid # unused
0 commit comments