diff --git a/python/sglang/srt/models/qwen3_5.py b/python/sglang/srt/models/qwen3_5.py index d46743f43..2f430c2b9 100644 --- a/python/sglang/srt/models/qwen3_5.py +++ b/python/sglang/srt/models/qwen3_5.py @@ -1384,6 +1384,17 @@ class Qwen3_5ForConditionalGeneration(Qwen3VLForConditionalGeneration): name = name.replace(r"model.language_model.", r"model.") if ".self_attn." in name: name = name.replace(".self_attn", "") + if ( + self.config.tie_word_embeddings + and self.pp_group.is_last_rank + and "model.embed_tokens.weight" in name + ): + if "lm_head.weight" in params_dict: + lm_head_param = params_dict["lm_head.weight"] + weight_loader = getattr( + lm_head_param, "weight_loader", default_weight_loader + ) + weight_loader(lm_head_param, loaded_weight) layer_id = get_layer_id(name) if ( layer_id is not None @@ -1549,6 +1560,17 @@ class Qwen3_5MoeForConditionalGeneration(Qwen3VLForConditionalGeneration): name = name.replace(r"model.language_model.", r"model.") if ".self_attn." in name: name = name.replace(".self_attn", "") + if ( + self.config.tie_word_embeddings + and self.pp_group.is_last_rank + and "model.embed_tokens.weight" in name + ): + if "lm_head.weight" in params_dict: + lm_head_param = params_dict["lm_head.weight"] + weight_loader = getattr( + lm_head_param, "weight_loader", default_weight_loader + ) + weight_loader(lm_head_param, loaded_weight) layer_id = get_layer_id(name) if (