@@ -214,7 +214,6 @@ class TestPretrainMegatronMIMOSetup:
214214 @patch ("megatron.bridge.training.setup_megatron_mimo.create_checkpoint_manager" )
215215 @patch ("megatron.bridge.training.setup_megatron_mimo.MultiModulePipelineCommunicator" )
216216 @patch ("megatron.bridge.training.setup_megatron_mimo.get_model_config" )
217- @patch ("megatron.bridge.training.setup_megatron_mimo.validate_no_stub_ranks" )
218217 @patch ("megatron.bridge.training.setup_megatron_mimo.build_pg_collection_for_schedule" )
219218 @patch ("megatron.bridge.training.setup_megatron_mimo.get_module_to_grid_tuple" )
220219 @patch ("megatron.bridge.training.setup_megatron_mimo._update_megatron_mimo_model_config_funcs" )
@@ -227,7 +226,6 @@ def test_setup_megatron_mimo_initializes_checkpoint_manager(
227226 mock_update_config_funcs ,
228227 mock_get_grid ,
229228 mock_build_pg ,
230- mock_validate ,
231229 mock_get_config ,
232230 mock_communicator ,
233231 mock_create_ckpt_mgr ,
@@ -278,20 +276,22 @@ def test_setup_megatron_mimo_initializes_checkpoint_manager(
278276 infra .topology = Mock ()
279277 infra .module_output_ndim = {"language" : 3 }
280278 infra .pg_collections = {"language" : Mock ()}
281- cfg .model .build_infra .return_value = infra
282- cfg .model .provide_distributed_model .return_value = [Mock ()]
279+ model = Mock ()
283280
284281 mock_optimizer = MagicMock ()
285282 mock_optimizer .module_infos = {}
283+ start_time_tensor = Mock ()
284+ start_time_tensor .item .return_value = global_state .start_time
286285
287286 with (
288- patch ("megatron.bridge.training.setup_megatron_mimo._set_megatron_mimo_random_seeds" ),
287+ patch ("megatron.bridge.models.megatron_mimo.build_megatron_mimo_model" , return_value = ( model , infra ) ),
289288 patch ("megatron.core.models.mimo.optimizer.get_mimo_optimizer" , return_value = mock_optimizer ),
290289 patch ("megatron.core.num_microbatches_calculator._GLOBAL_NUM_MICROBATCHES_CALCULATOR" , None ),
291290 patch ("megatron.core.num_microbatches_calculator.init_num_microbatches_calculator" ),
292291 patch ("megatron.core.parallel_state._TENSOR_MODEL_PARALLEL_GROUP" , None ),
293292 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP" , None ),
294293 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP_WITH_CP" , None ),
294+ patch ("torch.tensor" , return_value = start_time_tensor ),
295295 ):
296296 result = setup_megatron_mimo (state = global_state )
297297
@@ -990,13 +990,11 @@ class TestSetupMegatronMIMOCheckpointLoading:
990990 "megatron.bridge.training.setup_megatron_mimo.create_checkpoint_manager" ,
991991 "megatron.bridge.training.setup_megatron_mimo.MultiModulePipelineCommunicator" ,
992992 "megatron.bridge.training.setup_megatron_mimo.get_model_config" ,
993- "megatron.bridge.training.setup_megatron_mimo.validate_no_stub_ranks" ,
994993 "megatron.bridge.training.setup_megatron_mimo.build_pg_collection_for_schedule" ,
995994 "megatron.bridge.training.setup_megatron_mimo.get_module_to_grid_tuple" ,
996995 "megatron.bridge.training.setup_megatron_mimo._update_megatron_mimo_model_config_funcs" ,
997996 "megatron.bridge.training.setup_megatron_mimo.unwrap_megatron_mimo_model" ,
998997 "megatron.bridge.training.setup_megatron_mimo.dist" ,
999- "megatron.bridge.training.setup_megatron_mimo._set_megatron_mimo_random_seeds" ,
1000998 "megatron.core.num_microbatches_calculator._GLOBAL_NUM_MICROBATCHES_CALCULATOR" ,
1001999 "megatron.core.num_microbatches_calculator.init_num_microbatches_calculator" ,
10021000 "megatron.core.parallel_state._TENSOR_MODEL_PARALLEL_GROUP" ,
@@ -1039,8 +1037,7 @@ def _run_setup(self, *, load_path=None, checkpoint_exists_return=False):
10391037 infra .topology = Mock ()
10401038 infra .module_output_ndim = {"language" : 3 }
10411039 infra .pg_collections = {"language" : Mock ()}
1042- cfg .model .build_infra .return_value = infra
1043- cfg .model .provide_distributed_model .return_value = [Mock ()]
1040+ model = Mock ()
10441041
10451042 local_pg = MagicMock ()
10461043 mock_optimizer = MagicMock ()
@@ -1087,12 +1084,18 @@ def _run_setup(self, *, load_path=None, checkpoint_exists_return=False):
10871084 stack .enter_context (
10881085 patch ("megatron.core.models.mimo.optimizer.get_mimo_optimizer" , return_value = mock_optimizer )
10891086 )
1087+ stack .enter_context (
1088+ patch ("megatron.bridge.models.megatron_mimo.build_megatron_mimo_model" , return_value = (model , infra ))
1089+ )
10901090
10911091 model_config = Mock (pipeline_dtype = None , bf16 = True )
10921092 stack .enter_context (
10931093 patch ("megatron.bridge.training.setup_megatron_mimo.get_model_config" , return_value = model_config )
10941094 )
10951095 stack .enter_context (patch ("megatron.bridge.training.setup_megatron_mimo.unwrap_megatron_mimo_model" ))
1096+ start_time_tensor = Mock ()
1097+ start_time_tensor .item .return_value = state .start_time
1098+ stack .enter_context (patch ("torch.tensor" , return_value = start_time_tensor ))
10961099
10971100 result = setup_megatron_mimo (state = state )
10981101
@@ -1171,8 +1174,7 @@ def _sig_fn(cfg, megatron_mimo_infra, *, train_state=None):
11711174 infra .topology = Mock ()
11721175 infra .module_output_ndim = {"language" : 3 }
11731176 infra .pg_collections = {"language" : Mock ()}
1174- cfg .model .build_infra .return_value = infra
1175- cfg .model .provide_distributed_model .return_value = [Mock ()]
1177+ model = Mock ()
11761178
11771179 state = Mock ()
11781180 state .cfg = cfg
@@ -1182,11 +1184,12 @@ def _sig_fn(cfg, megatron_mimo_infra, *, train_state=None):
11821184
11831185 mock_optimizer = MagicMock ()
11841186 mock_optimizer .module_infos = {}
1187+ start_time_tensor = Mock ()
1188+ start_time_tensor .item .return_value = state .start_time
11851189
11861190 with (
11871191 patch ("megatron.bridge.training.setup_megatron_mimo.dist" ) as m_dist ,
1188- patch ("megatron.bridge.training.setup_megatron_mimo._set_megatron_mimo_random_seeds" ),
1189- patch ("megatron.bridge.training.setup_megatron_mimo.validate_no_stub_ranks" ),
1192+ patch ("megatron.bridge.models.megatron_mimo.build_megatron_mimo_model" , return_value = (model , infra )),
11901193 patch ("megatron.bridge.training.setup_megatron_mimo.build_pg_collection_for_schedule" ),
11911194 patch ("megatron.bridge.training.setup_megatron_mimo.get_module_to_grid_tuple" ),
11921195 patch ("megatron.bridge.training.setup_megatron_mimo.MultiModulePipelineCommunicator" ),
@@ -1211,6 +1214,7 @@ def _sig_fn(cfg, megatron_mimo_infra, *, train_state=None):
12111214 patch ("megatron.core.parallel_state._TENSOR_MODEL_PARALLEL_GROUP" , None ),
12121215 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP" , None ),
12131216 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP_WITH_CP" , None ),
1217+ patch ("torch.tensor" , return_value = start_time_tensor ),
12141218 ):
12151219 m_dist .get_rank .return_value = 0
12161220 m_dist .get_world_size .return_value = 2
@@ -1253,8 +1257,7 @@ def test_no_train_state_when_not_resuming(self):
12531257 infra .topology = Mock ()
12541258 infra .module_output_ndim = {"language" : 3 }
12551259 infra .pg_collections = {"language" : Mock ()}
1256- cfg .model .build_infra .return_value = infra
1257- cfg .model .provide_distributed_model .return_value = [Mock ()]
1260+ model = Mock ()
12581261
12591262 state = Mock ()
12601263 state .cfg = cfg
@@ -1263,11 +1266,12 @@ def test_no_train_state_when_not_resuming(self):
12631266
12641267 mock_optimizer = MagicMock ()
12651268 mock_optimizer .module_infos = {}
1269+ start_time_tensor = Mock ()
1270+ start_time_tensor .item .return_value = state .start_time
12661271
12671272 with (
12681273 patch ("megatron.bridge.training.setup_megatron_mimo.dist" ) as m_dist ,
1269- patch ("megatron.bridge.training.setup_megatron_mimo._set_megatron_mimo_random_seeds" ),
1270- patch ("megatron.bridge.training.setup_megatron_mimo.validate_no_stub_ranks" ),
1274+ patch ("megatron.bridge.models.megatron_mimo.build_megatron_mimo_model" , return_value = (model , infra )),
12711275 patch ("megatron.bridge.training.setup_megatron_mimo.build_pg_collection_for_schedule" ),
12721276 patch ("megatron.bridge.training.setup_megatron_mimo.get_module_to_grid_tuple" ),
12731277 patch ("megatron.bridge.training.setup_megatron_mimo.MultiModulePipelineCommunicator" ),
@@ -1292,6 +1296,7 @@ def test_no_train_state_when_not_resuming(self):
12921296 patch ("megatron.core.parallel_state._TENSOR_MODEL_PARALLEL_GROUP" , None ),
12931297 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP" , None ),
12941298 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP_WITH_CP" , None ),
1299+ patch ("torch.tensor" , return_value = start_time_tensor ),
12951300 ):
12961301 m_dist .get_rank .return_value = 0
12971302 m_dist .get_world_size .return_value = 2
@@ -1337,8 +1342,7 @@ def legacy_builder(cfg, megatron_mimo_infra):
13371342 infra .topology = Mock ()
13381343 infra .module_output_ndim = {"language" : 3 }
13391344 infra .pg_collections = {"language" : Mock ()}
1340- cfg .model .build_infra .return_value = infra
1341- cfg .model .provide_distributed_model .return_value = [Mock ()]
1345+ model = Mock ()
13421346
13431347 state = Mock ()
13441348 state .cfg = cfg
@@ -1347,11 +1351,12 @@ def legacy_builder(cfg, megatron_mimo_infra):
13471351
13481352 mock_optimizer = MagicMock ()
13491353 mock_optimizer .module_infos = {}
1354+ start_time_tensor = Mock ()
1355+ start_time_tensor .item .return_value = state .start_time
13501356
13511357 with (
13521358 patch ("megatron.bridge.training.setup_megatron_mimo.dist" ) as m_dist ,
1353- patch ("megatron.bridge.training.setup_megatron_mimo._set_megatron_mimo_random_seeds" ),
1354- patch ("megatron.bridge.training.setup_megatron_mimo.validate_no_stub_ranks" ),
1359+ patch ("megatron.bridge.models.megatron_mimo.build_megatron_mimo_model" , return_value = (model , infra )),
13551360 patch ("megatron.bridge.training.setup_megatron_mimo.build_pg_collection_for_schedule" ),
13561361 patch ("megatron.bridge.training.setup_megatron_mimo.get_module_to_grid_tuple" ),
13571362 patch ("megatron.bridge.training.setup_megatron_mimo.MultiModulePipelineCommunicator" ),
@@ -1376,6 +1381,7 @@ def legacy_builder(cfg, megatron_mimo_infra):
13761381 patch ("megatron.core.parallel_state._TENSOR_MODEL_PARALLEL_GROUP" , None ),
13771382 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP" , None ),
13781383 patch ("megatron.core.parallel_state._DATA_PARALLEL_GROUP_WITH_CP" , None ),
1384+ patch ("torch.tensor" , return_value = start_time_tensor ),
13791385 ):
13801386 m_dist .get_rank .return_value = 0
13811387 m_dist .get_world_size .return_value = 2
0 commit comments