]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
convert : add BertForMaskedLM (#10919)
authorGeorgi Gerganov <redacted>
Sat, 21 Dec 2024 08:10:18 +0000 (10:10 +0200)
committerGitHub <redacted>
Sat, 21 Dec 2024 08:10:18 +0000 (10:10 +0200)
convert_hf_to_gguf.py

index 76ab11ebe8e2c92d4fc7d8a394d3e344f0bec7b6..9764251823070966c7c00a96a19e0dcaac6bb120 100755 (executable)
@@ -2628,7 +2628,7 @@ class InternLM2Model(Model):
             return [(self.map_tensor_name(name), data_torch)]
 
 
-@Model.register("BertModel", "CamembertModel")
+@Model.register("BertModel", "BertForMaskedLM", "CamembertModel")
 class BertModel(Model):
     model_arch = gguf.MODEL_ARCH.BERT
 
@@ -2694,10 +2694,25 @@ class BertModel(Model):
     def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]:
         del bid  # unused
 
+        if name.startswith("bert."):
+            name = name[5:]
+
+        if name.endswith(".gamma"):
+            name = name[:-6] + ".weight"
+
+        if name.endswith(".beta"):
+            name = name[:-5] + ".bias"
+
         # we are only using BERT for embeddings so we don't need the pooling layer
         if name in ("embeddings.position_ids", "pooler.dense.weight", "pooler.dense.bias"):
             return [] # we don't need these
 
+        if name.startswith("cls.predictions"):
+            return []
+
+        if name.startswith("cls.seq_relationship"):
+            return []
+
         return [(self.map_tensor_name(name), data_torch)]