@@ -1041,10 +1041,11 @@ def training_log(
10411041 if getattr (config .model , "moe_z_loss_coeff" , None ) is not None :
10421042 track_names .append ("z_loss" )
10431043
1044- if getattr (config .model , "is_hybrid_model" , False ):
1045- layers = getattr (config .model , "hybrid_layer_pattern" , "" ).count ("E" )
1046- else :
1047- layers = getattr (config .model , "num_layers" , None )
1044+ num_layers = getattr (config .model , "num_layers" , None )
1045+ moe_layer_freq = getattr (config .model , "moe_layer_freq" , None )
1046+ pattern = getattr (config .model , "hybrid_layer_pattern" , "" ) or ""
1047+ if moe_layer_freq is None and pattern : # per-layer averaging denominator
1048+ moe_layer_freq = [1 if c == "E" else 0 for c in pattern ]
10481049
10491050 # Wrap the TB writer so MoE/MTP metrics also reach MLFlow / Comet (issue #2989).
10501051 # No-op when neither logger is configured: the original writer is returned as-is.
@@ -1058,8 +1059,8 @@ def training_log(
10581059 per_layer_logging = getattr (config .model , "moe_per_layer_logging" , False ),
10591060 force_initialize = True ,
10601061 track_names = track_names ,
1061- num_layers = layers ,
1062- moe_layer_freq = getattr ( config . model , " moe_layer_freq" , None ) ,
1062+ num_layers = num_layers ,
1063+ moe_layer_freq = moe_layer_freq ,
10631064 mtp_num_layers = getattr (config .model , "mtp_num_layers" , None ),
10641065 pg_collection = pg_collection ,
10651066 )
0 commit comments