From eb5667a169ae4baf7d0545ebc1cc7b3f2fc65342 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sigbj=C3=B8rn=20Skj=C3=A6ret?= Date: Thu, 6 Aug 2026 15:06:52 +0200 Subject: [PATCH] convert : fix DeepseekV4 rope parameters with transformers 5.x (#26673) --- conversion/deepseek.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/conversion/deepseek.py b/conversion/deepseek.py index 3dca369cf..1846ca401 100644 --- a/conversion/deepseek.py +++ b/conversion/deepseek.py @@ -533,6 +533,13 @@ class DeepseekV4Model(TextModel): for key, value in raw_hparams.items(): self.hparams.setdefault(key, value) + # workaround for special rope_parameters (main/compress) in transformers 5.x + if self.rope_parameters.get("full_attention", self.rope_parameters).get("rope_type") is None: + if (rope_scaling := raw_hparams.get("rope_scaling")) is not None: + if "rope_type" not in rope_scaling and (rope_type := rope_scaling.get("type")) is not None: + rope_scaling["rope_type"] = rope_type + self.rope_parameters.update(**rope_scaling) + self.block_count = self.hparams["num_hidden_layers"] if self.mtp_only: self.block_count += self.hparams.get("num_nextn_predict_layers", 0)