diff --git a/vllm/model_executor/models/gemma4.py b/vllm/model_executor/models/gemma4.py index 75f6945cccb5..9eadf7dc4438 100644 --- a/vllm/model_executor/models/gemma4.py +++ b/vllm/model_executor/models/gemma4.py @@ -1643,6 +1643,14 @@ def _weight_iterator(): ".router.per_expert_scale", ".moe.per_expert_scale", ) + # compressed-tensors uses underscore suffixes for + # packed MoE weights; convert to dot-separated form + # so downstream expert_params_mapping can match. + name = re.sub( + r"\.(gate_up_proj|down_proj)_(packed|scale)\b", + r".\1.weight_\2", + name, + ) if ".experts.gate_up_proj" in name: name = name.replace( ".experts.gate_up_proj",