Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9a6062d

Browse filesBrowse files
committed
covert-hf-to-gguf.py: refactor to use get_model_name()
1 parent 3189f15 commit 9a6062d
Copy full SHA for 9a6062d

File tree

Expand file treeCollapse file tree

1 file changed

+15
-36
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+15
-36
lines changed

‎convert-hf-to-gguf.py

Copy file name to clipboardExpand all lines: convert-hf-to-gguf.py
+15-36Lines changed: 15 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ class SentencePieceTokenTypes(IntEnum):
8484
class Model:
8585
_model_classes: dict[str, type[Model]] = {}
8686

87+
model_name: str
8788
dir_model: Path
8889
ftype: int
8990
is_big_endian: bool
@@ -132,20 +133,28 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path,
132133
logger.info(f"choosing --outtype bf16 from first tensor type ({first_tensor.dtype})")
133134
self.ftype = gguf.LlamaFileType.MOSTLY_BF16
134135

135-
# Generate default filename based on model specification and available metadata
136-
def get_model_name(metadata, dir_model):
136+
# Set model name based on latest metadata either provided or calculated from environment
137+
def get_model_name(metadata, hyperparameters, dir_model, model_arch):
137138
if metadata is not None and metadata.name is not None:
139+
# Explicit Metadata Was Provided By User
138140
return metadata.name
141+
elif hyperparameters is not None and "model_type" in hyperparameters:
142+
# Hugging Face Hyperparameter Model Type Already Provided
143+
return hyperparameters["model_type"]
139144
elif dir_model is not None and dir_model.name is not None:
145+
# Use directory folder name
140146
return dir_model.name
141-
return None
147+
else:
148+
return gguf.MODEL_ARCH_NAMES[model_arch]
149+
self.model_name = get_model_name(self.metadata, self.hparams, self.dir_model, self.model_arch)
150+
151+
# Generate default filename based on model specification and available metadata
142152
def extract_encoding_scheme(ftype):
143153
# Extracts and converts the encoding scheme from the given file type name.
144154
# e.g. 'gguf.LlamaFileType.ALL_F32' --> 'F32'
145155
return ftype.name.partition("_")[2].upper()
146-
model_name = get_model_name(metadata, dir_model)
147156
expert_count = self.hparams["num_local_experts"] if "num_local_experts" in self.hparams else None
148-
self.fname_default = f"{gguf.naming_convention(model_name, self.metadata.version, expert_count, self.parameter_count(), extract_encoding_scheme(self.ftype))}"
157+
self.fname_default = f"{gguf.naming_convention(self.model_name, self.metadata.version, expert_count, self.parameter_count(), extract_encoding_scheme(self.ftype))}"
149158

150159
# Filename Output
151160
if fname_out is not None:
@@ -244,15 +253,7 @@ def map_tensor_name(self, name: str, try_suffixes: Sequence[str] = (".weight", "
244253
return new_name
245254

246255
def set_gguf_meta_model(self):
247-
248-
# Metadata About The Model And Its Provenence
249-
name = "LLaMA"
250-
if self.metadata is not None and self.metadata.name is not None:
251-
name = metadata.name
252-
elif self.dir_model is not None:
253-
name = self.dir_model.name
254-
255-
self.gguf_writer.add_name(name)
256+
self.gguf_writer.add_name(self.model_name)
256257

257258
if self.metadata is not None:
258259
if self.metadata.author is not None:
@@ -770,7 +771,6 @@ class GPTNeoXModel(Model):
770771
def set_gguf_parameters(self):
771772
block_count = self.hparams["num_hidden_layers"]
772773

773-
self.gguf_writer.add_name(self.dir_model.name)
774774
self.gguf_writer.add_context_length(self.hparams["max_position_embeddings"])
775775
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
776776
self.gguf_writer.add_block_count(block_count)
@@ -826,7 +826,6 @@ class BloomModel(Model):
826826
model_arch = gguf.MODEL_ARCH.BLOOM
827827

828828
def set_gguf_parameters(self):
829-
self.gguf_writer.add_name("Bloom")
830829
n_embed = self.hparams.get("hidden_size", self.hparams.get("n_embed"))
831830
n_head = self.hparams.get("n_head", self.hparams.get("num_attention_heads"))
832831
self.gguf_writer.add_context_length(self.hparams.get("seq_length", n_embed))
@@ -903,7 +902,6 @@ def set_vocab(self):
903902

904903
def set_gguf_parameters(self):
905904
block_count = self.hparams["n_layers"]
906-
self.gguf_writer.add_name(self.dir_model.name)
907905
self.gguf_writer.add_context_length(self.hparams["max_seq_len"])
908906
self.gguf_writer.add_embedding_length(self.hparams["d_model"])
909907
self.gguf_writer.add_block_count(block_count)
@@ -955,7 +953,6 @@ def set_gguf_parameters(self):
955953
raise ValueError("gguf: can not find ctx length parameter.")
956954

957955
self.gguf_writer.add_file_type(self.ftype)
958-
self.gguf_writer.add_name(self.dir_model.name)
959956
self.gguf_writer.add_source_hf_repo(hf_repo)
960957
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
961958
self.gguf_writer.add_context_length(ctx_length)
@@ -992,7 +989,6 @@ def set_gguf_parameters(self):
992989
else:
993990
raise ValueError("gguf: can not find ctx length parameter.")
994991

995-
self.gguf_writer.add_name(self.dir_model.name)
996992
self.gguf_writer.add_source_hf_repo(hf_repo)
997993
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
998994
self.gguf_writer.add_context_length(ctx_length)
@@ -1115,7 +1111,6 @@ def set_gguf_parameters(self):
11151111
else:
11161112
raise ValueError("gguf: can not find ctx length parameter.")
11171113

1118-
self.gguf_writer.add_name(self.dir_model.name)
11191114
self.gguf_writer.add_source_hf_repo(hf_repo)
11201115
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
11211116
self.gguf_writer.add_context_length(ctx_length)
@@ -1175,7 +1170,6 @@ def set_gguf_parameters(self):
11751170
if n_head_kv is None:
11761171
n_head_kv = self.hparams.get("n_head_kv", 1) # old name
11771172

1178-
self.gguf_writer.add_name("Falcon")
11791173
self.gguf_writer.add_context_length(2048) # not in config.json
11801174
self.gguf_writer.add_tensor_data_layout("jploski") # qkv tensor transform
11811175
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
@@ -1220,7 +1214,6 @@ class StarCoderModel(Model):
12201214
def set_gguf_parameters(self):
12211215
block_count = self.hparams["n_layer"]
12221216

1223-
self.gguf_writer.add_name("StarCoder")
12241217
self.gguf_writer.add_context_length(self.hparams["n_positions"])
12251218
self.gguf_writer.add_embedding_length(self.hparams["n_embd"])
12261219
self.gguf_writer.add_feed_forward_length(4 * self.hparams["n_embd"])
@@ -1256,7 +1249,6 @@ def set_gguf_parameters(self):
12561249

12571250
block_count = self.hparams["n_layer"]
12581251

1259-
self.gguf_writer.add_name("Refact")
12601252
# refact uses Alibi. So this is from config.json which might be used by training.
12611253
self.gguf_writer.add_context_length(self.hparams["n_positions"])
12621254
self.gguf_writer.add_embedding_length(self.hparams["n_embd"])
@@ -1311,7 +1303,6 @@ def set_gguf_parameters(self):
13111303
hparams = self.hparams
13121304
block_count = hparams["num_hidden_layers"]
13131305

1314-
self.gguf_writer.add_name(self.dir_model.name)
13151306
self.gguf_writer.add_context_length(hparams["max_position_embeddings"])
13161307
self.gguf_writer.add_embedding_length(hparams["hidden_size"])
13171308
self.gguf_writer.add_block_count(block_count)
@@ -1501,7 +1492,6 @@ def __init__(self, *args, **kwargs):
15011492

15021493
def set_gguf_parameters(self):
15031494
super().set_gguf_parameters()
1504-
self.gguf_writer.add_name("Grok")
15051495

15061496
_experts: list[dict[str, Tensor]] | None = None
15071497

@@ -1550,7 +1540,6 @@ class DbrxModel(Model):
15501540
def set_gguf_parameters(self):
15511541
ffn_config = self.hparams["ffn_config"]
15521542
attn_config = self.hparams["attn_config"]
1553-
self.gguf_writer.add_name(self.hparams["model_type"])
15541543
self.gguf_writer.add_block_count(self.hparams["n_layers"])
15551544

15561545
self.gguf_writer.add_context_length(self.hparams["max_seq_len"])
@@ -1620,7 +1609,6 @@ class MiniCPMModel(Model):
16201609

16211610
def set_gguf_parameters(self):
16221611
block_count = self.hparams["num_hidden_layers"]
1623-
self.gguf_writer.add_name("MiniCPM")
16241612
self.gguf_writer.add_context_length(self.hparams["max_position_embeddings"])
16251613
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
16261614
self.gguf_writer.add_block_count(block_count)
@@ -1690,7 +1678,6 @@ def set_vocab(self):
16901678
self._set_vocab_qwen()
16911679

16921680
def set_gguf_parameters(self):
1693-
self.gguf_writer.add_name("Qwen")
16941681
self.gguf_writer.add_context_length(self.hparams["max_position_embeddings"])
16951682
self.gguf_writer.add_block_count(self.hparams["num_hidden_layers"])
16961683
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
@@ -1775,7 +1762,6 @@ class GPT2Model(Model):
17751762
model_arch = gguf.MODEL_ARCH.GPT2
17761763

17771764
def set_gguf_parameters(self):
1778-
self.gguf_writer.add_name(self.dir_model.name)
17791765
self.gguf_writer.add_block_count(self.hparams["n_layer"])
17801766
self.gguf_writer.add_context_length(self.hparams["n_ctx"])
17811767
self.gguf_writer.add_embedding_length(self.hparams["n_embd"])
@@ -1818,7 +1804,6 @@ def set_gguf_parameters(self):
18181804
n_embd = self.find_hparam(["hidden_size", "n_embd"])
18191805
n_head = self.find_hparam(["num_attention_heads", "n_head"])
18201806

1821-
self.gguf_writer.add_name("Phi2")
18221807
self.gguf_writer.add_context_length(self.find_hparam(["n_positions", "max_position_embeddings"]))
18231808

18241809
self.gguf_writer.add_embedding_length(n_embd)
@@ -1940,7 +1925,6 @@ def set_gguf_parameters(self):
19401925
orig_max_pos_embds = self.find_hparam(["original_max_position_embeddings"])
19411926
rope_dims = n_embd // n_head
19421927

1943-
self.gguf_writer.add_name("Phi3")
19441928
self.gguf_writer.add_context_length(max_pos_embds)
19451929
self.gguf_writer.add_rope_scaling_orig_ctx_len(orig_max_pos_embds)
19461930
self.gguf_writer.add_embedding_length(n_embd)
@@ -1997,7 +1981,6 @@ def set_gguf_parameters(self):
19971981
hparams = self.hparams
19981982
block_count = hparams["num_hidden_layers"]
19991983

2000-
self.gguf_writer.add_name("PLaMo")
20011984
self.gguf_writer.add_context_length(4096) # not in config.json
20021985
self.gguf_writer.add_embedding_length(hparams["hidden_size"])
20031986
self.gguf_writer.add_feed_forward_length(hparams["intermediate_size"])
@@ -2042,7 +2025,6 @@ class CodeShellModel(Model):
20422025
def set_gguf_parameters(self):
20432026
block_count = self.hparams["n_layer"]
20442027

2045-
self.gguf_writer.add_name("CodeShell")
20462028
self.gguf_writer.add_context_length(self.hparams["n_positions"])
20472029
self.gguf_writer.add_embedding_length(self.hparams["n_embd"])
20482030
self.gguf_writer.add_feed_forward_length(4 * self.hparams["n_embd"])
@@ -2176,7 +2158,6 @@ def _hf_permute_qk(self, weights, n_head: int, n_head_kv: int):
21762158
.reshape(weights.shape))
21772159

21782160
def set_gguf_parameters(self):
2179-
self.gguf_writer.add_name("InternLM2")
21802161
self.gguf_writer.add_context_length(self.hparams["max_position_embeddings"])
21812162
self.gguf_writer.add_block_count(self.hparams["num_hidden_layers"])
21822163
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
@@ -2342,7 +2323,6 @@ def set_gguf_parameters(self):
23422323
hparams = self.hparams
23432324
block_count = hparams["num_hidden_layers"]
23442325

2345-
self.gguf_writer.add_name(self.dir_model.name)
23462326
self.gguf_writer.add_context_length(hparams["max_position_embeddings"])
23472327
self.gguf_writer.add_embedding_length(hparams["hidden_size"])
23482328
self.gguf_writer.add_block_count(block_count)
@@ -2442,7 +2422,6 @@ def set_gguf_parameters(self):
24422422
# Fail early for models which don't have a block expansion factor of 2
24432423
assert d_inner == 2 * d_model
24442424

2445-
self.gguf_writer.add_name(self.dir_model.name)
24462425
self.gguf_writer.add_context_length(2**20) # arbitrary value; for those who use the default
24472426
self.gguf_writer.add_embedding_length(d_model)
24482427
self.gguf_writer.add_feed_forward_length(0) # unused, but seemingly required when loading

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.