Replace a single MoE module with AutoEPMoELayer in-place on the model.
(
self,
spec: MoELayerSpec,
ep_size: int,
ep_rank: int,
)
| 526 | ) |
| 527 | |
| 528 | def replace_moe_layer( |
| 529 | self, |
| 530 | spec: MoELayerSpec, |
| 531 | ep_size: int, |
| 532 | ep_rank: int, |
| 533 | ) -> None: |
| 534 | """Replace a single MoE module with AutoEPMoELayer in-place on the model.""" |
| 535 | replacement = self._replace_moe_layer_without_retarget(spec, ep_size, ep_rank) |
| 536 | self._retarget_transformers_output_recorders(spec, replacement) |
| 537 | |
| 538 | logger.info(f"AutoEP: replaced '{spec.moe_module_name}' with AutoEPMoELayer " |
| 539 | f"(ep_size={ep_size}, ep_rank={ep_rank}, " |
| 540 | f"local_experts={replacement.num_local_experts})") |
| 541 | |
| 542 | def replace_moe_layers( |
| 543 | self, |