@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 2f186635cb
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 8, 07:30 UTC

[Bugfix] Fix Qwen3.5 config loading (#34554)

Signed-off-by: Roger Wang <hey@rogerw.io>

Roger Wang committed Feb 14, 2026 at 03:56 UTC 2f186635cbcb38fd85e718a5b7ff9ec698cbb4f8
2 files changed +18 -10
vllm/transformers_utils/configs/qwen3_5.py
+9 -5
@@ -72,10 +72,6 @@ class Qwen3_5TextConfig(PretrainedConfig):
72 "mrope_section",
73 "mrope_interleaved",
74 ]
75 - self.pad_token_id = pad_token_id
76 - self.bos_token_id = bos_token_id
77 - self.eos_token_id = eos_token_id
78 - self.tie_word_embeddings = tie_word_embeddings
75 self.vocab_size = vocab_size
76 self.max_position_embeddings = max_position_embeddings
77 self.hidden_size = hidden_size
@@ -111,6 +107,13 @@ class Qwen3_5TextConfig(PretrainedConfig):
107 self.linear_num_key_heads = linear_num_key_heads
108 self.linear_num_value_heads = linear_num_value_heads
109 super().__init__(**kwargs)
110 + # Set these AFTER super().__init__() because transformers v4's
111 + # PretrainedConfig.__init__ has these as explicit params with different
112 + # defaults (e.g. tie_word_embeddings=True) that would overwrite our values.
113 + self.pad_token_id = pad_token_id
114 + self.bos_token_id = bos_token_id
115 + self.eos_token_id = eos_token_id
116 + self.tie_word_embeddings = tie_word_embeddings
117
118
119 class Qwen3_5VisionConfig(PretrainedConfig):
@@ -182,8 +185,9 @@ class Qwen3_5Config(PretrainedConfig):
185 self.video_token_id = video_token_id
186 self.vision_start_token_id = vision_start_token_id
187 self.vision_end_token_id = vision_end_token_id
185 - self.tie_word_embeddings = tie_word_embeddings
188 super().__init__(**kwargs)
189 + # Set after super().__init__() to avoid v4 PretrainedConfig overwrite
190 + self.tie_word_embeddings = tie_word_embeddings
191
192
193 __all__ = ["Qwen3_5Config", "Qwen3_5TextConfig"]
vllm/transformers_utils/configs/qwen3_5_moe.py
+9 -5
@@ -79,10 +79,6 @@ class Qwen3_5MoeTextConfig(PretrainedConfig):
79 "mrope_section",
80 "mrope_interleaved",
81 ]
82 - self.pad_token_id = pad_token_id
83 - self.bos_token_id = bos_token_id
84 - self.eos_token_id = eos_token_id
85 - self.tie_word_embeddings = tie_word_embeddings
82 self.vocab_size = vocab_size
83 self.max_position_embeddings = max_position_embeddings
84 self.hidden_size = hidden_size
@@ -123,6 +119,13 @@ class Qwen3_5MoeTextConfig(PretrainedConfig):
119 self.output_router_logits = output_router_logits
120 self.router_aux_loss_coef = router_aux_loss_coef
121 super().__init__(**kwargs)
122 + # Set these AFTER super().__init__() because transformers v4's
123 + # PretrainedConfig.__init__ has these as explicit params with different
124 + # defaults (e.g. tie_word_embeddings=True) that would overwrite our values.
125 + self.pad_token_id = pad_token_id
126 + self.bos_token_id = bos_token_id
127 + self.eos_token_id = eos_token_id
128 + self.tie_word_embeddings = tie_word_embeddings
129
130
131 class Qwen3_5MoeVisionConfig(PretrainedConfig):
@@ -194,8 +197,9 @@ class Qwen3_5MoeConfig(PretrainedConfig):
197 self.video_token_id = video_token_id
198 self.vision_start_token_id = vision_start_token_id
199 self.vision_end_token_id = vision_end_token_id
197 - self.tie_word_embeddings = tie_word_embeddings
200 super().__init__(**kwargs)
201 + # Set after super().__init__() to avoid v4 PretrainedConfig overwrite
202 + self.tie_word_embeddings = tie_word_embeddings
203
204
205 __all__ = ["Qwen3_5MoeConfig", "Qwen3_5MoeTextConfig"]