Feat: GLM-4.6 supports shared experts fusion (#13873)

Signed-off-by: UranusSeven <109661872+UranusSeven@users.noreply.github.com>
Co-authored-by: Kevin-XiongC <kevin_xiong1997@outlook.com>
Co-authored-by: Mingyi Jin <jinmingyi1998@sina.cn>
This commit is contained in:
Uranus
2025-12-01 11:33:18 +08:00
committed by GitHub
co-authored by Kevin-XiongC Mingyi Jin
parent f5f3a5d98c
commit 982db4ebac
7 changed files with 252 additions and 24 deletions
@@ -69,11 +69,15 @@ def get_model_config(
E = config.num_experts // ep_size
topk = config.num_experts_per_tok
intermediate_size = config.moe_intermediate_size
elif architecture in ["DeepseekV2ForCausalLM", "DeepseekV3ForCausalLM"]:
elif architecture in [
"DeepseekV2ForCausalLM",
"DeepseekV3ForCausalLM",
"Glm4MoeForCausalLM",
]:
E = (config.n_routed_experts // ep_size) + (
0
if disable_shared_experts_fusion
or architecture not in ["DeepseekV3ForCausalLM"]
or architecture not in ["DeepseekV3ForCausalLM", "Glm4MoeForCausalLM"]
else 1
)
topk = config.num_experts_per_tok + (
@@ -104,7 +108,7 @@ def get_model_config(
E = config.num_experts // ep_size
topk = config.num_experts_per_tok
intermediate_size = config.moe_intermediate_size
elif architecture in ["Glm4MoeForCausalLM", "NemotronHForCausalLM"]:
elif architecture == "NemotronHForCausalLM":
E = config.n_routed_experts // ep_size
topk = config.num_experts_per_tok
intermediate_size = config.moe_intermediate_size