From 4ca0983aa4faa0c5796f0956859d2c3df6187406 Mon Sep 17 00:00:00 2001 From: nanjiangwill Date: Tue, 17 Mar 2026 22:24:30 -0700 Subject: [PATCH] fix: propagate moe_token_dispatcher_type in bridge model provider Bridge provider was missing moe_token_dispatcher_type propagation. Since slime always sets variable_seq_lengths=True and allgather dispatcher is incompatible with it, finalize() raises a ValueError. Propagate moe_token_dispatcher_type from args (already corrected to alltoall by validate_args) when the attribute exists. For newer Megatron versions where the attribute was removed from args, the provider is left untouched. Closes #1725 Made-with: Cursor --- slime/backends/megatron_utils/model_provider.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/slime/backends/megatron_utils/model_provider.py b/slime/backends/megatron_utils/model_provider.py index ba10c9956f..6da7a66236 100644 --- a/slime/backends/megatron_utils/model_provider.py +++ b/slime/backends/megatron_utils/model_provider.py @@ -95,6 +95,8 @@ def wrapped_model_provider( provider.sequence_parallel = args.sequence_parallel provider.context_parallel_size = args.context_parallel_size provider.variable_seq_lengths = args.variable_seq_lengths + if hasattr(args, "moe_token_dispatcher_type"): + provider.moe_token_dispatcher_type = args.moe_token_dispatcher_type if getattr(args, "decoder_first_pipeline_num_layers", None) is not None: provider.num_layers_in_first_pipeline_stage = args.decoder_first_pipeline_num_layers if getattr(args, "decoder_last_pipeline_num_layers", None) is not None: