@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / e57ef99b40
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, 22:45 UTC

[Model] Apply #32631 for recent models (#33785)

Signed-off-by: DarkLight1337 <tlleungac@connect.ust.hk>

Cyrus Leung committed Feb 4, 2026 at 20:23 UTC e57ef99b409ba651695a515f6022c9badf25b2a2
4 files changed +46 -50
vllm/model_executor/models/eagle2_5_vl.py
+16 -17
@@ -222,22 +222,24 @@ class Eagle2_5_VLForConditionalGeneration(
222
223 self.select_layer = getattr(config, "select_layer", -1)
224
225 - # Vision encoder (SigLIP)
226 - self.vision_model = self._init_vision_model(
227 - config,
228 - quant_config=quant_config,
229 - prefix=maybe_prefix(prefix, "vision_model"),
230 - )
225 + with self._mark_tower_model(vllm_config, "image"):
226 + # Vision encoder (SigLIP)
227 + self.vision_model = self._init_vision_model(
228 + config,
229 + quant_config=quant_config,
230 + prefix=maybe_prefix(prefix, "vision_model"),
231 + )
232
232 - # Language model (Qwen2)
233 - self.language_model = init_vllm_registered_model(
234 - vllm_config=vllm_config,
235 - hf_config=config.text_config,
236 - prefix=maybe_prefix(prefix, "language_model"),
237 - )
233 + # MLP projection
234 + self.mlp1 = self._init_mlp1(config)
235
239 - # MLP projection
240 - self.mlp1 = self._init_mlp1(config)
236 + with self._mark_language_model(vllm_config):
237 + # Language model (Qwen2)
238 + self.language_model = init_vllm_registered_model(
239 + vllm_config=vllm_config,
240 + hf_config=config.text_config,
241 + prefix=maybe_prefix(prefix, "language_model"),
242 + )
243
244 self.img_context_token_id = None
245
@@ -399,9 +401,6 @@ class Eagle2_5_VLForConditionalGeneration(
401 ]
402 return image_embeds.split(image_feature_sizes)
403
402 - def get_language_model(self) -> torch.nn.Module:
403 - return self.language_model
404 -
404 def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
405 """Embed multimodal inputs."""
406 image_input = self._parse_and_validate_image_input(**kwargs)
vllm/model_executor/models/funaudiochat.py
-3
@@ -820,9 +820,6 @@ class FunAudioChatForConditionalGeneration(nn.Module, SupportsMultiModal, Suppor
820 self.language_model.make_empty_intermediate_tensors
821 )
822
823 - def get_language_model(self) -> torch.nn.Module:
824 - return self.language_model
825 -
823 def _get_continuous_audio_features(
824 self,
825 input_features: torch.Tensor,
vllm/model_executor/models/openpangu_vl.py
+17 -16
@@ -843,20 +843,24 @@ class OpenPanguVLForConditionalGeneration(
843 self.config = config
844 self.vllm_config = vllm_config
845 quant_config = vllm_config.quant_config
846 - self.visual = OpenPanguVisionTransformer(
847 - vision_config=config.vision_config,
848 - out_hidden_size=config.vision_config.out_hidden_size,
849 - hidden_size=config.hidden_size,
850 - norm_eps=getattr(config.vision_config, "rms_norm_eps", 1e-6),
851 - quant_config=self._maybe_ignore_quant_config(quant_config),
852 - prefix=maybe_prefix(prefix, "visual"),
853 - )
846
855 - self.language_model = init_vllm_registered_model(
856 - vllm_config=vllm_config,
857 - prefix=maybe_prefix("openpangu", "language_model"),
858 - architectures=["PanguEmbeddedForCausalLM"],
859 - )
847 + with self._mark_tower_model(vllm_config, {"image", "video"}):
848 + self.visual = OpenPanguVisionTransformer(
849 + vision_config=config.vision_config,
850 + out_hidden_size=config.vision_config.out_hidden_size,
851 + hidden_size=config.hidden_size,
852 + norm_eps=getattr(config.vision_config, "rms_norm_eps", 1e-6),
853 + quant_config=self._maybe_ignore_quant_config(quant_config),
854 + prefix=maybe_prefix(prefix, "visual"),
855 + )
856 +
857 + with self._mark_language_model(vllm_config):
858 + self.language_model = init_vllm_registered_model(
859 + vllm_config=vllm_config,
860 + prefix=maybe_prefix("openpangu", "language_model"),
861 + architectures=["PanguEmbeddedForCausalLM"],
862 + )
863 +
864 self.make_empty_intermediate_tensors = (
865 self.language_model.make_empty_intermediate_tensors
866 )
@@ -1008,9 +1012,6 @@ class OpenPanguVLForConditionalGeneration(
1012 )
1013 return mm_input_by_modality
1014
1011 - def get_language_model(self) -> torch.nn.Module:
1012 - return self.language_model
1013 -
1015 def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1016 mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1017 if not mm_input_by_modality:
vllm/model_executor/models/qwen3_asr.py
+13 -14
@@ -296,19 +296,21 @@ class Qwen3ASRForConditionalGeneration(
296 multimodal_config = vllm_config.model_config.multimodal_config
297 self.config = thinker_config
298 self.multimodal_config = multimodal_config
299 -
300 - self.audio_tower = Qwen3OmniMoeAudioEncoder(
301 - thinker_config.audio_config,
302 - prefix=maybe_prefix(prefix, "audio_tower"),
303 - )
299 self.quant_config = quant_config
300
306 - self.language_model = Qwen3ForCausalLM(
307 - vllm_config=vllm_config.with_hf_config(
308 - thinker_config.text_config, architectures=["Qwen3ForCausalLM"]
309 - ),
310 - prefix=maybe_prefix(prefix, "language_model"),
311 - )
301 + with self._mark_tower_model(vllm_config, "audio"):
302 + self.audio_tower = Qwen3OmniMoeAudioEncoder(
303 + thinker_config.audio_config,
304 + prefix=maybe_prefix(prefix, "audio_tower"),
305 + )
306 +
307 + with self._mark_language_model(vllm_config):
308 + self.language_model = Qwen3ForCausalLM(
309 + vllm_config=vllm_config.with_hf_config(
310 + thinker_config.text_config, architectures=["Qwen3ForCausalLM"]
311 + ),
312 + prefix=maybe_prefix(prefix, "language_model"),
313 + )
314
315 self.make_empty_intermediate_tensors = (
316 self.language_model.make_empty_intermediate_tensors
@@ -363,9 +365,6 @@ class Qwen3ASRForConditionalGeneration(
365 )
366 return audio_features.split(audio_output_lengths.tolist())
367
366 - def get_language_model(self) -> torch.nn.Module:
367 - return self.language_model
368 -
368 def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
369 mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
370 if not mm_input_by_modality: