summaryrefslogtreecommitdiff
path: root/convert.py
diff options
context:
space:
mode:
authorNigel Bosch <pnigelb@gmail.com>2023-08-25 09:41:52 -0500
committerGitHub <noreply@github.com>2023-08-25 16:41:52 +0200
commit28b2c996ca0ab90a5669946084f13443ec98e241 (patch)
treecf73611132de4c97e2c20b04adfbeb2bf174681e /convert.py
parent154725c5436808e5c519685d0279e850596dbe62 (diff)
convert.py : Get rope scale from HuggingFace models (#2772)
* Get rope scale from HF models * Save rope scale only for linear scaling * Rewrite for clarity
Diffstat (limited to 'convert.py')
-rwxr-xr-xconvert.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/convert.py b/convert.py
index e58ea46e..4f3e9279 100755
--- a/convert.py
+++ b/convert.py
@@ -105,6 +105,7 @@ class Params:
f_norm_eps: float
f_rope_freq_base: Optional[float] = None
+ f_rope_scale: Optional[float] = None
ftype: Optional[GGMLFileType] = None
@@ -169,6 +170,11 @@ class Params:
f_norm_eps = config["rms_norm_eps"]
f_rope_freq_base = config["rope_theta"] if "rope_theta" in config else None
+ if "rope_scaling" in config and config["rope_scaling"].get("type") == "linear":
+ f_rope_scale = config["rope_scaling"].get("factor")
+ else:
+ f_rope_scale = None
+
n_mult = Params.find_n_mult(n_ff, n_embd)
if "max_sequence_length" in config:
@@ -190,6 +196,7 @@ class Params:
n_head_kv = n_head_kv,
f_norm_eps = f_norm_eps,
f_rope_freq_base = f_rope_freq_base,
+ f_rope_scale = f_rope_scale,
)
# LLaMA v2 70B params.json
@@ -773,6 +780,9 @@ class OutputFile:
if params.f_rope_freq_base:
self.gguf.add_rope_freq_base(params.f_rope_freq_base)
+ if params.f_rope_scale:
+ self.gguf.add_rope_scale_linear(params.f_rope_scale)
+
if params.ftype:
self.gguf.add_file_type(params.ftype)