@@ -51,6 +51,7 @@ class Model:
51
51
endianess : gguf .GGUFEndian
52
52
use_temp_file : bool
53
53
lazy : bool
54
+ model_name : str | None
54
55
part_names : list [str ]
55
56
is_safetensors : bool
56
57
hparams : dict [str , Any ]
@@ -63,7 +64,7 @@ class Model:
63
64
# subclasses should define this!
64
65
model_arch : gguf .MODEL_ARCH
65
66
66
- def __init__ (self , dir_model : Path , ftype : gguf .LlamaFileType , fname_out : Path , is_big_endian : bool , use_temp_file : bool , eager : bool ):
67
+ def __init__ (self , dir_model : Path , ftype : gguf .LlamaFileType , fname_out : Path , is_big_endian : bool , use_temp_file : bool , eager : bool , model_name : str | None ):
67
68
if type (self ) is Model :
68
69
raise TypeError (f"{ type (self ).__name__ !r} should not be directly instantiated" )
69
70
self .dir_model = dir_model
@@ -72,6 +73,7 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path,
72
73
self .endianess = gguf .GGUFEndian .BIG if is_big_endian else gguf .GGUFEndian .LITTLE
73
74
self .use_temp_file = use_temp_file
74
75
self .lazy = not eager
76
+ self .model_name = model_name
75
77
self .part_names = Model .get_model_part_names (self .dir_model , ".safetensors" )
76
78
self .is_safetensors = len (self .part_names ) > 0
77
79
if not self .is_safetensors :
@@ -181,7 +183,7 @@ def map_tensor_name(self, name: str, try_suffixes: Sequence[str] = (".weight", "
181
183
return new_name
182
184
183
185
def set_gguf_parameters (self ):
184
- self .gguf_writer .add_name (self .dir_model .name )
186
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
185
187
self .gguf_writer .add_block_count (self .block_count )
186
188
187
189
if (n_ctx := self .find_hparam (["max_position_embeddings" , "n_ctx" ], optional = True )) is not None :
@@ -661,7 +663,7 @@ class GPTNeoXModel(Model):
661
663
def set_gguf_parameters (self ):
662
664
block_count = self .hparams ["num_hidden_layers" ]
663
665
664
- self .gguf_writer .add_name (self .dir_model .name )
666
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
665
667
self .gguf_writer .add_context_length (self .hparams ["max_position_embeddings" ])
666
668
self .gguf_writer .add_embedding_length (self .hparams ["hidden_size" ])
667
669
self .gguf_writer .add_block_count (block_count )
@@ -794,7 +796,7 @@ def set_vocab(self):
794
796
795
797
def set_gguf_parameters (self ):
796
798
block_count = self .hparams ["n_layers" ]
797
- self .gguf_writer .add_name (self .dir_model .name )
799
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
798
800
self .gguf_writer .add_context_length (self .hparams ["max_seq_len" ])
799
801
self .gguf_writer .add_embedding_length (self .hparams ["d_model" ])
800
802
self .gguf_writer .add_block_count (block_count )
@@ -846,7 +848,7 @@ def set_gguf_parameters(self):
846
848
raise ValueError ("gguf: can not find ctx length parameter." )
847
849
848
850
self .gguf_writer .add_file_type (self .ftype )
849
- self .gguf_writer .add_name (self .dir_model .name )
851
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
850
852
self .gguf_writer .add_source_hf_repo (hf_repo )
851
853
self .gguf_writer .add_tensor_data_layout ("Meta AI original pth" )
852
854
self .gguf_writer .add_context_length (ctx_length )
@@ -883,7 +885,7 @@ def set_gguf_parameters(self):
883
885
else :
884
886
raise ValueError ("gguf: can not find ctx length parameter." )
885
887
886
- self .gguf_writer .add_name (self .dir_model .name )
888
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
887
889
self .gguf_writer .add_source_hf_repo (hf_repo )
888
890
self .gguf_writer .add_tensor_data_layout ("Meta AI original pth" )
889
891
self .gguf_writer .add_context_length (ctx_length )
@@ -1006,7 +1008,7 @@ def set_gguf_parameters(self):
1006
1008
else :
1007
1009
raise ValueError ("gguf: can not find ctx length parameter." )
1008
1010
1009
- self .gguf_writer .add_name (self .dir_model .name )
1011
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
1010
1012
self .gguf_writer .add_source_hf_repo (hf_repo )
1011
1013
self .gguf_writer .add_tensor_data_layout ("Meta AI original pth" )
1012
1014
self .gguf_writer .add_context_length (ctx_length )
@@ -1202,7 +1204,7 @@ def set_gguf_parameters(self):
1202
1204
hparams = self .hparams
1203
1205
block_count = hparams ["num_hidden_layers" ]
1204
1206
1205
- self .gguf_writer .add_name (self .dir_model .name )
1207
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
1206
1208
self .gguf_writer .add_context_length (hparams ["max_position_embeddings" ])
1207
1209
self .gguf_writer .add_embedding_length (hparams ["hidden_size" ])
1208
1210
self .gguf_writer .add_block_count (block_count )
@@ -1677,7 +1679,7 @@ class GPT2Model(Model):
1677
1679
model_arch = gguf .MODEL_ARCH .GPT2
1678
1680
1679
1681
def set_gguf_parameters (self ):
1680
- self .gguf_writer .add_name (self .dir_model .name )
1682
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
1681
1683
self .gguf_writer .add_block_count (self .hparams ["n_layer" ])
1682
1684
self .gguf_writer .add_context_length (self .hparams ["n_ctx" ])
1683
1685
self .gguf_writer .add_embedding_length (self .hparams ["n_embd" ])
@@ -2244,7 +2246,7 @@ def set_gguf_parameters(self):
2244
2246
hparams = self .hparams
2245
2247
block_count = hparams ["num_hidden_layers" ]
2246
2248
2247
- self .gguf_writer .add_name (self .dir_model .name )
2249
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
2248
2250
self .gguf_writer .add_context_length (hparams ["max_position_embeddings" ])
2249
2251
self .gguf_writer .add_embedding_length (hparams ["hidden_size" ])
2250
2252
self .gguf_writer .add_block_count (block_count )
@@ -2344,7 +2346,7 @@ def set_gguf_parameters(self):
2344
2346
# Fail early for models which don't have a block expansion factor of 2
2345
2347
assert d_inner == 2 * d_model
2346
2348
2347
- self .gguf_writer .add_name (self .dir_model .name )
2349
+ self .gguf_writer .add_name (self .dir_model .name if self . model_name is None else self . model_name )
2348
2350
self .gguf_writer .add_context_length (2 ** 20 ) # arbitrary value; for those who use the default
2349
2351
self .gguf_writer .add_embedding_length (d_model )
2350
2352
self .gguf_writer .add_feed_forward_length (0 ) # unused, but seemingly required when loading
@@ -2846,7 +2848,7 @@ def main() -> None:
2846
2848
logger .error (f"Model { hparams ['architectures' ][0 ]} is not supported" )
2847
2849
sys .exit (1 )
2848
2850
2849
- model_instance = model_class (dir_model , ftype_map [args .outtype ], fname_out , args .bigendian , args .use_temp_file , args .no_lazy )
2851
+ model_instance = model_class (dir_model , ftype_map [args .outtype ], fname_out , args .bigendian , args .use_temp_file , args .no_lazy , args . model_name )
2850
2852
2851
2853
logger .info ("Set model parameters" )
2852
2854
model_instance .set_gguf_parameters ()
0 commit comments