@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 979f50efd0
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 11, 16:15 UTC

[Deprecation] Remove fallbacks for `embed_input_ids` and `embed_multimodal` (#30458)

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

Cyrus Leung committed Dec 11, 2025 at 14:58 UTC 979f50efd04552654eca57c7e71e38160a7cbb5c
5 files changed +9 -68
vllm/model_executor/models/interfaces.py
+2 -13
@@ -111,13 +111,7 @@ class SupportsMultiModal(Protocol):
111 the appearances of their corresponding multimodal data item in the
112 input prompt.
113 """
114 - if hasattr(self, "get_multimodal_embeddings"):
115 - logger.warning_once(
116 - "`get_multimodal_embeddings` for vLLM models is deprecated and will be "
117 - "removed in v0.13.0 or v1.0.0, whichever is earlier. Please rename "
118 - "this method to `embed_multimodal`."
119 - )
120 - return self.get_multimodal_embeddings(**kwargs)
114 + ...
115
116 def get_language_model(self) -> VllmModel:
117 """
@@ -196,12 +190,7 @@ class SupportsMultiModal(Protocol):
190 if multimodal_embeddings is None or len(multimodal_embeddings) == 0:
191 return inputs_embeds
192
199 - if is_multimodal is None:
200 - raise ValueError(
201 - "`embed_input_ids` now requires `is_multimodal` arg, "
202 - "please update your model runner according to "
203 - "https://github.com/vllm-project/vllm/pull/16229."
204 - )
193 + assert is_multimodal is not None
194
195 return _merge_multimodal_embeddings(
196 inputs_embeds=inputs_embeds,
vllm/model_executor/models/interfaces_base.py
-9
@@ -68,15 +68,6 @@ def _check_vllm_model_init(model: type[object] | object) -> bool:
68 def _check_vllm_model_embed_input_ids(model: type[object] | object) -> bool:
69 model_embed_input_ids = getattr(model, "embed_input_ids", None)
70 if not callable(model_embed_input_ids):
71 - model_get_input_embeddings = getattr(model, "get_input_embeddings", None)
72 - if callable(model_get_input_embeddings):
73 - logger.warning(
74 - "`get_input_embeddings` for vLLM models is deprecated and will be "
75 - "removed in v0.13.0 or v1.0.0, whichever is earlier. Please rename "
76 - "this method to `embed_input_ids`."
77 - )
78 - model.embed_input_ids = model_get_input_embeddings
79 - return True
71 logger.warning(
72 "The model (%s) is missing the `embed_input_ids` method.",
73 model,
vllm/model_executor/models/mistral_large_3_eagle.py
+5 -34
@@ -18,15 +18,10 @@ from vllm.model_executor.models.deepseek_v2 import (
18 DeepseekV2DecoderLayer,
19 DeepseekV2Model,
20 )
21 -from vllm.model_executor.models.interfaces import MultiModalEmbeddings
21 from vllm.model_executor.models.mistral_large_3 import MistralLarge3ForCausalLM
23 -from vllm.multimodal.inputs import NestedTensors
22
25 -from .utils import (
26 - _merge_multimodal_embeddings,
27 - make_empty_intermediate_tensors_factory,
28 - maybe_prefix,
29 -)
23 +from .interfaces import SupportsMultiModal
24 +from .utils import make_empty_intermediate_tensors_factory, maybe_prefix
25
26 logger = init_logger(__name__)
27
@@ -117,26 +112,10 @@ class EagleMistralLarge3ForCausalLM(MistralLarge3ForCausalLM):
112 )
113 super().__init__(vllm_config=vllm_config, prefix=prefix)
114
120 - def get_input_embeddings(
121 - self,
122 - input_ids: torch.Tensor,
123 - multimodal_embeddings: MultiModalEmbeddings | None = None,
124 - *,
125 - is_multimodal: torch.Tensor | None = None,
126 - handle_oov_mm_token: bool = False,
127 - ) -> torch.Tensor:
128 - inputs_embeds = super().embed_input_ids(input_ids)
129 -
130 - if multimodal_embeddings is None or len(multimodal_embeddings) == 0:
131 - return inputs_embeds
115 + def get_language_model(self) -> torch.nn.Module:
116 + return self.model
117
133 - assert is_multimodal is not None
134 -
135 - return _merge_multimodal_embeddings(
136 - inputs_embeds=inputs_embeds,
137 - multimodal_embeddings=multimodal_embeddings,
138 - is_multimodal=is_multimodal,
139 - )
118 + embed_input_ids = SupportsMultiModal.embed_input_ids # type: ignore
119
120 def forward(
121 self,
@@ -155,11 +134,3 @@ class EagleMistralLarge3ForCausalLM(MistralLarge3ForCausalLM):
134 "model.embed_tokens.weight",
135 "lm_head.weight",
136 }
158 -
159 - def embed_input_ids(
160 - self,
161 - input_ids: torch.Tensor,
162 - multimodal_embeddings: NestedTensors | None = None,
163 - is_multimodal: torch.Tensor | None = None,
164 - ) -> torch.Tensor:
165 - return self.model.embed_input_ids(input_ids)
vllm/model_executor/models/phi3v.py
+1 -6
@@ -687,12 +687,7 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsQuant)
687 if multimodal_embeddings is None or len(multimodal_embeddings) == 0:
688 return inputs_embeds
689
690 - if is_multimodal is None:
691 - raise ValueError(
692 - "`embed_input_ids` now requires `is_multimodal` arg, "
693 - "please update your model runner according to "
694 - "https://github.com/vllm-project/vllm/pull/16229."
695 - )
690 + assert is_multimodal is not None
691
692 return _merge_multimodal_embeddings(
693 inputs_embeds=inputs_embeds,
vllm/model_executor/models/qwen3_vl.py
+1 -6
@@ -1572,12 +1572,7 @@ class Qwen3VLForConditionalGeneration(
1572 if multimodal_embeddings is None or len(multimodal_embeddings) == 0:
1573 return inputs_embeds
1574
1575 - if is_multimodal is None:
1576 - raise ValueError(
1577 - "`embed_input_ids` now requires `is_multimodal` arg, "
1578 - "please update your model runner according to "
1579 - "https://github.com/vllm-project/vllm/pull/16229."
1580 - )
1575 + assert is_multimodal is not None
1576
1577 if self.use_deepstack:
1578 (