Skip to content

Commit 21aa2f5

Browse files
committed
phi-4-mm TEXT-ONLY for now
1 parent c4e9231 commit 21aa2f5

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

convert_hf_to_gguf.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2707,7 +2707,7 @@ def set_gguf_parameters(self):
27072707
self.gguf_writer.add_add_bos_token(False)
27082708

27092709

2710-
@Model.register("Phi3ForCausalLM")
2710+
@Model.register("Phi3ForCausalLM", "Phi4MMForCausalLM")
27112711
class Phi3MiniModel(Model):
27122712
model_arch = gguf.MODEL_ARCH.PHI3
27132713

@@ -2718,7 +2718,7 @@ def set_vocab(self):
27182718
with open(tokenizer_config_file, "r", encoding="utf-8") as f:
27192719
tokenizer_config_json = json.load(f)
27202720
tokenizer_class = tokenizer_config_json['tokenizer_class']
2721-
if tokenizer_class == 'GPT2Tokenizer':
2721+
if tokenizer_class == 'GPT2Tokenizer' or tokenizer_class == 'GPT2TokenizerFast':
27222722
return self._set_vocab_gpt2()
27232723

27242724
from sentencepiece import SentencePieceProcessor
@@ -2884,6 +2884,16 @@ def generate_extra_tensors(self) -> Iterable[tuple[str, Tensor]]:
28842884
yield (self.format_tensor_name(gguf.MODEL_TENSOR.ROPE_FACTORS_LONG), torch.tensor(long_factors, dtype=torch.float32))
28852885
yield (self.format_tensor_name(gguf.MODEL_TENSOR.ROPE_FACTORS_SHORT), torch.tensor(short_factors, dtype=torch.float32))
28862886

2887+
def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]:
2888+
if "base_layer" in name:
2889+
name = name.replace("base_layer.", "")
2890+
# TODO: a big TODO, for simplification, we are skipping multimodal tensors for now
2891+
if name.startswith("model.embed_tokens_extend") or "lora_" in name:
2892+
logger.error(f"Skipping multimodal tensor: {name!r}")
2893+
return []
2894+
else:
2895+
return super().modify_tensors(data_torch, name, bid)
2896+
28872897

28882898
@Model.register("PhiMoEForCausalLM")
28892899
class PhiMoeModel(Phi3MiniModel):

0 commit comments

Comments
 (0)