@@ -401,6 +401,8 @@ def get_decoder_layers(self):
401401 return [qwen3 .Qwen3DecoderLayerToLinen ]
402402 case DecoderBlockType .QWEN3_MOE :
403403 return [qwen3 .Qwen3MoeDecoderLayerToLinen ]
404+ case DecoderBlockType .QWEN3_NEXT :
405+ return [qwen3 .Qwen3NextScannableBlockToLinen ] if self .config .scan_layers else [qwen3 .Qwen3NextDecoderLayerToLinen ]
404406 case DecoderBlockType .SIMPLE :
405407 return [simple_layer .SimpleDecoderLayerToLinen ]
406408 case DecoderBlockType .SIMPLE_MLP :
@@ -452,6 +454,7 @@ def get_norm_layer(self, num_features: int):
452454 DecoderBlockType .GEMMA3 ,
453455 DecoderBlockType .QWEN3 ,
454456 DecoderBlockType .QWEN3_MOE ,
457+ DecoderBlockType .QWEN3_NEXT ,
455458 DecoderBlockType .GPT_OSS ,
456459 DecoderBlockType .SIMPLE ,
457460 DecoderBlockType .SIMPLE_MLP ,
@@ -824,6 +827,8 @@ def __call__(
824827 "is_nope_layer" : llama4 .determine_is_nope_layer (lyr , self .config .nope_layer_interval ),
825828 "is_moe_layer" : llama4 .determine_is_moe_layer (lyr , self .config .interleave_moe_layer_step ),
826829 }
830+ if cfg .decoder_block == DecoderBlockType .QWEN3_NEXT :
831+ layer_kwargs = {"layer_idx" : lyr }
827832 if cfg .decoder_block == DecoderBlockType .GPT_OSS :
828833 layer_kwargs = {"attention_type" : gpt_oss .get_attention_type (layer_id = lyr )}
829834 layer = RemattedBlockLayer (
0 commit comments