Skip to content

Commit b88a55d

Browse files
Merge pull request #505 from janhq/update-dev-from-master-2026-05-04-01-05
Sync master with upstream release b9012
2 parents 53ed6de + 048a490 commit b88a55d

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

convert_hf_to_gguf.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2889,6 +2889,20 @@ def permute(weights: Tensor, n_head: int, n_head_kv: int | None):
28892889
.swapaxes(1, 2)
28902890
.reshape(weights.shape))
28912891

2892+
def _repack_nvfp4(self, name: str, weight: Tensor, scale: Tensor, scale2: Tensor, input_scale: Tensor):
2893+
# Mirror the BF16 Q/K RoPE permutation site in modify_tensors; the NVFP4 path bypasses it.
2894+
if self.undo_permute:
2895+
n_head = self.find_hparam(["n_heads", "num_attention_heads"], optional=True)
2896+
n_kv_head = self.find_hparam(["n_kv_heads", "num_key_value_heads"], optional=True)
2897+
if n_head is not None:
2898+
if name.endswith("q_proj.weight"):
2899+
weight = LlamaModel.permute(weight, n_head, n_head)
2900+
scale = LlamaModel.permute(scale, n_head, n_head)
2901+
elif name.endswith("k_proj.weight"):
2902+
weight = LlamaModel.permute(weight, n_head, n_kv_head)
2903+
scale = LlamaModel.permute(scale, n_head, n_kv_head)
2904+
super()._repack_nvfp4(name, weight, scale, scale2, input_scale)
2905+
28922906
_experts: list[dict[str, Tensor]] | None = None
28932907

28942908
def modify_tensors(self, data_torch: Tensor, name: str, bid: int | None) -> Iterable[tuple[str, Tensor]]:
@@ -12702,11 +12716,12 @@ def set_gguf_parameters(self):
1270212716
def set_mistral_config(gguf_writer: gguf.GGUFWriter, hparams: dict):
1270312717
if "yarn" in hparams:
1270412718
yarn_params = hparams["yarn"]
12719+
mscale_all_dim = 1.0 if not yarn_params["apply_scale"] else 0.0
1270512720
gguf_writer.add_rope_scaling_type(gguf.RopeScalingType.YARN)
1270612721
gguf_writer.add_rope_scaling_factor(yarn_params["factor"])
1270712722
gguf_writer.add_rope_scaling_yarn_beta_fast(yarn_params["beta"])
1270812723
gguf_writer.add_rope_scaling_yarn_beta_slow(yarn_params["alpha"])
12709-
gguf_writer.add_rope_scaling_yarn_log_mul(1.0) # mscale_all_dim
12724+
gguf_writer.add_rope_scaling_yarn_log_mul(mscale_all_dim)
1271012725
gguf_writer.add_rope_scaling_orig_ctx_len(yarn_params["original_max_position_embeddings"])
1271112726

1271212727
if "llama_4_scaling" in hparams:

src/llama-model.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,7 +1994,7 @@ void llama_model::load_hparams(llama_model_loader & ml) {
19941994
}
19951995
}
19961996

1997-
if (ml.get_key(LLM_KV_ROPE_SCALING_YARN_LOG_MUL, hparams.rope_yarn_log_mul, 0.0f)) {
1997+
if (ml.get_key(LLM_KV_ROPE_SCALING_YARN_LOG_MUL, hparams.rope_yarn_log_mul, false)) {
19981998
// [TAG_DEEPSEEK2_YARN_LOG_MUL_FIX]
19991999
// cancel the factor from the convert script
20002000
hparams.rope_yarn_log_mul /= 0.1f;
@@ -2868,7 +2868,7 @@ void llama_model::load_hparams(llama_model_loader & ml) {
28682868

28692869
ml.get_key(LLM_KV_ROPE_SCALING_YARN_BETA_FAST, hparams.yarn_beta_fast, false);
28702870
ml.get_key(LLM_KV_ROPE_SCALING_YARN_BETA_SLOW, hparams.yarn_beta_slow, false);
2871-
ml.get_key(LLM_KV_ROPE_SCALING_YARN_LOG_MUL, hparams.rope_yarn_log_mul, 0.0f);
2871+
ml.get_key(LLM_KV_ROPE_SCALING_YARN_LOG_MUL, hparams.rope_yarn_log_mul, false);
28722872

28732873
hparams.f_attn_temp_offset = 0.0f;
28742874

0 commit comments

Comments
 (0)