From f438a5900ea6cf3d09d5b486153751be221b8fdf Mon Sep 17 00:00:00 2001 From: Alex Bilichenko Date: Sun, 31 May 2026 22:08:50 -0700 Subject: [PATCH] [Model] Gemma4: map compressed-tensors packed MoE weight names compressed-tensors uses underscore suffixes for packed MoE weights (gate_up_proj_packed / _scale); convert to dot-separated form (gate_up_proj.weight_packed / .weight_scale) so expert_params_mapping matches. Extracted from local commit 3cd2fb2f. Co-authored-by: Claude Signed-off-by: Alex Bilichenko --- vllm/model_executor/models/gemma4.py | 8 ++++++++ 1 file changed, 8 insertions(+) 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",