From a81cc1b8b3aaafbe2afc415764aef2372cf5946b Mon Sep 17 00:00:00 2001 From: Yuhao Yang <47235274+yhyang201@users.noreply.github.com> Date: Sun, 14 Dec 2025 02:54:08 +0800 Subject: [PATCH] add transformers version validation for glm-4.6v moe models (#14998) --- python/sglang/srt/configs/model_config.py | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/python/sglang/srt/configs/model_config.py b/python/sglang/srt/configs/model_config.py index 471d0b3ee..edfe541e3 100644 --- a/python/sglang/srt/configs/model_config.py +++ b/python/sglang/srt/configs/model_config.py @@ -205,6 +205,8 @@ class ModelConfig: # Verify quantization self._verify_quantization() + self._verify_transformers_version() + # Verify dual-chunk attention config self._verify_dual_chunk_attention_config() @@ -773,6 +775,41 @@ class ModelConfig: "sparse_attention_enabled" ] = True + def _verify_transformers_version(self): + import transformers + from packaging import version + + tf_version_str = getattr(transformers, "__version__", None) + if tf_version_str is None: + return + + vision_config = getattr(self.hf_config, "vision_config", None) + is_glm_46vmoe = "glm-4.6v" in self.model_path.lower() or ( + vision_config is not None + and getattr(vision_config, "model_type", None) == "glm4v_moe_vision" + # The vision config model type for GLM-4.5v is 'glm4v_moe', + # while for GLM-4.6v, it is 'glm4v_moe_vision'. + ) + needs_tf_v5 = is_glm_46vmoe + + tf_version = version.parse(tf_version_str) + required_version = version.parse("5.0.0") + + if tf_version < required_version: + if needs_tf_v5: + raise ValueError( + f"Transformers version {tf_version_str} is not supported for model {self.model_path} " + f"or model type {self.hf_config.model_type}. " + "Please upgrade transformers to >= 5.0.0." + ) + elif not needs_tf_v5: + logger.warning( + f"Transformers version {tf_version_str} is used for model type {self.hf_config.model_type}. " + "If you experience issues related to RoPE parameters, " + "they may be due to incompatibilities between Transformers >=5.0.0 and some models. " + "You can try downgrading to transformers==4.57.1 as a workaround." + ) + def _get_hf_eos_token_id(self) -> Optional[Set[int]]: eos_ids = getattr(self.hf_config, "eos_token_id", None) if eos_ids is not None: