From ca85fa205c29131c7bab31006251bddb406df9d4 Mon Sep 17 00:00:00 2001 From: hnyls2002 Date: Thu, 10 Sep 2026 14:49:18 -0700 Subject: [PATCH 1/2] Remove prerelease DeepSeek V4.1 config aliases --- python/sglang/srt/configs/deepseek_v41.py | 49 ++----------------- .../srt/utils/hf_transformers/common.py | 8 +-- 2 files changed, 4 insertions(+), 53 deletions(-) diff --git a/python/sglang/srt/configs/deepseek_v41.py b/python/sglang/srt/configs/deepseek_v41.py index 62d1db2a4e0a..570aae652ec3 100644 --- a/python/sglang/srt/configs/deepseek_v41.py +++ b/python/sglang/srt/configs/deepseek_v41.py @@ -2,14 +2,6 @@ from transformers import DeepseekV3Config, PretrainedConfig -_FIELD_ALIASES = { - "dspark_n_activated_experts": "dspark_num_experts_per_tok", - "kv_source_layers": "kv_source_layer_ids", - "index_source_layers": "index_source_layer_ids", - "candidate_source_layer": "candidate_source_layer_id", - "engram_pad_id": "engram_pad_token_id", -} - _VISION_FIELDS = { "num_hidden_layers": "vision_n_layers", "hidden_size": "vision_dim", @@ -24,40 +16,26 @@ } -def normalize_deepseek_v4_fields(values): - values = dict(values) - for old, new in _FIELD_ALIASES.items(): - if old in values: - legacy_value = values.pop(old) - values.setdefault(new, legacy_value) - return values - - def _config_dict(config): return config.to_dict() if isinstance(config, PretrainedConfig) else dict(config) def normalize_deepseek_v41_config(values): - values = normalize_deepseek_v4_fields(values) + values = dict(values) text = values.pop("text_config", None) vision = values.pop("vision_config", None) if text is not None: - text = normalize_deepseek_v4_fields(_config_dict(text)) + text = _config_dict(text) text.pop("model_type", None) values = {**text, **values} if vision is not None: vision = _config_dict(vision) - if "max_num_tokens" in vision: - vision.setdefault("max_image_tokens", vision["max_num_tokens"]) for source, target in _VISION_FIELDS.items(): if source in vision: values.setdefault(target, vision[source]) if "model_type" in values: values["model_type"] = "deepseek_v41" - if values.get("architectures") in ( - ["DeepseekV41ForCausalLM"], - ["DeepseekV41ForConditionalGeneration"], - ): + if values.get("architectures") == ["DeepseekV41ForCausalLM"]: values["architectures"] = ["DeepseekV4ForCausalLM"] return values @@ -103,9 +81,6 @@ class DeepseekV41VisionConfig(PretrainedConfig): model_type = "deepseek_v41_vision" def __init__(self, **kwargs): - if "max_num_tokens" in kwargs: - legacy_value = kwargs.pop("max_num_tokens") - kwargs.setdefault("max_image_tokens", legacy_value) kwargs["model_type"] = "deepseek_v41_vision" super().__init__(**kwargs) @@ -115,26 +90,8 @@ def to_dict(self): return values -class LegacyDeepseekV41Config(DeepseekV41Config): - model_type = "deepseek_v4.1" - __init__ = DeepseekV41Config.__init__ - - -class LegacyDeepseekV41TextConfig(DeepseekV41TextConfig): - model_type = "deepseek_v4.1_text" - __init__ = DeepseekV41Config.__init__ - - -class LegacyDeepseekV41VisionConfig(DeepseekV41VisionConfig): - model_type = "deepseek_v4.1_vision" - __init__ = DeepseekV41VisionConfig.__init__ - - DEEPSEEK_V41_CONFIG_CLASSES = ( DeepseekV41Config, DeepseekV41TextConfig, DeepseekV41VisionConfig, - LegacyDeepseekV41Config, - LegacyDeepseekV41TextConfig, - LegacyDeepseekV41VisionConfig, ) diff --git a/python/sglang/srt/utils/hf_transformers/common.py b/python/sglang/srt/utils/hf_transformers/common.py index 54ef5d2db2f7..c9569fb87cf4 100644 --- a/python/sglang/srt/utils/hf_transformers/common.py +++ b/python/sglang/srt/utils/hf_transformers/common.py @@ -74,10 +74,7 @@ XllmConfig, ) from sglang.srt.configs.deepseek_ocr import DeepseekVLV2Config -from sglang.srt.configs.deepseek_v41 import ( - DEEPSEEK_V41_CONFIG_CLASSES, - normalize_deepseek_v4_fields, -) +from sglang.srt.configs.deepseek_v41 import DEEPSEEK_V41_CONFIG_CLASSES from sglang.srt.configs.internvl import InternVLChatConfig from sglang.srt.utils import get_bool_env_var, logger, lru_cache_frozenset from sglang.srt.utils.runai_utils import ObjectStorageModel, is_runai_obj_uri @@ -184,9 +181,6 @@ class _DeepseekV4ConfigAlias(_HFDeepseekV3Config): engram_pad_token_id = 2 engram_compressed_vocab_size = 0 - def __init__(self, **kwargs): - super().__init__(**normalize_deepseek_v4_fields(kwargs)) - _CONFIG_REGISTRY["deepseek_v32"] = _DeepseekV32ConfigAlias _CONFIG_REGISTRY["deepseek_v4"] = _DeepseekV4ConfigAlias _CONFIG_REGISTRY.update( From b4c0868252e81cb2ebcd15a3c270e38d197ed8b8 Mon Sep 17 00:00:00 2001 From: hnyls2002 Date: Thu, 10 Sep 2026 14:51:49 -0700 Subject: [PATCH 2/2] Simplify canonical DeepSeek V4.1 vision config --- python/sglang/srt/configs/deepseek_v41.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/python/sglang/srt/configs/deepseek_v41.py b/python/sglang/srt/configs/deepseek_v41.py index 570aae652ec3..f23951dbb482 100644 --- a/python/sglang/srt/configs/deepseek_v41.py +++ b/python/sglang/srt/configs/deepseek_v41.py @@ -80,15 +80,6 @@ class DeepseekV41TextConfig(DeepseekV41Config): class DeepseekV41VisionConfig(PretrainedConfig): model_type = "deepseek_v41_vision" - def __init__(self, **kwargs): - kwargs["model_type"] = "deepseek_v41_vision" - super().__init__(**kwargs) - - def to_dict(self): - values = super().to_dict() - values["model_type"] = "deepseek_v41_vision" - return values - DEEPSEEK_V41_CONFIG_CLASSES = ( DeepseekV41Config,