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"]