From: Sigbjørn Skjæret Date: Thu, 18 Dec 2025 06:54:54 +0000 (+0100) Subject: convert : sort and use file parts from model index if present (#18043) X-Git-Tag: upstream/0.0.7599~133 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=9cff4cc5548113c1a1430c95e86cd3b348e3c063;p=pkg%2Fggml%2Fsources%2Fllama.cpp convert : sort and use file parts from model index if present (#18043) * keep file part order from model index * treat index as authoritative * sort index parts --- diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 806b3d7b..86fe0b5f 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -189,10 +189,10 @@ class ModelBase: return tensors prefix = "model" if not self.is_mistral_format else "consolidated" - part_names: set[str] = set(ModelBase.get_model_part_names(self.dir_model, prefix, ".safetensors")) + part_names: list[str] = ModelBase.get_model_part_names(self.dir_model, prefix, ".safetensors") is_safetensors: bool = len(part_names) > 0 if not is_safetensors: - part_names = set(ModelBase.get_model_part_names(self.dir_model, "pytorch_model", ".bin")) + part_names = ModelBase.get_model_part_names(self.dir_model, "pytorch_model", ".bin") tensor_names_from_index: set[str] = set() @@ -209,7 +209,8 @@ class ModelBase: if weight_map is None or not isinstance(weight_map, dict): raise ValueError(f"Can't load 'weight_map' from {index_name!r}") tensor_names_from_index.update(weight_map.keys()) - part_names |= set(weight_map.values()) + part_dict: dict[str, None] = dict.fromkeys(weight_map.values(), None) + part_names = sorted(part_dict.keys()) else: weight_map = {} else: