From 19bb74e74c036e8eddfcfe101cfd8940f42df078 Mon Sep 17 00:00:00 2001 From: Cebtenzzre Date: Thu, 21 Sep 2023 15:10:39 -0400 Subject: [PATCH] restore backwards compatiblity with *.rope.scale_linear --- llama.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/llama.cpp b/llama.cpp index 7184c376c..d862541d1 100644 --- a/llama.cpp +++ b/llama.cpp @@ -204,6 +204,7 @@ enum llm_kv { LLM_KV_ROPE_DIMENSION_COUNT, LLM_KV_ROPE_FREQ_BASE, + LLM_KV_ROPE_SCALE_LINEAR, LLM_KV_ROPE_SCALING_TYPE, LLM_KV_ROPE_SCALING_FACTOR, LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, @@ -251,6 +252,7 @@ static std::map LLM_KV_NAMES = { { LLM_KV_ROPE_DIMENSION_COUNT, "%s.rope.dimension_count" }, { LLM_KV_ROPE_FREQ_BASE, "%s.rope.freq_base" }, + { LLM_KV_ROPE_SCALE_LINEAR, "%s.rope.scale_linear" }, { LLM_KV_ROPE_SCALING_TYPE, "%s.rope.scaling.type" }, { LLM_KV_ROPE_SCALING_FACTOR, "%s.rope.scaling.factor" }, { LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, "%s.rope.scaling.original_context_length" }, @@ -1719,9 +1721,12 @@ static void llm_load_hparams(llama_model_loader & ml, llama_model & model, const if (rope_scaling_type == LLAMA_ROPE_SCALING_NONE) { hparams.rope_freq_scale = 1.0f; } else if (hparams.rope_freq_scale == 0.0f) { - float ropescale = 1.0f; + float ropescale = 0.0f; GGUF_GET_KEY(ctx, ropescale, gguf_get_val_f32, GGUF_TYPE_FLOAT32, false, kv(LLM_KV_ROPE_SCALING_FACTOR)); - hparams.rope_freq_scale = 1.0f/ropescale; + if (ropescale == 0.0f) { // try the old key name + GGUF_GET_KEY(ctx, ropescale, gguf_get_val_f32, GGUF_TYPE_FLOAT32, false, kv(LLM_KV_ROPE_SCALE_LINEAR)); + } + hparams.rope_freq_scale = ropescale == 0.0f ? 1.0f : 1.0f/ropescale; } if (rope_scaling_type == LLAMA_ROPE_SCALING_YARN) {