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)