فهرست منبع

gguf-py : support identity operation in TensorNameMap (#3095)

Make try_suffixes keyword param optional.
Kerfuffle 2 سال پیش
والد
کامیت
e394084166
2فایلهای تغییر یافته به همراه6 افزوده شده و 4 حذف شده
  1. 5 3
      gguf-py/gguf/gguf.py
  2. 1 1
      gguf-py/pyproject.toml

+ 5 - 3
gguf-py/gguf/gguf.py

@@ -333,6 +333,7 @@ class TensorNameMap:
             tensor_name = tensor_names.get(tensor)
             tensor_name = tensor_names.get(tensor)
             if tensor_name is None:
             if tensor_name is None:
                 continue
                 continue
+            mapping[tensor_name] = (tensor, tensor_name)
             for key in keys:
             for key in keys:
                 mapping[key] = (tensor, tensor_name)
                 mapping[key] = (tensor, tensor_name)
         for bid in range(n_blocks):
         for bid in range(n_blocks):
@@ -341,11 +342,12 @@ class TensorNameMap:
                 if tensor_name is None:
                 if tensor_name is None:
                     continue
                     continue
                 tensor_name = tensor_name.format(bid = bid)
                 tensor_name = tensor_name.format(bid = bid)
+                mapping[tensor_name] = (tensor, tensor_name)
                 for key in keys:
                 for key in keys:
                     key = key.format(bid = bid)
                     key = key.format(bid = bid)
                     mapping[key] = (tensor, tensor_name)
                     mapping[key] = (tensor, tensor_name)
 
 
-    def get_type_and_name(self, key: str, try_suffixes: Sequence[str]) -> tuple[MODEL_TENSOR, str] | None:
+    def get_type_and_name(self, key: str, try_suffixes: Sequence[str] = ()) -> tuple[MODEL_TENSOR, str] | None:
         result = self.mapping.get(key)
         result = self.mapping.get(key)
         if result is not None:
         if result is not None:
             return result
             return result
@@ -356,13 +358,13 @@ class TensorNameMap:
                     return (result[0], result[1] + suffix)
                     return (result[0], result[1] + suffix)
         return None
         return None
 
 
-    def get_name(self, key: str, try_suffixes: Sequence[str]) -> str | None:
+    def get_name(self, key: str, try_suffixes: Sequence[str] = ()) -> str | None:
         result = self.get_type_and_name(key, try_suffixes = try_suffixes)
         result = self.get_type_and_name(key, try_suffixes = try_suffixes)
         if result is None:
         if result is None:
             return None
             return None
         return result[1]
         return result[1]
 
 
-    def get_type(self, key: str, try_suffixes: Sequence[str]) -> MODEL_TENSOR | None:
+    def get_type(self, key: str, try_suffixes: Sequence[str] = ()) -> MODEL_TENSOR | None:
         result = self.get_type_and_name(key, try_suffixes = try_suffixes)
         result = self.get_type_and_name(key, try_suffixes = try_suffixes)
         if result is None:
         if result is None:
             return None
             return None

+ 1 - 1
gguf-py/pyproject.toml

@@ -1,6 +1,6 @@
 [tool.poetry]
 [tool.poetry]
 name = "gguf"
 name = "gguf"
-version = "0.3.2"
+version = "0.3.3"
 description = "Write ML models in GGUF for GGML"
 description = "Write ML models in GGUF for GGML"
 authors = ["GGML <ggml@ggml.ai>"]
 authors = ["GGML <ggml@ggml.ai>"]
 packages = [
 packages = [