From 71c8db1eed554f52856d3be4cb3a491fad8f65fb Mon Sep 17 00:00:00 2001 From: winklemad Date: Wed, 15 Jul 2026 15:12:38 +0530 Subject: [PATCH] Fix DeepSpeedInferenceConfig crash on bool moe backward-compat value Signed-off-by: winklemad --- deepspeed/inference/config.py | 2 +- tests/unit/inference/test_inference_config.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/deepspeed/inference/config.py b/deepspeed/inference/config.py index 6df61f7c8841..2ef43cb0239d 100644 --- a/deepspeed/inference/config.py +++ b/deepspeed/inference/config.py @@ -313,7 +313,7 @@ def validate_dtype(cls, field_value, values): @field_validator("moe") def moe_backward_compat(cls, field_value, values): if isinstance(field_value, bool): - return DeepSpeedMoEConfig(moe=field_value) + return DeepSpeedMoEConfig(enabled=field_value) return field_value @field_validator("use_triton") diff --git a/tests/unit/inference/test_inference_config.py b/tests/unit/inference/test_inference_config.py index 39d62d17372c..a655abd9d8e7 100644 --- a/tests/unit/inference/test_inference_config.py +++ b/tests/unit/inference/test_inference_config.py @@ -42,3 +42,13 @@ def test_json_config(self, tmpdir): engine = deepspeed.init_inference(torch.nn.Module(), config=config_json) assert engine._config.replace_with_kernel_inject + + def test_moe_backward_compat_bool(self): + # `moe` accepts a bool for backward compatibility (moe: Union[bool, DeepSpeedMoEConfig]); + # it should build a DeepSpeedMoEConfig rather than raising a validation error. + from deepspeed.inference.config import DeepSpeedInferenceConfig, DeepSpeedMoEConfig + + for value in (True, False): + config = DeepSpeedInferenceConfig(moe=value) + assert isinstance(config.moe, DeepSpeedMoEConfig) + assert config.moe.enabled == value