From 1d01245182d9560794c083b623dab296867c39db Mon Sep 17 00:00:00 2001 From: ryan-mangeno Date: Fri, 10 Oct 2025 15:12:49 -0400 Subject: [PATCH] conversion for modern-bert model supported rather than just granite-small --- convert_hf_to_gguf.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/convert_hf_to_gguf.py b/convert_hf_to_gguf.py index 864692b631..3282d1d6a5 100755 --- a/convert_hf_to_gguf.py +++ b/convert_hf_to_gguf.py @@ -8976,6 +8976,16 @@ class ModernBertModel(BertModel): self.gguf_writer.add_vocab_size(self.hparams["vocab_size"]) def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]: + # rename custom "head" layers to standard bert "cls.predictions" names for compatibility + if name == "head.norm.weight": + name = "cls.predictions.transform.LayerNorm.weight" + elif name == "head.norm.bias": + name = "cls.predictions.transform.LayerNorm.bias" + elif name == "head.dense.weight": + name = "cls.predictions.transform.dense.weight" + elif name == "head.dense.bias": + name = "cls.predictions.transform.dense.bias" + # These layers act as MLM head, so we don't need them if name.startswith("decoder."): return []