Skip to content

Commit 7bc6948

Browse files
committed
convert-*.py: consolidate source_hf_repo and use hf params as fallback if present
1 parent fa95ec3 commit 7bc6948

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

convert-hf-to-gguf.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,22 @@ def __init__(self, dir_model: Path, ftype: gguf.LlamaFileType, fname_out: Path,
133133
logger.info(f"choosing --outtype bf16 from first tensor type ({first_tensor.dtype})")
134134
self.ftype = gguf.LlamaFileType.MOSTLY_BF16
135135

136+
# Update any missing authorship metadata with huggingface_parameters
137+
if self.metadata is not None and self.metadata.source_hf_repo is None:
138+
if self.hparams is not None and "_name_or_path" in self.hparams:
139+
self.metadata.source_hf_repo = self.hparams["_name_or_path"]
140+
136141
# Set model name based on latest metadata either provided or calculated from environment
137-
def get_model_name(metadata, hyperparameters, dir_model, model_arch):
142+
def get_model_name(metadata, huggingface_parameters, dir_model, model_arch):
138143
if metadata is not None and metadata.name is not None:
139144
# Explicit Metadata Was Provided By User
140145
return metadata.name
141-
elif hyperparameters is not None and "_name_or_path" in hyperparameters:
142-
# Hugging Face Hyperparameter Model Name or Model Folder Name is Provided
143-
return hyperparameters["_name_or_path"]
144-
elif hyperparameters is not None and "model_type" in hyperparameters:
145-
# Hugging Face Hyperparameter Model Type is Provided
146-
return hyperparameters["model_type"]
146+
elif huggingface_parameters is not None and "_name_or_path" in huggingface_parameters:
147+
# Hugging Face Parameters Model Name or Model Folder Name is Provided
148+
return huggingface_parameters["_name_or_path"]
149+
elif huggingface_parameters is not None and "model_type" in huggingface_parameters:
150+
# Hugging Face Parameters Model Type is Provided
151+
return huggingface_parameters["model_type"]
147152
elif dir_model is not None and dir_model.name is not None:
148153
# Use directory folder name
149154
return dir_model.name
@@ -154,7 +159,7 @@ def get_model_name(metadata, hyperparameters, dir_model, model_arch):
154159
# Extracts and converts the encoding scheme from the given file type name. e.g. 'gguf.LlamaFileType.ALL_F32' --> 'F32'
155160
encodingScheme = self.ftype.name.partition("_")[2]
156161

157-
# Get Expert Count From Hyperparameters
162+
# Get Expert Count From huggingface_parameters
158163
expert_count = self.hparams["num_local_experts"] if "num_local_experts" in self.hparams else None
159164

160165
# Generate default filename based on model specification and available metadata
@@ -952,7 +957,6 @@ def set_gguf_parameters(self):
952957
block_count = self.hparams["num_hidden_layers"]
953958
head_count = self.hparams["num_attention_heads"]
954959
head_count_kv = self.hparams.get("num_key_value_heads", head_count)
955-
hf_repo = self.hparams.get("_name_or_path", "")
956960

957961
ctx_length = 0
958962
if "max_sequence_length" in self.hparams:
@@ -965,7 +969,6 @@ def set_gguf_parameters(self):
965969
raise ValueError("gguf: can not find ctx length parameter.")
966970

967971
self.gguf_writer.add_file_type(self.ftype)
968-
self.gguf_writer.add_source_hf_repo(hf_repo)
969972
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
970973
self.gguf_writer.add_context_length(ctx_length)
971974
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
@@ -989,7 +992,6 @@ def set_gguf_parameters(self):
989992
block_count = self.hparams["num_hidden_layers"]
990993
head_count = self.hparams["num_attention_heads"]
991994
head_count_kv = self.hparams.get("num_key_value_heads", head_count)
992-
hf_repo = self.hparams.get("_name_or_path", "")
993995

994996
ctx_length = 0
995997
if "max_sequence_length" in self.hparams:
@@ -1001,7 +1003,6 @@ def set_gguf_parameters(self):
10011003
else:
10021004
raise ValueError("gguf: can not find ctx length parameter.")
10031005

1004-
self.gguf_writer.add_source_hf_repo(hf_repo)
10051006
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
10061007
self.gguf_writer.add_context_length(ctx_length)
10071008
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])
@@ -1111,7 +1112,6 @@ def set_gguf_parameters(self):
11111112
block_count = self.hparams["num_hidden_layers"]
11121113
head_count = self.hparams["num_attention_heads"]
11131114
head_count_kv = self.hparams.get("num_key_value_heads", head_count)
1114-
hf_repo = self.hparams.get("_name_or_path", "")
11151115

11161116
ctx_length = 0
11171117
if "max_sequence_length" in self.hparams:
@@ -1123,7 +1123,6 @@ def set_gguf_parameters(self):
11231123
else:
11241124
raise ValueError("gguf: can not find ctx length parameter.")
11251125

1126-
self.gguf_writer.add_source_hf_repo(hf_repo)
11271126
self.gguf_writer.add_tensor_data_layout("Meta AI original pth")
11281127
self.gguf_writer.add_context_length(ctx_length)
11291128
self.gguf_writer.add_embedding_length(self.hparams["hidden_size"])

0 commit comments

Comments
 (0)