@@ -504,71 +504,75 @@ def _hf_layer_prefix(self) -> str:
504504 """Text-only CausalLM: weights at ``model.*``; override in VL subclass."""
505505 return "model."
506506
507- def _moe_mapping_registry (self ) -> MegatronMappingRegistry :
507+ def _moe_mapping_registry (self , megatron_prefix : str = "" ) -> MegatronMappingRegistry :
508508 """Parameter mappings for the MoE variant."""
509+ mp = megatron_prefix
510+ hp = self ._hf_layer_prefix ()
509511 param_mappings = {
510- "embedding.word_embeddings.weight" : "model.embed_tokens.weight" ,
511- "decoder.final_layernorm.weight" : "model.norm.weight" ,
512- "decoder.layers.*.self_attention.linear_qkv.layer_norm_weight" : "model.layers.*.input_layernorm.weight" ,
513- "decoder.layers.*.self_attention.q_layernorm.weight" : "model.layers.*.self_attn.q_norm.weight" ,
514- "decoder.layers.*.self_attention.k_layernorm.weight" : "model.layers.*.self_attn.k_norm.weight" ,
515- "decoder.layers.*.self_attention.linear_proj.weight" : "model.layers.*.self_attn.o_proj.weight" ,
516- "decoder.layers.*.self_attention.linear_proj.post_layernorm.weight" : (
517- "model.layers.*.post_attention_layernorm.weight"
512+ f"{ mp } embedding.word_embeddings.weight" : f"{ hp } embed_tokens.weight" ,
513+ f"{ mp } decoder.final_layernorm.weight" : f"{ hp } norm.weight" ,
514+ f"{ mp } decoder.layers.*.self_attention.linear_qkv.layer_norm_weight" : (
515+ f"{ hp } layers.*.input_layernorm.weight"
516+ ),
517+ f"{ mp } decoder.layers.*.self_attention.q_layernorm.weight" : f"{ hp } layers.*.self_attn.q_norm.weight" ,
518+ f"{ mp } decoder.layers.*.self_attention.k_layernorm.weight" : f"{ hp } layers.*.self_attn.k_norm.weight" ,
519+ f"{ mp } decoder.layers.*.self_attention.linear_proj.weight" : f"{ hp } layers.*.self_attn.o_proj.weight" ,
520+ f"{ mp } decoder.layers.*.self_attention.linear_proj.post_layernorm.weight" : (
521+ f"{ hp } layers.*.post_attention_layernorm.weight"
518522 ),
519- " decoder.layers.*.pre_mlp_layernorm.weight" : "model. layers.*.pre_feedforward_layernorm_2.weight" ,
520- " decoder.layers.*.mlp.shared_experts.linear_fc2.weight" : "model. layers.*.mlp.down_proj.weight" ,
521- " decoder.layers.*.mlp.post_shared_expert_layernorm.weight" : (
522- "model. layers.*.post_feedforward_layernorm_1.weight"
523+ f" { mp } decoder.layers.*.pre_mlp_layernorm.weight" : f" { hp } layers.*.pre_feedforward_layernorm_2.weight" ,
524+ f" { mp } decoder.layers.*.mlp.shared_experts.linear_fc2.weight" : f" { hp } layers.*.mlp.down_proj.weight" ,
525+ f" { mp } decoder.layers.*.mlp.post_shared_expert_layernorm.weight" : (
526+ f" { hp } layers.*.post_feedforward_layernorm_1.weight"
523527 ),
524- " decoder.layers.*.mlp.router.weight" : "model. layers.*.router.proj.weight" ,
528+ f" { mp } decoder.layers.*.mlp.router.weight" : f" { hp } layers.*.router.proj.weight" ,
525529 }
526530
527531 mapping_list = [AutoMapping (megatron_param = m , hf_param = h ) for m , h in param_mappings .items ()]
528532 mapping_list .extend (
529533 [
530534 _Gemma4QKVMapping (
531- megatron_param = " decoder.layers.*.self_attention.linear_qkv.weight" ,
532- q = "model. layers.*.self_attn.q_proj.weight" ,
533- k = "model. layers.*.self_attn.k_proj.weight" ,
534- v = "model. layers.*.self_attn.v_proj.weight" ,
535+ megatron_param = f" { mp } decoder.layers.*.self_attention.linear_qkv.weight" ,
536+ q = f" { hp } layers.*.self_attn.q_proj.weight" ,
537+ k = f" { hp } layers.*.self_attn.k_proj.weight" ,
538+ v = f" { hp } layers.*.self_attn.v_proj.weight" ,
535539 ),
536540 GatedMLPMapping (
537- megatron_param = " decoder.layers.*.mlp.shared_experts.linear_fc1.weight" ,
538- gate = "model. layers.*.mlp.gate_proj.weight" ,
539- up = "model. layers.*.mlp.up_proj.weight" ,
541+ megatron_param = f" { mp } decoder.layers.*.mlp.shared_experts.linear_fc1.weight" ,
542+ gate = f" { hp } layers.*.mlp.gate_proj.weight" ,
543+ up = f" { hp } layers.*.mlp.up_proj.weight" ,
540544 ),
541545 FusedGatedExpertMapping (
542- megatron_param = " decoder.layers.*.mlp.experts.linear_fc1.weight*" ,
543- hf_param = "model. layers.*.experts.gate_up_proj" ,
546+ megatron_param = f" { mp } decoder.layers.*.mlp.experts.linear_fc1.weight*" ,
547+ hf_param = f" { hp } layers.*.experts.gate_up_proj" ,
544548 ),
545549 FusedExpertMapping (
546- megatron_param = " decoder.layers.*.mlp.experts.linear_fc2.weight*" ,
547- hf_param = "model. layers.*.experts.down_proj" ,
550+ megatron_param = f" { mp } decoder.layers.*.mlp.experts.linear_fc2.weight*" ,
551+ hf_param = f" { hp } layers.*.experts.down_proj" ,
548552 ),
549553 ReplicatedMapping (
550- megatron_param = " decoder.layers.*.layer_scalar" ,
551- hf_param = "model. layers.*.layer_scalar" ,
554+ megatron_param = f" { mp } decoder.layers.*.layer_scalar" ,
555+ hf_param = f" { hp } layers.*.layer_scalar" ,
552556 ),
553557 ReplicatedMapping (
554- megatron_param = " decoder.layers.*.mlp.router.per_expert_scale" ,
555- hf_param = "model. layers.*.router.per_expert_scale" ,
558+ megatron_param = f" { mp } decoder.layers.*.mlp.router.per_expert_scale" ,
559+ hf_param = f" { hp } layers.*.router.per_expert_scale" ,
556560 ),
557561 ReplicatedMapping (
558- megatron_param = " decoder.layers.*.mlp.router.scale" ,
559- hf_param = "model. layers.*.router.scale" ,
562+ megatron_param = f" { mp } decoder.layers.*.mlp.router.scale" ,
563+ hf_param = f" { hp } layers.*.router.scale" ,
560564 ),
561565 ReplicatedMapping (
562- megatron_param = " decoder.layers.*.pre_shared_expert_layernorm.weight" ,
563- hf_param = "model. layers.*.pre_feedforward_layernorm.weight" ,
566+ megatron_param = f" { mp } decoder.layers.*.pre_shared_expert_layernorm.weight" ,
567+ hf_param = f" { hp } layers.*.pre_feedforward_layernorm.weight" ,
564568 ),
565569 ReplicatedMapping (
566- megatron_param = " decoder.layers.*.mlp.post_moe_layernorm.weight" ,
567- hf_param = "model. layers.*.post_feedforward_layernorm_2.weight" ,
570+ megatron_param = f" { mp } decoder.layers.*.mlp.post_moe_layernorm.weight" ,
571+ hf_param = f" { hp } layers.*.post_feedforward_layernorm_2.weight" ,
568572 ),
569573 ReplicatedMapping (
570- megatron_param = " decoder.layers.*.post_ffn_layernorm.weight" ,
571- hf_param = "model. layers.*.post_feedforward_layernorm.weight" ,
574+ megatron_param = f" { mp } decoder.layers.*.post_ffn_layernorm.weight" ,
575+ hf_param = f" { hp } layers.*.post_feedforward_layernorm.weight" ,
572576 ),
573577 ]
574578 )
0 commit comments