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 13, 08:15 UTC
Rename clashing method names for vLLM model protocol (#27583)
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
Harry Mellor committed
Nov 13, 2025 at 03:14 UTC
97d1c99302df6f7eadc0d0b32ec174db69cb4421
164 files changed
+574
-583
docs/contributing/model/basic.md
+2
-2
@@ -56,13 +56,13 @@ The initialization code should look like this:
56
57
### Computation Code
58
59
-- Add a `get_input_embeddings` method inside `MyModel` module that returns the text embeddings given `input_ids`. This is equivalent to directly calling the text embedding layer, but provides a unified interface in case `MyModel` is used within a composite multimodal model.
59
+- Add a `embed_input_ids` method inside `MyModel` module that returns the text embeddings given `input_ids`. This is equivalent to directly calling the text embedding layer, but provides a unified interface in case `MyModel` is used within a composite multimodal model.
60
61
```python
62
class MyModel(nn.Module):
63
...
64
65
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
65
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
66
...
67
```
68
docs/contributing/model/multimodal.md
+3
-3
@@ -36,7 +36,7 @@ Further update the model as follows:
36
37
More conveniently, you can simply pass `**kwargs` to the [forward][torch.nn.Module.forward] method and retrieve the keyword parameters for multimodal inputs from it.
38
39
-- Implement [get_multimodal_embeddings][vllm.model_executor.models.interfaces.SupportsMultiModal.get_multimodal_embeddings] that returns the embeddings from running the multimodal inputs through the multimodal tokenizer of the model. Below we provide a boilerplate of a typical implementation pattern, but feel free to adjust it to your own needs.
39
+- Implement [embed_multimodal][vllm.model_executor.models.interfaces.SupportsMultiModal.embed_multimodal] that returns the embeddings from running the multimodal inputs through the multimodal tokenizer of the model. Below we provide a boilerplate of a typical implementation pattern, but feel free to adjust it to your own needs.
40
41
??? code
42
@@ -49,7 +49,7 @@ Further update the model as follows:
49
image_features = self.vision_encoder(image_input)
50
return self.multi_modal_projector(image_features)
51
52
- def get_multimodal_embeddings(
52
+ def embed_multimodal(
53
self,
54
**kwargs: object,
55
) -> MultiModalEmbeddings | None:
@@ -69,7 +69,7 @@ Further update the model as follows:
69
!!! note
70
By default, vLLM merges the multimodal embeddings into text embeddings depending on the information of their locations defined in
71
[PlaceholderRange][vllm.multimodal.inputs.PlaceholderRange] from input processing.
72
- This logic can be found at [get_input_embeddings][vllm.model_executor.models.interfaces.SupportsMultiModal.get_input_embeddings].
72
+ This logic can be found at [embed_input_ids][vllm.model_executor.models.interfaces.SupportsMultiModal.embed_input_ids].
73
74
You may override this method if additional logic is required for your model when merging embeddings.
75
vllm/model_executor/models/apertus.py
+4
-4
@@ -382,7 +382,7 @@ class ApertusModel(nn.Module):
382
["hidden_states", "residual"], config.hidden_size
383
)
384
385
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
385
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
386
return self.embed_tokens(input_ids)
387
388
def forward(
@@ -396,7 +396,7 @@ class ApertusModel(nn.Module):
396
if inputs_embeds is not None:
397
hidden_states = inputs_embeds
398
else:
399
- hidden_states = self.get_input_embeddings(input_ids)
399
+ hidden_states = self.embed_input_ids(input_ids)
400
residual = None
401
else:
402
assert intermediate_tensors is not None
@@ -557,8 +557,8 @@ class ApertusForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
557
vllm_config=vllm_config, prefix=prefix, layer_type=layer_type
558
)
559
560
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
561
- return self.model.get_input_embeddings(input_ids)
560
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
561
+ return self.model.embed_input_ids(input_ids)
562
563
def forward(
564
self,
vllm/model_executor/models/arcee.py
+4
-4
@@ -239,7 +239,7 @@ class ArceeModel(nn.Module):
239
["hidden_states", "residual"], config.hidden_size
240
)
241
242
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
242
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
243
return self.embed_tokens(input_ids)
244
245
def forward(
@@ -254,7 +254,7 @@ class ArceeModel(nn.Module):
254
hidden_states = (
255
inputs_embeds
256
if inputs_embeds is not None
257
- else self.get_input_embeddings(input_ids)
257
+ else self.embed_input_ids(input_ids)
258
)
259
residual = None
260
else:
@@ -423,8 +423,8 @@ class ArceeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
423
logits = self.logits_processor(self.lm_head, hidden_states)
424
return logits
425
426
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
427
- return self.model.get_input_embeddings(input_ids)
426
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
427
+ return self.model.embed_input_ids(input_ids)
428
429
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]) -> set[str]:
430
"""Load weights into the model (delegates to inner model and handles
vllm/model_executor/models/arctic.py
+4
-4
@@ -442,7 +442,7 @@ class ArcticModel(nn.Module):
442
["hidden_states"], config.hidden_size
443
)
444
445
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
445
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
446
return self.embed_tokens(input_ids)
447
448
def forward(
@@ -456,7 +456,7 @@ class ArcticModel(nn.Module):
456
if inputs_embeds is not None:
457
hidden_states = inputs_embeds
458
else:
459
- hidden_states = self.get_input_embeddings(input_ids)
459
+ hidden_states = self.embed_input_ids(input_ids)
460
else:
461
assert intermediate_tensors is not None
462
hidden_states = intermediate_tensors["hidden_states"]
@@ -496,8 +496,8 @@ class ArcticForCausalLM(nn.Module, SupportsPP, SupportsQuant):
496
self.model.make_empty_intermediate_tensors
497
)
498
499
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
500
- return self.model.get_input_embeddings(input_ids)
499
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
500
+ return self.model.embed_input_ids(input_ids)
501
502
def forward(
503
self,
vllm/model_executor/models/aria.py
+3
-3
@@ -613,7 +613,7 @@ class AriaForConditionalGeneration(nn.Module, SupportsMultiModal):
613
def get_language_model(self) -> torch.nn.Module:
614
return self.language_model
615
616
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
616
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
617
image_input = self._parse_and_validate_image_input(**kwargs)
618
if image_input is None:
619
return []
@@ -629,8 +629,8 @@ class AriaForConditionalGeneration(nn.Module, SupportsMultiModal):
629
**kwargs: object,
630
) -> torch.Tensor | IntermediateTensors:
631
if inputs_embeds is None:
632
- multimodal_embeddings = self.get_multimodal_embeddings(**kwargs)
633
- inputs_embeds = self.get_input_embeddings(
632
+ multimodal_embeddings = self.embed_multimodal(**kwargs)
633
+ inputs_embeds = self.embed_input_ids(
634
input_ids,
635
multimodal_embeddings,
636
is_multimodal=input_ids == self.config.image_token_index,
vllm/model_executor/models/aya_vision.py
+1
-1
@@ -417,7 +417,7 @@ class AyaVisionForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsP
417
def get_language_model(self) -> torch.nn.Module:
418
return self.language_model
419
420
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
420
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
421
image_input = self._parse_and_validate_image_input(**kwargs)
422
if image_input is None:
423
return []
vllm/model_executor/models/baichuan.py
+4
-4
@@ -309,7 +309,7 @@ class BaiChuanModel(nn.Module):
309
["hidden_states", "residual"], config.hidden_size
310
)
311
312
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
312
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
313
return self.embed_tokens(input_ids)
314
315
def forward(
@@ -323,7 +323,7 @@ class BaiChuanModel(nn.Module):
323
if inputs_embeds is not None:
324
hidden_states = inputs_embeds
325
else:
326
- hidden_states = self.get_input_embeddings(input_ids)
326
+ hidden_states = self.embed_input_ids(input_ids)
327
residual = None
328
else:
329
assert intermediate_tensors is not None
@@ -426,8 +426,8 @@ class BaiChuanBaseForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant
426
self.model.make_empty_intermediate_tensors
427
)
428
429
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
430
- return self.model.get_input_embeddings(input_ids)
429
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
430
+ return self.model.embed_input_ids(input_ids)
431
432
def forward(
433
self,
vllm/model_executor/models/bailing_moe.py
+4
-4
@@ -438,7 +438,7 @@ class BailingMoeModel(nn.Module):
438
else:
439
self.norm = PPMissingLayer()
440
441
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
441
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
442
return self.word_embeddings(input_ids)
443
444
def forward(
@@ -452,7 +452,7 @@ class BailingMoeModel(nn.Module):
452
if inputs_embeds is not None:
453
hidden_states = inputs_embeds
454
else:
455
- hidden_states = self.get_input_embeddings(input_ids)
455
+ hidden_states = self.embed_input_ids(input_ids)
456
residual = None
457
else:
458
assert intermediate_tensors is not None
@@ -608,8 +608,8 @@ class BailingMoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
608
self.model.make_empty_intermediate_tensors
609
)
610
611
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
612
- return self.model.get_input_embeddings(input_ids)
611
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
612
+ return self.model.embed_input_ids(input_ids)
613
614
def forward(
615
self,
vllm/model_executor/models/bamba.py
+4
-4
@@ -314,7 +314,7 @@ class BambaModel(nn.Module):
314
315
self.final_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
316
317
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
317
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
318
return self.embed_tokens(input_ids)
319
320
def forward(
@@ -328,7 +328,7 @@ class BambaModel(nn.Module):
328
if inputs_embeds is not None:
329
hidden_states = inputs_embeds
330
else:
331
- hidden_states = self.get_input_embeddings(input_ids)
331
+ hidden_states = self.embed_input_ids(input_ids)
332
residual = None
333
else:
334
assert intermediate_tensors is not None
@@ -493,8 +493,8 @@ class BambaForCausalLM(
493
self.model.make_empty_intermediate_tensors
494
)
495
496
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
497
- return self.model.get_input_embeddings(input_ids)
496
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
497
+ return self.model.embed_input_ids(input_ids)
498
499
def forward(
500
self,
vllm/model_executor/models/bert.py
+7
-7
@@ -375,7 +375,7 @@ class BertModel(nn.Module, SupportsQuant):
375
self.embeddings = embedding_class(self.config)
376
self.encoder = BertEncoder(vllm_config=vllm_config, prefix=f"{prefix}.encoder")
377
378
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
378
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
379
return self.embeddings.word_embeddings(input_ids)
380
381
def forward(
@@ -486,8 +486,8 @@ class BertEmbeddingModel(nn.Module, SupportsQuant):
486
)
487
self.pooler = self._build_pooler(pooler_config)
488
489
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
490
- return self.model.get_input_embeddings(input_ids)
489
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
490
+ return self.model.embed_input_ids(input_ids)
491
492
def forward(
493
self,
@@ -835,8 +835,8 @@ class BertForSequenceClassification(nn.Module, SupportsCrossEncoding, SupportsQu
835
}
836
)
837
838
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
839
- return self.bert.get_input_embeddings(input_ids)
838
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
839
+ return self.bert.embed_input_ids(input_ids)
840
841
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
842
loader = AutoWeightsLoader(self)
@@ -893,8 +893,8 @@ class BertForTokenClassification(nn.Module):
893
}
894
)
895
896
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
897
- return self.bert.get_input_embeddings(input_ids)
896
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
897
+ return self.bert.embed_input_ids(input_ids)
898
899
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
900
loader = AutoWeightsLoader(self)
vllm/model_executor/models/bert_with_rope.py
+3
-3
@@ -463,7 +463,7 @@ class BertWithRope(nn.Module, SupportsQuant):
463
)
464
self.pooler = BertPooler(self.config) if add_pooling_layer else None
465
466
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
466
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
467
return self.embeddings(input_ids)
468
469
def forward(
@@ -714,8 +714,8 @@ class GteNewForSequenceClassification(nn.Module, SupportsCrossEncoding):
714
loaded_params = loader.load_weights(weights)
715
return loaded_params
716
717
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
718
- return self.new.get_input_embeddings(input_ids)
717
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
718
+ return self.new.embed_input_ids(input_ids)
719
720
def forward(
721
self,
vllm/model_executor/models/blip2.py
+1
-1
@@ -630,7 +630,7 @@ class Blip2ForConditionalGeneration(
630
def get_language_model(self) -> torch.nn.Module:
631
return self.language_model
632
633
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
633
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
634
image_input = self._parse_and_validate_image_input(**kwargs)
635
if image_input is None:
636
return []
vllm/model_executor/models/bloom.py
+4
-4
@@ -271,7 +271,7 @@ class BloomModel(nn.Module):
271
["hidden_states"], config.hidden_size
272
)
273
274
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
274
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
275
return self.word_embeddings(input_ids)
276
277
def forward(
@@ -285,7 +285,7 @@ class BloomModel(nn.Module):
285
if inputs_embeds is not None:
286
hidden_states = inputs_embeds
287
else:
288
- hidden_states = self.get_input_embeddings(input_ids)
288
+ hidden_states = self.embed_input_ids(input_ids)
289
hidden_states = self.word_embeddings_layernorm(hidden_states)
290
else:
291
assert intermediate_tensors is not None
@@ -353,8 +353,8 @@ class BloomForCausalLM(nn.Module, SupportsPP, SupportsQuant):
353
self.transformer.make_empty_intermediate_tensors
354
)
355
356
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
357
- return self.transformer.get_input_embeddings(input_ids)
356
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
357
+ return self.transformer.embed_input_ids(input_ids)
358
359
def forward(
360
self,
vllm/model_executor/models/chameleon.py
+4
-4
@@ -886,7 +886,7 @@ class ChameleonModel(nn.Module):
886
["hidden_states", "residual"], config.hidden_size
887
)
888
889
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
889
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
890
return self.embed_tokens(input_ids)
891
892
def get_image_tokens(self, pixel_values: torch.Tensor) -> torch.Tensor:
@@ -912,7 +912,7 @@ class ChameleonModel(nn.Module):
912
if inputs_embeds is not None:
913
hidden_states = inputs_embeds
914
else:
915
- hidden_states = self.get_input_embeddings(input_ids)
915
+ hidden_states = self.embed_input_ids(input_ids)
916
residual = None
917
else:
918
assert intermediate_tensors is not None
@@ -998,7 +998,7 @@ class ChameleonForConditionalGeneration(
998
def get_language_model(self) -> torch.nn.Module:
999
return self.model
1000
1001
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1001
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1002
image_input = self._parse_and_validate_image_input(**kwargs)
1003
if image_input is None:
1004
return []
@@ -1006,7 +1006,7 @@ class ChameleonForConditionalGeneration(
1006
image_tokens = self.model.get_image_tokens(
1007
image_input["data"].to(self.config.dtype)
1008
)
1009
- vision_embeddings = self.model.get_input_embeddings(image_tokens)
1009
+ vision_embeddings = self.model.embed_input_ids(image_tokens)
1010
return vision_embeddings
1011
1012
def forward(
vllm/model_executor/models/chatglm.py
+4
-4
@@ -353,7 +353,7 @@ class ChatGLMModel(nn.Module, SupportsQuant):
353
self.encoder.make_empty_intermediate_tensors
354
)
355
356
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
356
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
357
return self.embedding(input_ids)
358
359
def forward(
@@ -368,7 +368,7 @@ class ChatGLMModel(nn.Module, SupportsQuant):
368
if inputs_embeds is not None:
369
hidden_states = inputs_embeds
370
else:
371
- hidden_states = self.get_input_embeddings(input_ids)
371
+ hidden_states = self.embed_input_ids(input_ids)
372
else:
373
assert intermediate_tensors is not None
374
hidden_states = intermediate_tensors["hidden_states"]
@@ -451,8 +451,8 @@ class ChatGLMBaseModel(nn.Module):
451
self.transformer.make_empty_intermediate_tensors
452
)
453
454
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
455
- return self.transformer.get_input_embeddings(input_ids)
454
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
455
+ return self.transformer.embed_input_ids(input_ids)
456
457
def compute_logits(
458
self,
vllm/model_executor/models/clip.py
+6
-6
@@ -561,7 +561,7 @@ class CLIPTextTransformer(nn.Module):
561
eps=config.layer_norm_eps,
562
)
563
564
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
564
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
565
return self.embeddings.token_embedding(input_ids)
566
567
def forward(
@@ -842,7 +842,7 @@ class CLIPEmbeddingModel(nn.Module, SupportsMultiModal, SupportsQuant):
842
}
843
)
844
845
- # Assumes that self.forward is called after self.get_input_embeddings
845
+ # Assumes that self.forward is called after self.embed_input_ids
846
self._is_text_input = True
847
848
def get_text_features(
@@ -903,7 +903,7 @@ class CLIPEmbeddingModel(nn.Module, SupportsMultiModal, SupportsQuant):
903
def get_language_model(self) -> torch.nn.Module:
904
return self.text_model
905
906
- def get_input_embeddings(
906
+ def embed_input_ids(
907
self,
908
input_ids: torch.Tensor,
909
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -917,16 +917,16 @@ class CLIPEmbeddingModel(nn.Module, SupportsMultiModal, SupportsQuant):
917
918
# This is to satisfy the type checker for each overload
919
if multimodal_embeddings is None or is_multimodal is None:
920
- return super().get_input_embeddings(input_ids)
920
+ return super().embed_input_ids(input_ids)
921
922
- return super().get_input_embeddings(
922
+ return super().embed_input_ids(
923
input_ids,
924
multimodal_embeddings=multimodal_embeddings,
925
is_multimodal=is_multimodal,
926
handle_oov_mm_token=handle_oov_mm_token,
927
)
928
929
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
929
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
930
image_input = self._parse_and_validate_image_input(**kwargs)
931
if image_input is None:
932
return []
vllm/model_executor/models/cohere2_vision.py
+1
-1
@@ -439,7 +439,7 @@ class Cohere2VisionForConditionalGeneration(nn.Module, SupportsMultiModal, Suppo
439
def get_language_model(self) -> torch.nn.Module:
440
return self.language_model
441
442
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
442
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
443
image_input = self._parse_and_validate_image_input(**kwargs)
444
if image_input is None:
445
return []
vllm/model_executor/models/commandr.py
+4
-4
@@ -311,7 +311,7 @@ class CohereModel(nn.Module):
311
["hidden_states", "residual"], config.hidden_size
312
)
313
314
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
314
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
315
return self.embed_tokens(input_ids)
316
317
def forward(
@@ -325,7 +325,7 @@ class CohereModel(nn.Module):
325
if inputs_embeds is not None:
326
hidden_states = inputs_embeds
327
else:
328
- hidden_states = self.get_input_embeddings(input_ids)
328
+ hidden_states = self.embed_input_ids(input_ids)
329
residual = None
330
else:
331
assert intermediate_tensors is not None
@@ -436,8 +436,8 @@ class CohereForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant):
436
self.model.make_empty_intermediate_tensors
437
)
438
439
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
440
- return self.model.get_input_embeddings(input_ids)
439
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
440
+ return self.model.embed_input_ids(input_ids)
441
442
@torch.no_grad()
443
def forward(
vllm/model_executor/models/dbrx.py
+4
-4
@@ -354,7 +354,7 @@ class DbrxModel(nn.Module):
354
["hidden_states"], config.d_model
355
)
356
357
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
357
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
358
return self.wte(input_ids)
359
360
def forward(
@@ -368,7 +368,7 @@ class DbrxModel(nn.Module):
368
if inputs_embeds is not None:
369
hidden_states = inputs_embeds
370
else:
371
- hidden_states = self.get_input_embeddings(input_ids)
371
+ hidden_states = self.embed_input_ids(input_ids)
372
else:
373
assert intermediate_tensors
374
hidden_states = intermediate_tensors["hidden_states"]
@@ -455,8 +455,8 @@ class DbrxForCausalLM(nn.Module, SupportsPP):
455
self.transformer.make_empty_intermediate_tensors
456
)
457
458
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
459
- return self.transformer.get_input_embeddings(input_ids)
458
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
459
+ return self.transformer.embed_input_ids(input_ids)
460
461
def forward(
462
self,
vllm/model_executor/models/deepseek_eagle.py
+3
-3
@@ -73,7 +73,7 @@ class DeepseekV2Model(nn.Module):
73
self.hnorm = RMSNorm(self.config.hidden_size, eps=self.config.rms_norm_eps)
74
self.norm = RMSNorm(self.config.hidden_size, eps=self.config.rms_norm_eps)
75
76
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
76
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
77
return self.embed_tokens(input_ids)
78
79
def forward(
@@ -222,8 +222,8 @@ class EagleDeepseekV3ForCausalLM(DeepseekV3ForCausalLM):
222
self.num_moe_layers = self.config.num_hidden_layers
223
self.set_moe_parameters()
224
225
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
226
- return self.model.get_input_embeddings(input_ids)
225
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
226
+ return self.model.embed_input_ids(input_ids)
227
228
def forward(
229
self,
vllm/model_executor/models/deepseek_mtp.py
+3
-3
@@ -142,7 +142,7 @@ class DeepSeekMultiTokenPredictor(nn.Module):
142
)
143
self.logits_processor = LogitsProcessor(config.vocab_size)
144
145
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
145
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
146
return self.embed_tokens(input_ids)
147
148
def forward(
@@ -206,8 +206,8 @@ class DeepSeekMTP(nn.Module, SupportsPP, DeepseekV2MixtureOfExperts):
206
self.moe_layers.append(layer.mlp.experts)
207
self.extract_moe_parameters(example_moe)
208
209
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
210
- return self.model.get_input_embeddings(input_ids)
209
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
210
+ return self.model.embed_input_ids(input_ids)
211
212
def forward(
213
self,
vllm/model_executor/models/deepseek_ocr.py
+1
-3
@@ -557,9 +557,7 @@ class DeepseekOCRForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
557
def get_language_model(self) -> torch.nn.Module:
558
return self.language_model
559
560
- def get_multimodal_embeddings(
561
- self, **kwargs: object
562
- ) -> MultiModalEmbeddings | None:
560
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
561
image_input = self._parse_and_validate_image_input(**kwargs)
562
if image_input is None:
563
return None
vllm/model_executor/models/deepseek_v2.py
+4
-4
@@ -1236,7 +1236,7 @@ class DeepseekV2Model(nn.Module):
1236
["hidden_states", "residual"], config.hidden_size
1237
)
1238
1239
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
1239
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
1240
return self.embed_tokens(input_ids)
1241
1242
def forward(
@@ -1250,7 +1250,7 @@ class DeepseekV2Model(nn.Module):
1250
if inputs_embeds is not None:
1251
hidden_states = inputs_embeds
1252
else:
1253
- hidden_states = self.get_input_embeddings(input_ids)
1253
+ hidden_states = self.embed_input_ids(input_ids)
1254
residual = None
1255
else:
1256
assert intermediate_tensors is not None
@@ -1389,8 +1389,8 @@ class DeepseekV2ForCausalLM(
1389
1390
self.extract_moe_parameters(example_moe)
1391
1392
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
1393
- return self.model.get_input_embeddings(input_ids)
1392
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
1393
+ return self.model.embed_input_ids(input_ids)
1394
1395
def forward(
1396
self,
vllm/model_executor/models/deepseek_vl2.py
+1
-1
@@ -619,7 +619,7 @@ class DeepseekVLV2ForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
619
def get_language_model(self) -> torch.nn.Module:
620
return self.language_model
621
622
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
622
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
623
image_input = self._parse_and_validate_image_input(**kwargs)
624
if image_input is None:
625
return []
vllm/model_executor/models/dots1.py
+4
-4
@@ -398,7 +398,7 @@ class Dots1Model(nn.Module):
398
["hidden_states", "residual"], config.hidden_size
399
)
400
401
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
401
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
402
return self.embed_tokens(input_ids)
403
404
def forward(
@@ -412,7 +412,7 @@ class Dots1Model(nn.Module):
412
if inputs_embeds is not None:
413
hidden_states = inputs_embeds
414
else:
415
- hidden_states = self.get_input_embeddings(input_ids)
415
+ hidden_states = self.embed_input_ids(input_ids)
416
residual = None
417
else:
418
assert intermediate_tensors is not None
@@ -541,8 +541,8 @@ class Dots1ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
541
self.model.make_empty_intermediate_tensors
542
)
543
544
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
545
- return self.model.get_input_embeddings(input_ids)
544
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
545
+ return self.model.embed_input_ids(input_ids)
546
547
def forward(
548
self,
vllm/model_executor/models/dots_ocr.py
+3
-3
@@ -840,7 +840,7 @@ class DotsOCRForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA
840
def get_language_model(self) -> torch.nn.Module:
841
return self.language_model
842
843
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
843
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
844
image_input = self._parse_and_validate_image_input(**kwargs)
845
if image_input is None:
846
return []
@@ -858,8 +858,8 @@ class DotsOCRForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA
858
if intermediate_tensors is not None:
859
inputs_embeds = None
860
elif inputs_embeds is None:
861
- vision_embeddings = self.get_multimodal_embeddings(**kwargs)
862
- inputs_embeds = self.get_input_embeddings(
861
+ vision_embeddings = self.embed_multimodal(**kwargs)
862
+ inputs_embeds = self.embed_input_ids(
863
input_ids,
864
vision_embeddings,
865
is_multimodal=input_ids == self.config.image_token_id,
vllm/model_executor/models/ernie45_moe.py
+4
-4
@@ -465,7 +465,7 @@ class Ernie4_5_MoeModel(nn.Module):
465
["hidden_states", "residual"], config.hidden_size
466
)
467
468
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
468
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
469
return self.embed_tokens(input_ids)
470
471
def forward(
@@ -479,7 +479,7 @@ class Ernie4_5_MoeModel(nn.Module):
479
if inputs_embeds is not None:
480
hidden_states = inputs_embeds
481
else:
482
- hidden_states = self.get_input_embeddings(input_ids)
482
+ hidden_states = self.embed_input_ids(input_ids)
483
residual = None
484
else:
485
assert intermediate_tensors is not None
@@ -726,8 +726,8 @@ class Ernie4_5_MoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA, MixtureOfExpe
726
moe.n_redundant_experts = self.num_redundant_experts
727
moe.experts.update_expert_map()
728
729
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
730
- return self.model.get_input_embeddings(input_ids)
729
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
730
+ return self.model.embed_input_ids(input_ids)
731
732
def forward(
733
self,
vllm/model_executor/models/ernie45_vl.py
+4
-6
@@ -1656,9 +1656,7 @@ class Ernie4_5_VLMoeForConditionalGeneration(
1656
1657
return modalities
1658
1659
- def get_multimodal_embeddings(
1660
- self, **kwargs: object
1661
- ) -> MultiModalEmbeddings | None:
1659
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1660
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1661
if not modalities:
1662
return None
@@ -1681,7 +1679,7 @@ class Ernie4_5_VLMoeForConditionalGeneration(
1679
1680
return multimodal_embeddings
1681
1684
- def get_input_embeddings(
1682
+ def embed_input_ids(
1683
self,
1684
input_ids: torch.Tensor,
1685
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1694,9 +1692,9 @@ class Ernie4_5_VLMoeForConditionalGeneration(
1692
1693
# This is to satisfy the type checker for each overload
1694
if multimodal_embeddings is None or is_multimodal is None:
1697
- return super().get_input_embeddings(input_ids)
1695
+ return super().embed_input_ids(input_ids)
1696
1699
- return super().get_input_embeddings(
1697
+ return super().embed_input_ids(
1698
input_ids,
1699
multimodal_embeddings=multimodal_embeddings,
1700
is_multimodal=is_multimodal,
vllm/model_executor/models/ernie45_vl_moe.py
+4
-4
@@ -561,7 +561,7 @@ class Ernie4_5_VLMoeModel(nn.Module):
561
["hidden_states", "residual"], config.hidden_size
562
)
563
564
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
564
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
565
return self.embed_tokens(input_ids)
566
567
def forward(
@@ -577,7 +577,7 @@ class Ernie4_5_VLMoeModel(nn.Module):
577
if inputs_embeds is not None:
578
hidden_states = inputs_embeds
579
else:
580
- hidden_states = self.get_input_embeddings(input_ids)
580
+ hidden_states = self.embed_input_ids(input_ids)
581
residual = None
582
else:
583
assert intermediate_tensors is not None
@@ -642,8 +642,8 @@ class Ernie4_5_VLMoeForCausalLM(nn.Module, SupportsPP):
642
self.model.make_empty_intermediate_tensors
643
)
644
645
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
646
- return self.model.get_input_embeddings(input_ids)
645
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
646
+ return self.model.embed_input_ids(input_ids)
647
648
def forward(
649
self,
vllm/model_executor/models/ernie_mtp.py
+3
-3
@@ -112,7 +112,7 @@ class ErnieMultiTokenPredictor(nn.Module):
112
)
113
self.logits_processor = LogitsProcessor(config.vocab_size)
114
115
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
115
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
116
return self.embed_tokens(input_ids)
117
118
def forward(
@@ -160,8 +160,8 @@ class ErnieMTP(nn.Module, SupportsPP):
160
if self.config.tie_word_embeddings:
161
self.lm_head.weight = self.model.embed_tokens.weight
162
163
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
164
- return self.model.get_input_embeddings(input_ids)
163
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
164
+ return self.model.embed_input_ids(input_ids)
165
166
def forward(
167
self,
vllm/model_executor/models/exaone.py
+4
-4
@@ -357,7 +357,7 @@ class ExaoneModel(nn.Module):
357
["hidden_states", "residual"], config.hidden_size
358
)
359
360
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
360
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
361
return self.wte(input_ids)
362
363
def forward(
@@ -371,7 +371,7 @@ class ExaoneModel(nn.Module):
371
if inputs_embeds is not None:
372
hidden_states = inputs_embeds
373
else:
374
- hidden_states = self.get_input_embeddings(input_ids)
374
+ hidden_states = self.embed_input_ids(input_ids)
375
residual = None
376
else:
377
assert intermediate_tensors is not None
@@ -512,8 +512,8 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
512
self.transformer.make_empty_intermediate_tensors
513
)
514
515
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
516
- return self.model.get_input_embeddings(input_ids)
515
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
516
+ return self.model.embed_input_ids(input_ids)
517
518
def forward(
519
self,
vllm/model_executor/models/exaone4.py
+4
-4
@@ -344,7 +344,7 @@ class Exaone4Model(nn.Module):
344
["hidden_states", "residual"], config.hidden_size
345
)
346
347
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
347
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
348
return self.embed_tokens(input_ids)
349
350
def forward(
@@ -358,7 +358,7 @@ class Exaone4Model(nn.Module):
358
if inputs_embeds is not None:
359
hidden_states = inputs_embeds
360
else:
361
- hidden_states = self.get_input_embeddings(input_ids)
361
+ hidden_states = self.embed_input_ids(input_ids)
362
residual = None
363
else:
364
assert intermediate_tensors is not None
@@ -498,8 +498,8 @@ class Exaone4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
498
self.model.make_empty_intermediate_tensors
499
)
500
501
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
502
- return self.model.get_input_embeddings(input_ids)
501
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
502
+ return self.model.embed_input_ids(input_ids)
503
504
def forward(
505
self,
vllm/model_executor/models/falcon.py
+4
-4
@@ -399,7 +399,7 @@ class FalconModel(nn.Module):
399
["hidden_states"], config.hidden_size
400
)
401
402
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
402
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
403
return self.word_embeddings(input_ids)
404
405
def forward(
@@ -413,7 +413,7 @@ class FalconModel(nn.Module):
413
if inputs_embeds is not None:
414
hidden_states = inputs_embeds
415
else:
416
- hidden_states = self.get_input_embeddings(input_ids)
416
+ hidden_states = self.embed_input_ids(input_ids)
417
else:
418
hidden_states = intermediate_tensors["hidden_states"]
419
for layer in islice(self.h, self.start_layer, self.end_layer):
@@ -515,8 +515,8 @@ class FalconForCausalLM(nn.Module, SupportsPP):
515
self.transformer.make_empty_intermediate_tensors
516
)
517
518
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
519
- return self.transformer.get_input_embeddings(input_ids)
518
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
519
+ return self.transformer.embed_input_ids(input_ids)
520
521
def forward(
522
self,
vllm/model_executor/models/falcon_h1.py
+4
-4
@@ -461,7 +461,7 @@ class FalconH1Model(nn.Module):
461
else:
462
self.final_layernorm = PPMissingLayer()
463
464
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
464
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
465
return self.embed_tokens(input_ids)
466
467
def forward(
@@ -476,7 +476,7 @@ class FalconH1Model(nn.Module):
476
hidden_states = inputs_embeds * self.embedding_multiplier
477
else:
478
hidden_states = (
479
- self.get_input_embeddings(input_ids) * self.embedding_multiplier
479
+ self.embed_input_ids(input_ids) * self.embedding_multiplier
480
)
481
else:
482
assert intermediate_tensors is not None
@@ -601,8 +601,8 @@ class FalconH1ForCausalLM(
601
self.model.make_empty_intermediate_tensors
602
)
603
604
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
605
- return self.model.get_input_embeddings(input_ids)
604
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
605
+ return self.model.embed_input_ids(input_ids)
606
607
def forward(
608
self,
vllm/model_executor/models/fuyu.py
+1
-1
@@ -333,7 +333,7 @@ class FuyuForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
333
def get_language_model(self) -> torch.nn.Module:
334
return self.language_model
335
336
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
336
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
337
image_input = self._parse_and_validate_image_input(**kwargs)
338
if image_input is None:
339
return []
vllm/model_executor/models/gemma.py
+4
-4
@@ -293,7 +293,7 @@ class GemmaModel(nn.Module):
293
["hidden_states", "residual"], config.hidden_size
294
)
295
296
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
296
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
297
return self.embed_tokens(input_ids)
298
299
def forward(
@@ -307,7 +307,7 @@ class GemmaModel(nn.Module):
307
if inputs_embeds is not None:
308
hidden_states = inputs_embeds
309
else:
310
- hidden_states = self.get_input_embeddings(input_ids)
310
+ hidden_states = self.embed_input_ids(input_ids)
311
hidden_states *= self.normalizer
312
residual = None
313
else:
@@ -396,8 +396,8 @@ class GemmaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
396
self.model.make_empty_intermediate_tensors
397
)
398
399
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
400
- return self.model.get_input_embeddings(input_ids)
399
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
400
+ return self.model.embed_input_ids(input_ids)
401
402
def forward(
403
self,
vllm/model_executor/models/gemma2.py
+4
-4
@@ -290,7 +290,7 @@ class Gemma2Model(nn.Module):
290
["hidden_states", "residual"], config.hidden_size
291
)
292
293
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
293
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
294
return self.embed_tokens(input_ids)
295
296
def forward(
@@ -304,7 +304,7 @@ class Gemma2Model(nn.Module):
304
if inputs_embeds is not None:
305
hidden_states = inputs_embeds
306
else:
307
- hidden_states = self.get_input_embeddings(input_ids)
307
+ hidden_states = self.embed_input_ids(input_ids)
308
hidden_states *= self.normalizer
309
residual = None
310
else:
@@ -409,8 +409,8 @@ class Gemma2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
409
self.model.make_empty_intermediate_tensors
410
)
411
412
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
413
- return self.model.get_input_embeddings(input_ids)
412
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
413
+ return self.model.embed_input_ids(input_ids)
414
415
def forward(
416
self,
vllm/model_executor/models/gemma3.py
+4
-4
@@ -393,7 +393,7 @@ class Gemma3Model(nn.Module):
393
["hidden_states", "residual"], config.hidden_size
394
)
395
396
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
396
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
397
# NOTE(woosuk): Only apply the normalizer to the output of
398
# vocab embedding. Don't apply it to the vision embedding.
399
return self.embed_tokens(input_ids) * self.normalizer
@@ -410,7 +410,7 @@ class Gemma3Model(nn.Module):
410
if inputs_embeds is not None:
411
hidden_states = inputs_embeds
412
else:
413
- hidden_states = self.get_input_embeddings(input_ids)
413
+ hidden_states = self.embed_input_ids(input_ids)
414
residual = None
415
else:
416
assert intermediate_tensors is not None
@@ -540,8 +540,8 @@ class Gemma3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
540
self.model.make_empty_intermediate_tensors
541
)
542
543
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
544
- return self.model.get_input_embeddings(input_ids)
543
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
544
+ return self.model.embed_input_ids(input_ids)
545
546
def forward(
547
self,
vllm/model_executor/models/gemma3_mm.py
+1
-1
@@ -596,7 +596,7 @@ class Gemma3ForConditionalGeneration(
596
def get_language_model(self) -> torch.nn.Module:
597
return self.language_model
598
599
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
599
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
600
image_input = self._parse_and_validate_image_input(**kwargs)
601
if image_input is None:
602
return []
vllm/model_executor/models/gemma3n.py
+6
-6
@@ -685,7 +685,7 @@ class Gemma3nSelfDecoder(nn.Module):
685
per_layer_inputs = per_layer_projection
686
return per_layer_inputs
687
688
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
688
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
689
return self.embed_tokens(input_ids) * self.embed_scale
690
691
def altup_embed(self, hidden_states_0: torch.Tensor) -> torch.Tensor:
@@ -712,7 +712,7 @@ class Gemma3nSelfDecoder(nn.Module):
712
if inputs_embeds is not None:
713
hidden_states_0 = inputs_embeds
714
else:
715
- hidden_states_0 = self.get_input_embeddings(input_ids)
715
+ hidden_states_0 = self.embed_input_ids(input_ids)
716
717
adjusted_per_layer_inputs = self.get_per_layer_inputs(
718
hidden_states_0, per_layer_inputs
@@ -881,8 +881,8 @@ class Gemma3nTextModel(nn.Module, SupportsQuant):
881
def get_per_layer_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
882
return self.self_decoder.get_per_layer_input_embeddings(input_ids)
883
884
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
885
- return self.self_decoder.get_input_embeddings(input_ids)
884
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
885
+ return self.self_decoder.embed_input_ids(input_ids)
886
887
def fast_prefill_forward(
888
self,
@@ -1125,8 +1125,8 @@ class Gemma3nForCausalLM(nn.Module):
1125
config.vocab_size, soft_cap=config.final_logit_softcapping
1126
)
1127
1128
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
1129
- return self.model.get_input_embeddings(input_ids)
1128
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
1129
+ return self.model.embed_input_ids(input_ids)
1130
1131
def forward(
1132
self,
vllm/model_executor/models/gemma3n_mm.py
+6
-6
@@ -645,7 +645,7 @@ class Gemma3nForConditionalGeneration(
645
def get_language_model(self) -> torch.nn.Module:
646
return self.language_model
647
648
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
648
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
649
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
650
if mm_input_by_modality is None:
651
return []
@@ -664,7 +664,7 @@ class Gemma3nForConditionalGeneration(
664
multimodal_embeddings.extend(audio_embeddings)
665
return multimodal_embeddings
666
667
- def get_input_embeddings(
667
+ def embed_input_ids(
668
self,
669
input_ids: torch.Tensor,
670
multimodal_embeddings: Optional[MultiModalEmbeddings] = None,
@@ -689,9 +689,9 @@ class Gemma3nForConditionalGeneration(
689
690
# This is to satisfy the type checker for each overload
691
if multimodal_embeddings is None or is_multimodal is None:
692
- return super().get_input_embeddings(input_ids)
692
+ return super().embed_input_ids(input_ids)
693
694
- return super().get_input_embeddings(
694
+ return super().embed_input_ids(
695
input_ids,
696
multimodal_embeddings=multimodal_embeddings,
697
is_multimodal=is_multimodal,
@@ -709,10 +709,10 @@ class Gemma3nForConditionalGeneration(
709
if intermediate_tensors is not None:
710
inputs_embeds = None
711
712
- # NOTE (NickLucche) During profiling, `get_input_embeddings` is not
712
+ # NOTE (NickLucche) During profiling, `embed_input_ids` is not
713
# called, hence we don't have input_ids to compute PLEs. We simply
714
# select a chunk of pre-allocated PLEs. During normal execution,
715
- # `get_input_embeddings` is called before forward, hence this slice
715
+ # `embed_input_ids` is called before forward, hence this slice
716
# will contain PLEs computed from the actual input_ids.
717
per_layer_inputs = self.per_layer_embeddings[: inputs_embeds.shape[0]]
718
vllm/model_executor/models/glm4.py
+2
-2
@@ -275,8 +275,8 @@ class Glm4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
275
self.model.make_empty_intermediate_tensors
276
)
277
278
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
279
- return self.model.get_input_embeddings(input_ids)
278
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
279
+ return self.model.embed_input_ids(input_ids)
280
281
def forward(
282
self,
vllm/model_executor/models/glm4_1v.py
+1
-3
@@ -1594,9 +1594,7 @@ class Glm4vForConditionalGeneration(
1594
def get_language_model(self) -> torch.nn.Module:
1595
return self.language_model
1596
1597
- def get_multimodal_embeddings(
1598
- self, **kwargs: object
1599
- ) -> MultiModalEmbeddings | None:
1597
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1598
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1599
if not mm_input_by_modality:
1600
return None
vllm/model_executor/models/glm4_moe.py
+4
-4
@@ -455,7 +455,7 @@ class Glm4MoeModel(nn.Module):
455
["hidden_states", "residual"], config.hidden_size
456
)
457
458
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
458
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
459
return self.embed_tokens(input_ids)
460
461
def forward(
@@ -469,7 +469,7 @@ class Glm4MoeModel(nn.Module):
469
if inputs_embeds is not None:
470
hidden_states = inputs_embeds
471
else:
472
- hidden_states = self.get_input_embeddings(input_ids)
472
+ hidden_states = self.embed_input_ids(input_ids)
473
residual = None
474
else:
475
assert intermediate_tensors is not None
@@ -704,8 +704,8 @@ class Glm4MoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA, Glm4MixtureOfExper
704
705
self.extract_moe_parameters(example_moe)
706
707
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
708
- return self.model.get_input_embeddings(input_ids)
707
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
708
+ return self.model.embed_input_ids(input_ids)
709
710
def forward(
711
self,
vllm/model_executor/models/glm4_moe_mtp.py
+3
-3
@@ -149,7 +149,7 @@ class Glm4MoeMultiTokenPredictor(nn.Module):
149
)
150
self.logits_processor = LogitsProcessor(config.vocab_size)
151
152
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
152
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
153
return self.embed_tokens(input_ids)
154
155
def forward(
@@ -211,8 +211,8 @@ class Glm4MoeMTP(nn.Module, SupportsPP, Glm4MixtureOfExperts):
211
self.moe_layers.append(layer.mlp.experts)
212
self.extract_moe_parameters(example_moe)
213
214
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
215
- return self.model.get_input_embeddings(input_ids)
214
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
215
+ return self.model.embed_input_ids(input_ids)
216
217
def forward(
218
self,
vllm/model_executor/models/glm4v.py
+2
-2
@@ -756,9 +756,9 @@ class GLM4VForCausalLM(
756
def get_language_model(self) -> torch.nn.Module:
757
return self.transformer
758
759
- get_input_embeddings = SupportsMultiModal.get_input_embeddings
759
+ embed_input_ids = SupportsMultiModal.embed_input_ids
760
761
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
761
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
762
image_input = self._parse_and_validate_image_input(**kwargs)
763
if image_input is None:
764
return []
vllm/model_executor/models/gpt2.py
+6
-6
@@ -213,7 +213,7 @@ class GPT2Model(nn.Module):
213
["hidden_states"], config.n_embd
214
)
215
216
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
216
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
217
return self.wte(input_ids)
218
219
def forward(
@@ -225,7 +225,7 @@ class GPT2Model(nn.Module):
225
) -> torch.Tensor | IntermediateTensors:
226
if get_pp_group().is_first_rank:
227
if inputs_embeds is None:
228
- inputs_embeds = self.get_input_embeddings(input_ids)
228
+ inputs_embeds = self.embed_input_ids(input_ids)
229
position_embeds = self.wpe(position_ids)
230
hidden_states = inputs_embeds + position_embeds
231
else:
@@ -293,8 +293,8 @@ class GPT2LMHeadModel(nn.Module, SupportsPP):
293
self.transformer.make_empty_intermediate_tensors
294
)
295
296
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
297
- return self.transformer.get_input_embeddings(input_ids)
296
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
297
+ return self.transformer.embed_input_ids(input_ids)
298
299
def forward(
300
self,
@@ -365,8 +365,8 @@ class GPT2ForSequenceClassification(nn.Module, SupportsCrossEncoding):
365
}
366
)
367
368
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
369
- return self.transformer.get_input_embeddings(input_ids)
368
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
369
+ return self.transformer.embed_input_ids(input_ids)
370
371
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
372
loader = AutoWeightsLoader(self)
vllm/model_executor/models/gpt_bigcode.py
+4
-4
@@ -230,7 +230,7 @@ class GPTBigCodeModel(nn.Module):
230
["hidden_states"], config.n_embd
231
)
232
233
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
233
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
234
return self.wte(input_ids)
235
236
def forward(
@@ -242,7 +242,7 @@ class GPTBigCodeModel(nn.Module):
242
) -> torch.Tensor | IntermediateTensors:
243
if get_pp_group().is_first_rank:
244
if inputs_embeds is None:
245
- inputs_embeds = self.get_input_embeddings(input_ids)
245
+ inputs_embeds = self.embed_input_ids(input_ids)
246
hidden_states = inputs_embeds + self.wpe(position_ids)
247
else:
248
hidden_states = intermediate_tensors["hidden_states"]
@@ -306,8 +306,8 @@ class GPTBigCodeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
306
self.transformer.make_empty_intermediate_tensors
307
)
308
309
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
310
- return self.transformer.get_input_embeddings(input_ids)
309
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
310
+ return self.transformer.embed_input_ids(input_ids)
311
312
def forward(
313
self,
vllm/model_executor/models/gpt_j.py
+4
-4
@@ -215,7 +215,7 @@ class GPTJModel(nn.Module):
215
["hidden_states"], config.n_embd
216
)
217
218
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
218
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
219
return self.wte(input_ids)
220
221
def forward(
@@ -229,7 +229,7 @@ class GPTJModel(nn.Module):
229
if inputs_embeds is not None:
230
hidden_states = inputs_embeds
231
else:
232
- hidden_states = self.get_input_embeddings(input_ids)
232
+ hidden_states = self.embed_input_ids(input_ids)
233
else:
234
hidden_states = intermediate_tensors["hidden_states"]
235
for layer in islice(self.h, self.start_layer, self.end_layer):
@@ -319,8 +319,8 @@ class GPTJForCausalLM(nn.Module, SupportsPP):
319
self.transformer.make_empty_intermediate_tensors
320
)
321
322
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
323
- return self.transformer.get_input_embeddings(input_ids)
322
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
323
+ return self.transformer.embed_input_ids(input_ids)
324
325
def forward(
326
self,
vllm/model_executor/models/gpt_neox.py
+4
-4
@@ -229,7 +229,7 @@ class GPTNeoXModel(nn.Module):
229
["hidden_states"], config.hidden_size
230
)
231
232
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
232
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
233
return self.embed_in(input_ids)
234
235
def forward(
@@ -243,7 +243,7 @@ class GPTNeoXModel(nn.Module):
243
if inputs_embeds is not None:
244
hidden_states = inputs_embeds
245
else:
246
- hidden_states = self.get_input_embeddings(input_ids)
246
+ hidden_states = self.embed_input_ids(input_ids)
247
else:
248
hidden_states = intermediate_tensors["hidden_states"]
249
for layer in islice(self.layers, self.start_layer, self.end_layer):
@@ -317,8 +317,8 @@ class GPTNeoXForCausalLM(nn.Module, SupportsPP):
317
self.gpt_neox.make_empty_intermediate_tensors
318
)
319
320
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
321
- return self.gpt_neox.get_input_embeddings(input_ids)
320
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
321
+ return self.gpt_neox.embed_input_ids(input_ids)
322
323
def forward(
324
self,
vllm/model_executor/models/gpt_oss.py
+4
-4
@@ -269,7 +269,7 @@ class GptOssModel(nn.Module):
269
)
270
self.aux_hidden_state_layers = tuple[int, ...]()
271
272
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
272
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
273
return self.embedding(input_ids)
274
275
def forward(
@@ -283,7 +283,7 @@ class GptOssModel(nn.Module):
283
if inputs_embeds is not None:
284
x = inputs_embeds
285
else:
286
- x = self.get_input_embeddings(input_ids)
286
+ x = self.embed_input_ids(input_ids)
287
288
residual = None
289
else:
@@ -703,8 +703,8 @@ class GptOssForCausalLM(nn.Module, SupportsPP, SupportsEagle3, SupportsLoRA):
703
num_layers = len(self.model.layers)
704
return (2, num_layers // 2, num_layers - 3)
705
706
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
707
- return self.model.get_input_embeddings(input_ids)
706
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
707
+ return self.model.embed_input_ids(input_ids)
708
709
def forward(
710
self,
vllm/model_executor/models/granite.py
+4
-4
@@ -318,7 +318,7 @@ class GraniteModel(nn.Module):
318
else:
319
self.norm = PPMissingLayer()
320
321
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
321
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
322
return self.embed_tokens(input_ids)
323
324
def forward(
@@ -332,7 +332,7 @@ class GraniteModel(nn.Module):
332
if inputs_embeds is not None:
333
hidden_states = inputs_embeds
334
else:
335
- hidden_states = self.get_input_embeddings(input_ids)
335
+ hidden_states = self.embed_input_ids(input_ids)
336
337
hidden_states *= self.config.embedding_multiplier
338
else:
@@ -473,8 +473,8 @@ class GraniteForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
473
else:
474
self.lm_head = PPMissingLayer()
475
476
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
477
- return self.model.get_input_embeddings(input_ids)
476
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
477
+ return self.model.embed_input_ids(input_ids)
478
479
def forward(
480
self,
vllm/model_executor/models/granite_speech.py
+4
-4
@@ -767,7 +767,7 @@ class GraniteSpeechForConditionalGeneration(
767
def get_language_model(self) -> torch.nn.Module:
768
return self.language_model
769
770
- def get_multimodal_embeddings(
770
+ def embed_multimodal(
771
self,
772
**kwargs: object,
773
) -> MultiModalEmbeddings:
@@ -779,7 +779,7 @@ class GraniteSpeechForConditionalGeneration(
779
audio_features = self._process_audio_input(audio_input)
780
return audio_features
781
782
- def get_input_embeddings(
782
+ def embed_input_ids(
783
self,
784
input_ids: torch.Tensor,
785
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -790,9 +790,9 @@ class GraniteSpeechForConditionalGeneration(
790
) -> torch.Tensor:
791
# This is to satisfy the type checker for each overload
792
if multimodal_embeddings is None or is_multimodal is None:
793
- return super().get_input_embeddings(input_ids)
793
+ return super().embed_input_ids(input_ids)
794
795
- return super().get_input_embeddings(
795
+ return super().embed_input_ids(
796
input_ids,
797
multimodal_embeddings=multimodal_embeddings,
798
is_multimodal=is_multimodal,
vllm/model_executor/models/granitemoe.py
+4
-4
@@ -315,7 +315,7 @@ class GraniteMoeModel(nn.Module):
315
316
self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
317
318
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
318
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
319
return self.embed_tokens(input_ids)
320
321
def forward(
@@ -329,7 +329,7 @@ class GraniteMoeModel(nn.Module):
329
if inputs_embeds is not None:
330
hidden_states = inputs_embeds
331
else:
332
- hidden_states = self.get_input_embeddings(input_ids)
332
+ hidden_states = self.embed_input_ids(input_ids)
333
hidden_states *= self.embedding_multiplier
334
else:
335
assert intermediate_tensors is not None
@@ -531,8 +531,8 @@ class GraniteMoeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
531
scale=1 / self.config.logits_scaling,
532
)
533
534
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
535
- return self.model.get_input_embeddings(input_ids)
534
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
535
+ return self.model.embed_input_ids(input_ids)
536
537
def forward(
538
self,
vllm/model_executor/models/granitemoehybrid.py
+4
-4
@@ -366,7 +366,7 @@ class GraniteMoeHybridModel(nn.Module):
366
367
self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
368
369
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
369
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
370
return self.embed_tokens(input_ids)
371
372
def forward(
@@ -380,7 +380,7 @@ class GraniteMoeHybridModel(nn.Module):
380
if inputs_embeds is not None:
381
hidden_states = inputs_embeds
382
else:
383
- hidden_states = self.get_input_embeddings(input_ids)
383
+ hidden_states = self.embed_input_ids(input_ids)
384
hidden_states = hidden_states * self.embedding_multiplier
385
residual = None
386
else:
@@ -680,8 +680,8 @@ class GraniteMoeHybridForCausalLM(
680
self.model.make_empty_intermediate_tensors
681
)
682
683
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
684
- return self.model.get_input_embeddings(input_ids)
683
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
684
+ return self.model.embed_input_ids(input_ids)
685
686
def forward(
687
self,
vllm/model_executor/models/granitemoeshared.py
+4
-4
@@ -182,7 +182,7 @@ class GraniteMoeSharedModel(nn.Module):
182
183
self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
184
185
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
185
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
186
return self.embed_tokens(input_ids)
187
188
def forward(
@@ -196,7 +196,7 @@ class GraniteMoeSharedModel(nn.Module):
196
if inputs_embeds is not None:
197
hidden_states = inputs_embeds
198
else:
199
- hidden_states = self.get_input_embeddings(input_ids)
199
+ hidden_states = self.embed_input_ids(input_ids)
200
hidden_states *= self.embedding_multiplier
201
else:
202
assert intermediate_tensors is not None
@@ -295,8 +295,8 @@ class GraniteMoeSharedForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
295
scale=1 / self.config.logits_scaling,
296
)
297
298
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
299
- return self.model.get_input_embeddings(input_ids)
298
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
299
+ return self.model.embed_input_ids(input_ids)
300
301
def forward(
302
self,
vllm/model_executor/models/grok1.py
+4
-4
@@ -334,7 +334,7 @@ class Grok1Model(nn.Module):
334
["hidden_states", "residual"], config.hidden_size
335
)
336
337
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
337
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
338
hidden_states = self.embed_tokens(input_ids)
339
hidden_states = hidden_states * self.embedding_multiplier_scale
340
return hidden_states
@@ -350,7 +350,7 @@ class Grok1Model(nn.Module):
350
if inputs_embeds is not None:
351
hidden_states = inputs_embeds
352
else:
353
- hidden_states = self.get_input_embeddings(input_ids)
353
+ hidden_states = self.embed_input_ids(input_ids)
354
residual = None
355
else:
356
assert intermediate_tensors is not None
@@ -522,8 +522,8 @@ class Grok1ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
522
self.model.make_empty_intermediate_tensors
523
)
524
525
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
526
- return self.model.get_input_embeddings(input_ids)
525
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
526
+ return self.model.embed_input_ids(input_ids)
527
528
def forward(
529
self,
vllm/model_executor/models/hunyuan_v1.py
+4
-4
@@ -643,7 +643,7 @@ class HunYuanModel(nn.Module):
643
else:
644
self.norm = PPMissingLayer()
645
646
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
646
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
647
return self.embed_tokens(input_ids)
648
649
def forward(
@@ -657,7 +657,7 @@ class HunYuanModel(nn.Module):
657
if inputs_embeds is not None:
658
hidden_states = inputs_embeds
659
else:
660
- hidden_states = self.get_input_embeddings(input_ids)
660
+ hidden_states = self.embed_input_ids(input_ids)
661
residual = None
662
else:
663
assert intermediate_tensors is not None
@@ -987,8 +987,8 @@ class HunyuanV1ModelBase(nn.Module, SupportsLoRA, SupportsPP):
987
)
988
return loader.load_weights(weights)
989
990
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
991
- return self.model.get_input_embeddings(input_ids)
990
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
991
+ return self.model.embed_input_ids(input_ids)
992
993
994
class HunYuanMoEV1Base(HunyuanV1ModelBase, MixtureOfExperts):
vllm/model_executor/models/hyperclovax_vision.py
+1
-1
@@ -732,7 +732,7 @@ class HCXVisionForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
732
def get_language_model(self) -> torch.nn.Module:
733
return self.language_model
734
735
- def get_multimodal_embeddings(
735
+ def embed_multimodal(
736
self,
737
**kwargs: object,
738
) -> MultiModalEmbeddings:
vllm/model_executor/models/idefics3.py
+3
-3
@@ -550,8 +550,8 @@ class Idefics3Model(nn.Module):
550
551
return image_hidden_states
552
553
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
554
- return self.text_model.get_input_embeddings(input_ids)
553
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
554
+ return self.text_model.embed_input_ids(input_ids)
555
556
def forward(
557
self,
@@ -674,7 +674,7 @@ class Idefics3ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsLo
674
def get_language_model(self) -> torch.nn.Module:
675
return self.model
676
677
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
677
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
678
image_input = self._parse_and_validate_image_input(**kwargs)
679
if image_input is None:
680
return []
vllm/model_executor/models/interfaces.py
+19
-13
@@ -94,7 +94,7 @@ class SupportsMultiModal(Protocol):
94
"""
95
...
96
97
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
97
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
98
"""
99
Returns multimodal embeddings generated from multimodal kwargs
100
to be merged with text embeddings.
@@ -104,7 +104,13 @@ class SupportsMultiModal(Protocol):
104
the appearances of their corresponding multimodal data item in the
105
input prompt.
106
"""
107
- ...
107
+ if hasattr(self, "get_multimodal_embeddings"):
108
+ logger.warning_once(
109
+ "`get_multimodal_embeddings` for vLLM models is deprecated and will be "
110
+ "removed in v0.13.0 or v1.0.0, whichever is earlier. Please rename "
111
+ "this method to `embed_multimodal`."
112
+ )
113
+ return self.get_multimodal_embeddings(**kwargs)
114
115
def get_language_model(self) -> VllmModel:
116
"""
@@ -119,10 +125,10 @@ class SupportsMultiModal(Protocol):
125
...
126
127
@overload
122
- def get_input_embeddings(self, input_ids: Tensor) -> Tensor: ...
128
+ def embed_input_ids(self, input_ids: Tensor) -> Tensor: ...
129
130
@overload
125
- def get_input_embeddings(
131
+ def embed_input_ids(
132
self,
133
input_ids: Tensor,
134
multimodal_embeddings: MultiModalEmbeddings,
@@ -131,17 +137,17 @@ class SupportsMultiModal(Protocol):
137
handle_oov_mm_token: bool = False,
138
) -> Tensor: ...
139
134
- def _get_text_embeddings(
140
+ def _embed_text_input_ids(
141
self,
142
input_ids: Tensor,
137
- get_input_embeddings: Callable[[Tensor], Tensor],
143
+ embed_input_ids: Callable[[Tensor], Tensor],
144
*,
145
is_multimodal: Tensor | None,
146
handle_oov_mm_token: bool,
147
) -> Tensor:
148
if handle_oov_mm_token and is_multimodal is not None:
149
is_text = ~is_multimodal
144
- text_embeds = get_input_embeddings(input_ids[is_text])
150
+ text_embeds = embed_input_ids(input_ids[is_text])
151
152
return torch.empty(
153
(input_ids.shape[0], text_embeds.shape[1]),
@@ -149,9 +155,9 @@ class SupportsMultiModal(Protocol):
155
device=text_embeds.device,
156
).masked_scatter_(is_text.unsqueeze_(-1), text_embeds)
157
152
- return get_input_embeddings(input_ids)
158
+ return embed_input_ids(input_ids)
159
154
- def get_input_embeddings(
160
+ def embed_input_ids(
161
self,
162
input_ids: Tensor,
163
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -167,15 +173,15 @@ class SupportsMultiModal(Protocol):
173
174
In case the multi-modal token IDs exceed the vocabulary size of
175
the language model, you can set `handle_oov_mm_token=False`
170
- to avoid calling the language model's `get_input_embeddings` method
176
+ to avoid calling the language model's `embed_input_ids` method
177
on those tokens. Note however that doing so increases memory usage
178
as an additional buffer is needed to hold the input embeddings.
179
"""
180
from .utils import _merge_multimodal_embeddings
181
176
- inputs_embeds = self._get_text_embeddings(
182
+ inputs_embeds = self._embed_text_input_ids(
183
input_ids,
178
- self.get_language_model().get_input_embeddings,
184
+ self.get_language_model().embed_input_ids,
185
is_multimodal=is_multimodal,
186
handle_oov_mm_token=handle_oov_mm_token,
187
)
@@ -185,7 +191,7 @@ class SupportsMultiModal(Protocol):
191
192
if is_multimodal is None:
193
raise ValueError(
188
- "`get_input_embeddings` now requires `is_multimodal` arg, "
194
+ "`embed_input_ids` now requires `is_multimodal` arg, "
195
"please update your model runner according to "
196
"https://github.com/vllm-project/vllm/pull/16229."
197
)
vllm/model_executor/models/interfaces_base.py
+23
-20
@@ -41,24 +41,19 @@ T_co = TypeVar("T_co", default=torch.Tensor, covariant=True)
41
class VllmModel(Protocol[T_co]):
42
"""The interface required for all models in vLLM."""
43
44
- def __init__(
45
- self,
46
- vllm_config: VllmConfig,
47
- prefix: str = "",
48
- ) -> None: ...
44
+ def __init__(self, vllm_config: VllmConfig, prefix: str = "") -> None: ...
45
50
- def get_input_embeddings(
51
- self,
52
- input_ids: torch.Tensor,
53
- ) -> torch.Tensor:
46
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
47
"""Apply token embeddings to `input_ids`."""
55
- ...
48
+ if hasattr(self, "get_input_embeddings"):
49
+ logger.warning_once(
50
+ "`get_input_embeddings` for vLLM models is deprecated and will be "
51
+ "removed in v0.13.0 or v1.0.0, whichever is earlier. Please rename "
52
+ "this method to `embed_input_ids`."
53
+ )
54
+ return self.get_input_embeddings(input_ids)
55
57
- def forward(
58
- self,
59
- input_ids: torch.Tensor,
60
- positions: torch.Tensor,
61
- ) -> T_co: ...
56
+ def forward(self, input_ids: torch.Tensor, positions: torch.Tensor) -> T_co: ...
57
58
59
def _check_vllm_model_init(model: type[object] | object) -> bool:
@@ -66,11 +61,19 @@ def _check_vllm_model_init(model: type[object] | object) -> bool:
61
return supports_kw(model_init, "vllm_config")
62
63
69
-def _check_vllm_model_get_input_embeddings(model: type[object] | object) -> bool:
70
- model_get_input_embeddings = getattr(model, "get_input_embeddings", None)
71
- if not callable(model_get_input_embeddings):
64
+def _check_vllm_model_embed_input_ids(model: type[object] | object) -> bool:
65
+ model_embed_input_ids = getattr(model, "embed_input_ids", None)
66
+ if not callable(model_embed_input_ids):
67
+ model_get_input_embeddings = getattr(model, "get_input_embeddings", None)
68
+ if callable(model_get_input_embeddings):
69
+ logger.warning(
70
+ "`get_input_embeddings` for vLLM models is deprecated and will be "
71
+ "removed in v0.13.0 or v1.0.0, whichever is earlier. Please rename "
72
+ "this method to `embed_input_ids`."
73
+ )
74
+ model.embed_input_ids = model_get_input_embeddings
75
logger.warning(
73
- "The model (%s) is missing the `get_input_embeddings` method.",
76
+ "The model (%s) is missing the `embed_input_ids` method.",
77
model,
78
)
79
return False
@@ -110,7 +113,7 @@ def is_vllm_model(
113
) -> TypeIs[type[VllmModel]] | TypeIs[VllmModel]:
114
return (
115
_check_vllm_model_init(model)
113
- and _check_vllm_model_get_input_embeddings(model)
116
+ and _check_vllm_model_embed_input_ids(model)
117
and _check_vllm_model_forward(model)
118
)
119
vllm/model_executor/models/internlm2.py
+4
-4
@@ -284,7 +284,7 @@ class InternLM2Model(nn.Module):
284
["hidden_states", "residual"], config.hidden_size
285
)
286
287
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
287
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
288
return self.tok_embeddings(input_ids)
289
290
def forward(
@@ -298,7 +298,7 @@ class InternLM2Model(nn.Module):
298
if inputs_embeds is not None:
299
hidden_states = inputs_embeds
300
else:
301
- hidden_states = self.get_input_embeddings(input_ids)
301
+ hidden_states = self.embed_input_ids(input_ids)
302
residual = None
303
else:
304
assert intermediate_tensors is not None
@@ -350,8 +350,8 @@ class InternLM2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
350
self.model.make_empty_intermediate_tensors
351
)
352
353
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
354
- return self.model.get_input_embeddings(input_ids)
353
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
354
+ return self.model.embed_input_ids(input_ids)
355
356
def forward(
357
self,
vllm/model_executor/models/interns1.py
+4
-4
@@ -742,7 +742,7 @@ class InternS1ForConditionalGeneration(
742
def get_language_model(self) -> torch.nn.Module:
743
return self.language_model
744
745
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
745
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
746
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
747
if not modalities:
748
return []
@@ -765,7 +765,7 @@ class InternS1ForConditionalGeneration(
765
766
return multimodal_embeddings
767
768
- def get_input_embeddings(
768
+ def embed_input_ids(
769
self,
770
input_ids: torch.Tensor,
771
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -778,9 +778,9 @@ class InternS1ForConditionalGeneration(
778
779
# This is to satisfy the type checker for each overload
780
if multimodal_embeddings is None or is_multimodal is None:
781
- return super().get_input_embeddings(input_ids)
781
+ return super().embed_input_ids(input_ids)
782
783
- return super().get_input_embeddings(
783
+ return super().embed_input_ids(
784
input_ids,
785
multimodal_embeddings=multimodal_embeddings,
786
is_multimodal=is_multimodal,
vllm/model_executor/models/internvl.py
+4
-4
@@ -1344,7 +1344,7 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA)
1344
def get_language_model(self) -> torch.nn.Module:
1345
return self.language_model
1346
1347
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1347
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1348
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1349
if not modalities:
1350
return []
@@ -1367,7 +1367,7 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA)
1367
1368
return multimodal_embeddings
1369
1370
- def get_input_embeddings(
1370
+ def embed_input_ids(
1371
self,
1372
input_ids: torch.Tensor,
1373
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1380,9 +1380,9 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA)
1380
1381
# This is to satisfy the type checker for each overload
1382
if multimodal_embeddings is None or is_multimodal is None:
1383
- return super().get_input_embeddings(input_ids)
1383
+ return super().embed_input_ids(input_ids)
1384
1385
- return super().get_input_embeddings(
1385
+ return super().embed_input_ids(
1386
input_ids,
1387
multimodal_embeddings=multimodal_embeddings,
1388
is_multimodal=is_multimodal,
vllm/model_executor/models/jais.py
+4
-4
@@ -275,7 +275,7 @@ class JAISModel(nn.Module):
275
["hidden_states"], config.n_embd
276
)
277
278
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
278
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
279
return self.wte(input_ids)
280
281
def forward(
@@ -287,7 +287,7 @@ class JAISModel(nn.Module):
287
) -> IntermediateTensors | torch.Tensor:
288
if get_pp_group().is_first_rank:
289
if inputs_embeds is None:
290
- inputs_embeds = self.get_input_embeddings(input_ids)
290
+ inputs_embeds = self.embed_input_ids(input_ids)
291
if self.wpe is not None:
292
position_embeds = self.wpe(position_ids)
293
hidden_states = inputs_embeds + position_embeds
@@ -339,8 +339,8 @@ class JAISLMHeadModel(nn.Module, SupportsPP):
339
self.transformer.make_empty_intermediate_tensors
340
)
341
342
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
343
- return self.transformer.get_input_embeddings(input_ids)
342
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
343
+ return self.transformer.embed_input_ids(input_ids)
344
345
def forward(
346
self,
vllm/model_executor/models/jamba.py
+4
-4
@@ -340,7 +340,7 @@ class JambaModel(nn.Module):
340
341
self.final_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
342
343
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
343
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
344
return self.embed_tokens(input_ids)
345
346
def forward(
@@ -354,7 +354,7 @@ class JambaModel(nn.Module):
354
if inputs_embeds is not None:
355
hidden_states = inputs_embeds
356
else:
357
- hidden_states = self.get_input_embeddings(input_ids)
357
+ hidden_states = self.embed_input_ids(input_ids)
358
residual = None
359
else:
360
assert intermediate_tensors is not None
@@ -508,8 +508,8 @@ class JambaForCausalLM(
508
self.model.make_empty_intermediate_tensors
509
)
510
511
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
512
- return self.model.get_input_embeddings(input_ids)
511
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
512
+ return self.model.embed_input_ids(input_ids)
513
514
def forward(
515
self,
vllm/model_executor/models/keye.py
+1
-3
@@ -1484,9 +1484,7 @@ class BaseKeyeModule(nn.Module):
1484
def get_language_model(self) -> torch.nn.Module:
1485
return self.language_model
1486
1487
- def get_multimodal_embeddings(
1488
- self, **kwargs: object
1489
- ) -> MultiModalEmbeddings | None:
1487
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1488
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1489
if not modalities:
1490
return None
vllm/model_executor/models/kimi_linear.py
+4
-4
@@ -439,7 +439,7 @@ class KimiLinearModel(nn.Module):
439
"num_attention_heads must be divisible by world_size"
440
)
441
442
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
442
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
443
return self.embed_tokens(input_ids)
444
445
def forward(
@@ -454,7 +454,7 @@ class KimiLinearModel(nn.Module):
454
if inputs_embeds is not None:
455
hidden_states = inputs_embeds
456
else:
457
- hidden_states = self.get_input_embeddings(input_ids)
457
+ hidden_states = self.embed_input_ids(input_ids)
458
residual = None
459
else:
460
assert intermediate_tensors is not None
@@ -504,8 +504,8 @@ class KimiLinearForCausalLM(
504
self.config.vocab_size, scale=logit_scale
505
)
506
507
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
508
- return self.model.get_input_embeddings(input_ids)
507
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
508
+ return self.model.embed_input_ids(input_ids)
509
510
def forward(
511
self,
vllm/model_executor/models/kimi_vl.py
+1
-1
@@ -404,7 +404,7 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
404
def get_language_model(self) -> torch.nn.Module:
405
return self.language_model
406
407
- def get_multimodal_embeddings(self, **kwargs: object) -> NestedTensors | None:
407
+ def embed_multimodal(self, **kwargs: object) -> NestedTensors | None:
408
# Validate the multimodal input keyword arguments
409
image_input = self._parse_and_validate_image_input(**kwargs)
410
if image_input is None:
vllm/model_executor/models/lfm2.py
+4
-4
@@ -351,7 +351,7 @@ class Lfm2Model(nn.Module):
351
else:
352
self.embedding_norm = PPMissingLayer()
353
354
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
354
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
355
return self.embed_tokens(input_ids)
356
357
def forward(
@@ -365,7 +365,7 @@ class Lfm2Model(nn.Module):
365
if inputs_embeds is not None:
366
hidden_states = inputs_embeds
367
else:
368
- hidden_states = self.get_input_embeddings(input_ids)
368
+ hidden_states = self.embed_input_ids(input_ids)
369
residual = None
370
else:
371
assert intermediate_tensors is not None
@@ -504,8 +504,8 @@ class Lfm2ForCausalLM(
504
self.model.make_empty_intermediate_tensors
505
)
506
507
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
508
- return self.model.get_input_embeddings(input_ids)
507
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
508
+ return self.model.embed_input_ids(input_ids)
509
510
def forward(
511
self,
vllm/model_executor/models/lfm2_moe.py
+4
-4
@@ -466,7 +466,7 @@ class Lfm2MoeModel(nn.Module):
466
else:
467
self.embedding_norm = PPMissingLayer()
468
469
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
469
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
470
return self.embed_tokens(input_ids)
471
472
def forward(
@@ -480,7 +480,7 @@ class Lfm2MoeModel(nn.Module):
480
if inputs_embeds is not None:
481
hidden_states = inputs_embeds
482
else:
483
- hidden_states = self.get_input_embeddings(input_ids)
483
+ hidden_states = self.embed_input_ids(input_ids)
484
residual = None
485
else:
486
assert intermediate_tensors is not None
@@ -714,8 +714,8 @@ class Lfm2MoeForCausalLM(
714
self.num_routed_experts = example_layer.n_routed_experts
715
self.num_redundant_experts = example_layer.n_redundant_experts
716
717
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
718
- return self.model.get_input_embeddings(input_ids)
717
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
718
+ return self.model.embed_input_ids(input_ids)
719
720
def update_physical_experts_metadata(
721
self,
vllm/model_executor/models/llama.py
+4
-4
@@ -424,7 +424,7 @@ class LlamaModel(nn.Module):
424
["hidden_states", "residual"], config.hidden_size
425
)
426
427
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
427
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
428
return self.embed_tokens(input_ids)
429
430
def forward(
@@ -438,7 +438,7 @@ class LlamaModel(nn.Module):
438
if inputs_embeds is not None:
439
hidden_states = inputs_embeds
440
else:
441
- hidden_states = self.get_input_embeddings(input_ids)
441
+ hidden_states = self.embed_input_ids(input_ids)
442
residual = None
443
else:
444
assert intermediate_tensors is not None
@@ -640,8 +640,8 @@ class LlamaForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
640
):
641
return LlamaModel(vllm_config=vllm_config, prefix=prefix, layer_type=layer_type)
642
643
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
644
- return self.model.get_input_embeddings(input_ids)
643
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
644
+ return self.model.embed_input_ids(input_ids)
645
646
def forward(
647
self,
vllm/model_executor/models/llama4_eagle.py
+3
-3
@@ -82,7 +82,7 @@ class LlamaModel(nn.Module):
82
)
83
self.norm = RMSNorm(self.config.hidden_size, eps=self.config.rms_norm_eps)
84
85
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
85
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
86
return self.embed_tokens(input_ids)
87
88
def forward(
@@ -93,7 +93,7 @@ class LlamaModel(nn.Module):
93
inputs_embeds: torch.Tensor | None = None,
94
) -> tuple[torch.Tensor, torch.Tensor]:
95
if inputs_embeds is None:
96
- inputs_embeds = self.get_input_embeddings(input_ids)
96
+ inputs_embeds = self.embed_input_ids(input_ids)
97
hidden_states = self.fc(torch.cat((inputs_embeds, hidden_states), dim=-1))
98
residual = None
99
for layer in self.layers:
@@ -195,7 +195,7 @@ class EagleLlama4ForCausalLM(Llama4ForCausalLM):
195
def get_language_model(self) -> torch.nn.Module:
196
return self.model
197
198
- get_input_embeddings = SupportsMultiModal.get_input_embeddings # type: ignore
198
+ embed_input_ids = SupportsMultiModal.embed_input_ids # type: ignore
199
200
def forward(
201
self,
vllm/model_executor/models/llama_eagle.py
+3
-3
@@ -84,7 +84,7 @@ class LlamaModel(nn.Module):
84
self.config.hidden_size * 2, self.config.hidden_size, bias=False
85
)
86
87
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
87
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
88
return self.embed_tokens(input_ids)
89
90
def forward(
@@ -158,8 +158,8 @@ class EagleLlamaForCausalLM(LlamaForCausalLM):
158
self.config.vocab_size, scale=logit_scale
159
)
160
161
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
162
- return self.model.get_input_embeddings(input_ids)
161
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
162
+ return self.model.embed_input_ids(input_ids)
163
164
def forward(
165
self,
vllm/model_executor/models/llama_eagle3.py
+4
-4
@@ -172,7 +172,7 @@ class LlamaModel(nn.Module):
172
eps=self.config.rms_norm_eps,
173
)
174
175
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
175
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
176
return self.embed_tokens(input_ids)
177
178
def forward(
@@ -183,7 +183,7 @@ class LlamaModel(nn.Module):
183
input_embeds: torch.Tensor | None = None,
184
) -> tuple[torch.Tensor, torch.Tensor]:
185
if input_embeds is None:
186
- input_embeds = self.get_input_embeddings(input_ids)
186
+ input_embeds = self.embed_input_ids(input_ids)
187
assert hidden_states.shape[-1] == input_embeds.shape[-1]
188
189
residual = None
@@ -261,13 +261,13 @@ class Eagle3LlamaForCausalLM(LlamaForCausalLM):
261
requires_grad=False,
262
)
263
264
- def get_input_embeddings(
264
+ def embed_input_ids(
265
self,
266
input_ids: torch.Tensor,
267
multimodal_embeddings: NestedTensors | None = None,
268
is_multimodal: torch.Tensor | None = None,
269
) -> torch.Tensor:
270
- return self.model.get_input_embeddings(input_ids)
270
+ return self.model.embed_input_ids(input_ids)
271
272
def forward(
273
self,
vllm/model_executor/models/llava.py
+1
-1
@@ -661,7 +661,7 @@ class LlavaForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
661
def get_language_model(self) -> torch.nn.Module:
662
return self.language_model
663
664
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
664
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
665
image_input = self._parse_and_validate_image_input(**kwargs)
666
if image_input is None:
667
return []
vllm/model_executor/models/llava_next.py
+4
-4
@@ -483,14 +483,14 @@ class LlavaNextForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsP
483
def get_language_model(self) -> torch.nn.Module:
484
return self.language_model
485
486
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
486
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
487
image_input = self._parse_and_validate_image_input(**kwargs)
488
if image_input is None:
489
return []
490
vision_embeddings = self._process_image_input(image_input)
491
return vision_embeddings
492
493
- def get_input_embeddings(
493
+ def embed_input_ids(
494
self,
495
input_ids: torch.Tensor,
496
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -501,9 +501,9 @@ class LlavaNextForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsP
501
) -> torch.Tensor:
502
# This is to satisfy the type checker for each overload
503
if multimodal_embeddings is None or is_multimodal is None:
504
- return super().get_input_embeddings(input_ids)
504
+ return super().embed_input_ids(input_ids)
505
506
- return super().get_input_embeddings(
506
+ return super().embed_input_ids(
507
input_ids,
508
multimodal_embeddings=multimodal_embeddings,
509
is_multimodal=is_multimodal,
vllm/model_executor/models/llava_next_video.py
+1
-1
@@ -422,7 +422,7 @@ class LlavaNextVideoForConditionalGeneration(nn.Module, SupportsMultiModal, Supp
422
def get_language_model(self) -> torch.nn.Module:
423
return self.language_model
424
425
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
425
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
426
video_input = self._parse_and_validate_video_input(**kwargs)
427
if video_input is None:
428
return []
vllm/model_executor/models/llava_onevision.py
+1
-1
@@ -866,7 +866,7 @@ class LlavaOnevisionForConditionalGeneration(nn.Module, SupportsMultiModal, Supp
866
def get_language_model(self) -> torch.nn.Module:
867
return self.language_model
868
869
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
869
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
870
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
871
if not mm_input_by_modality:
872
return []
vllm/model_executor/models/longcat_flash.py
+4
-4
@@ -498,7 +498,7 @@ class FlashModel(nn.Module):
498
["hidden_states", "residual"], config.hidden_size
499
)
500
501
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
501
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
502
return self.embed_tokens(input_ids)
503
504
def forward(
@@ -512,7 +512,7 @@ class FlashModel(nn.Module):
512
if inputs_embeds is not None:
513
hidden_states = inputs_embeds
514
else:
515
- hidden_states = self.get_input_embeddings(input_ids)
515
+ hidden_states = self.embed_input_ids(input_ids)
516
residual = None
517
else:
518
assert intermediate_tensors is not None
@@ -583,8 +583,8 @@ class LongcatFlashForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
583
self.model.make_empty_intermediate_tensors
584
)
585
586
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
587
- return self.model.get_input_embeddings(input_ids)
586
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
587
+ return self.model.embed_input_ids(input_ids)
588
589
def forward(
590
self,
vllm/model_executor/models/mamba.py
+4
-4
@@ -135,7 +135,7 @@ class MambaModel(nn.Module):
135
["hidden_states", "residual"], config.hidden_size
136
)
137
138
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
138
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
139
return self.embeddings(input_ids)
140
141
def forward(
@@ -149,7 +149,7 @@ class MambaModel(nn.Module):
149
if inputs_embeds is not None:
150
hidden_states = inputs_embeds
151
else:
152
- hidden_states = self.get_input_embeddings(input_ids)
152
+ hidden_states = self.embed_input_ids(input_ids)
153
residual = None
154
else:
155
assert intermediate_tensors is not None
@@ -218,8 +218,8 @@ class MambaForCausalLM(
218
self.backbone.make_empty_intermediate_tensors
219
)
220
221
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
222
- return self.backbone.get_input_embeddings(input_ids)
221
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
222
+ return self.backbone.embed_input_ids(input_ids)
223
224
def forward(
225
self,
vllm/model_executor/models/mamba2.py
+4
-4
@@ -131,7 +131,7 @@ class Mamba2Model(nn.Module):
131
["hidden_states", "residual"], config.hidden_size
132
)
133
134
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
134
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
135
return self.embeddings(input_ids)
136
137
def forward(
@@ -145,7 +145,7 @@ class Mamba2Model(nn.Module):
145
if inputs_embeds is not None:
146
hidden_states = inputs_embeds
147
else:
148
- hidden_states = self.get_input_embeddings(input_ids)
148
+ hidden_states = self.embed_input_ids(input_ids)
149
residual = None
150
else:
151
assert intermediate_tensors is not None
@@ -257,8 +257,8 @@ class Mamba2ForCausalLM(
257
self.backbone.make_empty_intermediate_tensors
258
)
259
260
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
261
- return self.backbone.get_input_embeddings(input_ids)
260
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
261
+ return self.backbone.embed_input_ids(input_ids)
262
263
def forward(
264
self,
vllm/model_executor/models/midashenglm.py
+1
-1
@@ -791,7 +791,7 @@ class MiDashengLMModel(nn.Module, SupportsMultiModal, SupportsPP):
791
def get_language_model(self) -> torch.nn.Module:
792
return self.decoder
793
794
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
794
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
795
audio_input = self._parse_and_validate_audio_input(**kwargs)
796
797
if audio_input is None:
vllm/model_executor/models/mimo.py
+1
-1
@@ -70,7 +70,7 @@ class MiMoModel(Qwen2Model):
70
if inputs_embeds is not None:
71
hidden_states = inputs_embeds
72
else:
73
- hidden_states = self.get_input_embeddings(input_ids)
73
+ hidden_states = self.embed_input_ids(input_ids)
74
residual = None
75
else:
76
assert intermediate_tensors is not None
vllm/model_executor/models/mimo_mtp.py
+3
-3
@@ -120,7 +120,7 @@ class MiMoMultiTokenPredictor(nn.Module):
120
121
self.logits_processor = LogitsProcessor(config.vocab_size)
122
123
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
123
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
124
return self.embed_tokens(input_ids)
125
126
def forward(
@@ -164,8 +164,8 @@ class MiMoMTP(nn.Module):
164
prefix=maybe_prefix(prefix, "lm_head"),
165
)
166
167
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
168
- return self.model.get_input_embeddings(input_ids)
167
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
168
+ return self.model.embed_input_ids(input_ids)
169
170
def forward(
171
self,
vllm/model_executor/models/minicpm.py
+4
-4
@@ -440,7 +440,7 @@ class MiniCPMModel(nn.Module):
440
prefix=f"{prefix}.layers",
441
)
442
443
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
443
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
444
embedding = self.embed_tokens(input_ids)
445
return embedding * self.config.scale_emb
446
@@ -455,7 +455,7 @@ class MiniCPMModel(nn.Module):
455
if inputs_embeds is not None:
456
hidden_states = inputs_embeds
457
else:
458
- hidden_states = self.get_input_embeddings(input_ids)
458
+ hidden_states = self.embed_input_ids(input_ids)
459
residual = None
460
else:
461
hidden_states = intermediate_tensors["hidden_states"]
@@ -615,8 +615,8 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
615
def _init_model(self, *, vllm_config: VllmConfig, prefix: str = ""):
616
return MiniCPMModel(vllm_config=vllm_config, prefix=prefix)
617
618
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
619
- return self.model.get_input_embeddings(input_ids)
618
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
619
+ return self.model.embed_input_ids(input_ids)
620
621
def set_aux_hidden_state_layers(self, layers: tuple[int, ...]) -> None:
622
self.model.aux_hidden_state_layers = layers
vllm/model_executor/models/minicpm_eagle.py
+4
-4
@@ -193,7 +193,7 @@ class EagleMiniCPMModel(nn.Module):
193
]
194
)
195
196
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
196
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
197
embedding = self.embed_tokens(input_ids)
198
return embedding * self.config.scale_emb
199
@@ -203,7 +203,7 @@ class EagleMiniCPMModel(nn.Module):
203
positions: torch.Tensor,
204
hidden_states: torch.Tensor,
205
) -> torch.Tensor | IntermediateTensors:
206
- input_embeds = self.get_input_embeddings(input_ids)
206
+ input_embeds = self.embed_input_ids(input_ids)
207
input_embeds = self.input_norm1(input_embeds)
208
hidden_states = self.input_norm2(hidden_states)
209
@@ -354,8 +354,8 @@ class EagleMiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
354
vllm_config=vllm_config, prefix=prefix, start_layer=start_layer
355
)
356
357
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
358
- return self.model.get_input_embeddings(input_ids)
357
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
358
+ return self.model.embed_input_ids(input_ids)
359
360
def forward(
361
self,
vllm/model_executor/models/minicpmv.py
+1
-1
@@ -1139,7 +1139,7 @@ class MiniCPMVBaseModel(nn.Module, SupportsMultiModal, SupportsPP):
1139
def get_language_model(self) -> torch.nn.Module:
1140
return self.llm
1141
1142
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1142
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1143
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1144
if not modalities:
1145
return []
vllm/model_executor/models/minimax_m2.py
+4
-4
@@ -360,7 +360,7 @@ class MiniMaxM2Model(nn.Module):
360
["hidden_states", "residual"], config.hidden_size
361
)
362
363
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
363
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
364
return self.embed_tokens(input_ids)
365
366
def forward(
@@ -374,7 +374,7 @@ class MiniMaxM2Model(nn.Module):
374
if inputs_embeds is not None:
375
hidden_states = inputs_embeds
376
else:
377
- hidden_states = self.get_input_embeddings(input_ids)
377
+ hidden_states = self.embed_input_ids(input_ids)
378
residual = None
379
else:
380
assert intermediate_tensors is not None
@@ -510,8 +510,8 @@ class MiniMaxM2ForCausalLM(nn.Module, SupportsPP):
510
self.model.make_empty_intermediate_tensors
511
)
512
513
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
514
- return self.model.get_input_embeddings(input_ids)
513
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
514
+ return self.model.embed_input_ids(input_ids)
515
516
def forward(
517
self,
vllm/model_executor/models/minimax_text_01.py
+3
-3
@@ -620,7 +620,7 @@ class MiniMaxText01Model(nn.Module):
620
)
621
minimax_cache_tensors[:, slots_tensor, ...] = 0
622
623
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
623
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
624
return self.embed_tokens(input_ids)
625
626
def forward(
@@ -709,8 +709,8 @@ class MiniMaxText01ForCausalLM(nn.Module, HasInnerState, IsHybrid):
709
def get_seqlen_agnostic_capture_inputs(self, batch_size: int):
710
return self.model.minimax_cache.get_seqlen_agnostic_capture_inputs(batch_size)
711
712
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
713
- return self.model.get_input_embeddings(input_ids)
712
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
713
+ return self.model.embed_input_ids(input_ids)
714
715
def forward(
716
self,
vllm/model_executor/models/minimax_vl_01.py
+3
-3
@@ -353,7 +353,7 @@ class MiniMaxVL01ForConditionalGeneration(nn.Module, SupportsMultiModal, Support
353
354
raise AssertionError("This line should be unreachable.")
355
356
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
356
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
357
image_input = self._parse_and_validate_image_input(**kwargs)
358
if image_input is None:
359
return []
@@ -371,8 +371,8 @@ class MiniMaxVL01ForConditionalGeneration(nn.Module, SupportsMultiModal, Support
371
if intermediate_tensors is not None:
372
inputs_embeds = None
373
elif inputs_embeds is None:
374
- vision_embeddings = self.get_multimodal_embeddings(**kwargs)
375
- inputs_embeds = self.get_input_embeddings(
374
+ vision_embeddings = self.embed_multimodal(**kwargs)
375
+ inputs_embeds = self.embed_input_ids(
376
input_ids,
377
vision_embeddings,
378
is_multimodal=input_ids == self.config.image_token_index,
vllm/model_executor/models/mistral3.py
+1
-1
@@ -549,7 +549,7 @@ class Mistral3ForConditionalGeneration(
549
def get_language_model(self) -> torch.nn.Module:
550
return self.language_model
551
552
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
552
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
553
image_input = self._parse_and_validate_image_input(**kwargs)
554
if image_input is None:
555
return []
vllm/model_executor/models/mixtral.py
+4
-4
@@ -345,7 +345,7 @@ class MixtralModel(nn.Module):
345
["hidden_states", "residual"], config.hidden_size
346
)
347
348
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
348
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
349
return self.embed_tokens(input_ids)
350
351
def forward(
@@ -359,7 +359,7 @@ class MixtralModel(nn.Module):
359
if inputs_embeds is not None:
360
hidden_states = inputs_embeds
361
else:
362
- hidden_states = self.get_input_embeddings(input_ids)
362
+ hidden_states = self.embed_input_ids(input_ids)
363
residual = None
364
else:
365
assert intermediate_tensors is not None
@@ -591,8 +591,8 @@ class MixtralForCausalLM(nn.Module, SupportsLoRA, SupportsPP, MixtureOfExperts):
591
moe.n_redundant_experts = self.num_redundant_experts
592
moe.experts.update_expert_map()
593
594
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
595
- return self.model.get_input_embeddings(input_ids)
594
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
595
+ return self.model.embed_input_ids(input_ids)
596
597
def forward(
598
self,
vllm/model_executor/models/mllama4.py
+1
-1
@@ -865,7 +865,7 @@ class Llama4ForConditionalGeneration(
865
def get_language_model(self) -> torch.nn.Module:
866
return self.language_model
867
868
- def get_multimodal_embeddings(self, **kwargs) -> MultiModalEmbeddings:
868
+ def embed_multimodal(self, **kwargs) -> MultiModalEmbeddings:
869
image_input = self._parse_and_validate_image_input(**kwargs)
870
if image_input is None:
871
return []
vllm/model_executor/models/modernbert.py
+7
-7
@@ -46,7 +46,7 @@ class ModernBertEmbeddings(nn.Module):
46
)
47
self.norm = nn.LayerNorm(config.hidden_size, eps=eps, bias=config.norm_bias)
48
49
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
49
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
50
return self.tok_embeddings(input_ids)
51
52
def forward(
@@ -225,8 +225,8 @@ class ModernBertModel(nn.Module):
225
config.hidden_size, eps=config.norm_eps, bias=config.norm_bias
226
)
227
228
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
229
- return self.embeddings.get_input_embeddings(input_ids)
228
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
229
+ return self.embeddings.embed_input_ids(input_ids)
230
231
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]) -> set[str]:
232
weights = self.hf_to_vllm_mapper.apply(weights)
@@ -337,8 +337,8 @@ class ModernBertForSequenceClassification(nn.Module, SupportsCrossEncoding):
337
}
338
)
339
340
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
341
- return self.model.get_input_embeddings(input_ids)
340
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
341
+ return self.model.embed_input_ids(input_ids)
342
343
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
344
self_weights = []
@@ -424,8 +424,8 @@ class ModernBertForTokenClassification(nn.Module):
424
}
425
)
426
427
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
428
- return self.model.get_input_embeddings(input_ids)
427
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
428
+ return self.model.embed_input_ids(input_ids)
429
430
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
431
loader = AutoWeightsLoader(self, skip_prefixes=["drop"])
vllm/model_executor/models/molmo.py
+2
-2
@@ -832,7 +832,7 @@ class MolmoModel(nn.Module, SupportsQuant):
832
["hidden_states", "residual"], config.hidden_size
833
)
834
835
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
835
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
836
return self.embed_tokens(input_ids)
837
838
def forward(
@@ -1491,7 +1491,7 @@ class MolmoForCausalLM(
1491
def get_language_model(self) -> torch.nn.Module:
1492
return self.model
1493
1494
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1494
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1495
image_input = self._parse_and_validate_image_input(**kwargs)
1496
if image_input is None:
1497
return []
vllm/model_executor/models/mpt.py
+4
-4
@@ -248,7 +248,7 @@ class MPTModel(nn.Module):
248
["hidden_states"], config.d_model
249
)
250
251
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
251
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
252
return self.wte(input_ids)
253
254
def forward(
@@ -262,7 +262,7 @@ class MPTModel(nn.Module):
262
if inputs_embeds is not None:
263
hidden_states = inputs_embeds
264
else:
265
- hidden_states = self.get_input_embeddings(input_ids)
265
+ hidden_states = self.embed_input_ids(input_ids)
266
else:
267
assert intermediate_tensors is not None
268
hidden_states = intermediate_tensors["hidden_states"]
@@ -308,8 +308,8 @@ class MPTForCausalLM(nn.Module, SupportsPP):
308
self.transformer.make_empty_intermediate_tensors
309
)
310
311
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
312
- return self.transformer.get_input_embeddings(input_ids)
311
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
312
+ return self.transformer.embed_input_ids(input_ids)
313
314
def forward(
315
self,
vllm/model_executor/models/nano_nemotron_vl.py
+3
-3
@@ -655,7 +655,7 @@ class NanoNemotronVLProcessor(BaseNanoNemotronVLProcessor):
655
The replacement returned is not actually used to replace the placeholder
656
tokens - it's just used to make sure we allocate the correct number
657
of tokens.
658
- Actual replacement is done in get_multimodal_embeddings of
658
+ Actual replacement is done in embed_multimodal of
659
NemotronH_Nano_VL_V2
660
(specifically in _process_video_input -> _create_final_video_embeddings).
661
There, we create the final embeddings with text embeddings for indicator tokens
@@ -1401,7 +1401,7 @@ class NemotronH_Nano_VL_V2(
1401
1402
# Create final video embeddings, merging text embeddings for indicator
1403
# tokens with video embeddings
1404
- text_embeddings = self.get_language_model().get_input_embeddings(repl_token_ids)
1404
+ text_embeddings = self.get_language_model().embed_input_ids(repl_token_ids)
1405
final_video_embeddings = _merge_multimodal_embeddings(
1406
inputs_embeds=text_embeddings,
1407
multimodal_embeddings=video_embeddings,
@@ -1465,7 +1465,7 @@ class NemotronH_Nano_VL_V2(
1465
1466
return modalities
1467
1468
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1468
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1469
# Validate the multimodal input keyword arguments
1470
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1471
if modalities is None:
vllm/model_executor/models/nemotron.py
+4
-4
@@ -351,7 +351,7 @@ class NemotronModel(nn.Module):
351
["hidden_states", "residual"], config.hidden_size
352
)
353
354
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
354
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
355
return self.embed_tokens(input_ids)
356
357
def forward(
@@ -365,7 +365,7 @@ class NemotronModel(nn.Module):
365
if inputs_embeds is not None:
366
hidden_states = inputs_embeds
367
else:
368
- hidden_states = self.get_input_embeddings(input_ids)
368
+ hidden_states = self.embed_input_ids(input_ids)
369
residual = None
370
else:
371
assert intermediate_tensors is not None
@@ -491,8 +491,8 @@ class NemotronForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
491
self.model.make_empty_intermediate_tensors
492
)
493
494
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
495
- return self.model.get_input_embeddings(input_ids)
494
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
495
+ return self.model.embed_input_ids(input_ids)
496
497
def forward(
498
self,
vllm/model_executor/models/nemotron_h.py
+4
-4
@@ -548,7 +548,7 @@ class NemotronHModel(nn.Module):
548
549
self.norm_f = RMSNorm(config.hidden_size, eps=config.layer_norm_epsilon)
550
551
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
551
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
552
return self.embed_tokens(input_ids)
553
554
def forward(
@@ -562,7 +562,7 @@ class NemotronHModel(nn.Module):
562
if inputs_embeds is not None:
563
hidden_states = inputs_embeds
564
else:
565
- hidden_states = self.get_input_embeddings(input_ids)
565
+ hidden_states = self.embed_input_ids(input_ids)
566
residual = None
567
else:
568
assert intermediate_tensors is not None
@@ -823,8 +823,8 @@ class NemotronHForCausalLM(
823
moe.n_redundant_experts = self.num_redundant_experts
824
moe.experts.update_expert_map()
825
826
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
827
- return self.model.get_input_embeddings(input_ids)
826
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
827
+ return self.model.embed_input_ids(input_ids)
828
829
def forward(
830
self,
vllm/model_executor/models/nemotron_nas.py
+4
-4
@@ -291,7 +291,7 @@ class DeciModel(nn.Module):
291
["hidden_states", "residual"], config.hidden_size
292
)
293
294
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
294
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
295
return self.embed_tokens(input_ids)
296
297
def forward(
@@ -305,7 +305,7 @@ class DeciModel(nn.Module):
305
if inputs_embeds is not None:
306
hidden_states = inputs_embeds
307
else:
308
- hidden_states = self.get_input_embeddings(input_ids)
308
+ hidden_states = self.embed_input_ids(input_ids)
309
residual = None
310
else:
311
assert intermediate_tensors is not None
@@ -461,8 +461,8 @@ class DeciLMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, HasNoOps):
461
def _init_model(self, vllm_config: VllmConfig, prefix: str = ""):
462
return DeciModel(vllm_config=vllm_config, prefix=prefix)
463
464
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
465
- return self.model.get_input_embeddings(input_ids)
464
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
465
+ return self.model.embed_input_ids(input_ids)
466
467
def forward(
468
self,
vllm/model_executor/models/nemotron_vl.py
+4
-4
@@ -561,7 +561,7 @@ class LlamaNemotronVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, Suppor
561
def get_language_model(self) -> torch.nn.Module:
562
return self.language_model
563
564
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
564
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
565
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
566
if not modalities:
567
return []
@@ -580,7 +580,7 @@ class LlamaNemotronVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, Suppor
580
581
return multimodal_embeddings
582
583
- def get_input_embeddings(
583
+ def embed_input_ids(
584
self,
585
input_ids: torch.Tensor,
586
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -593,9 +593,9 @@ class LlamaNemotronVLChatModel(nn.Module, SupportsMultiModal, SupportsPP, Suppor
593
594
# This is to satisfy the type checker for each overload
595
if multimodal_embeddings is None or is_multimodal is None:
596
- return super().get_input_embeddings(input_ids)
596
+ return super().embed_input_ids(input_ids)
597
598
- return super().get_input_embeddings(
598
+ return super().embed_input_ids(
599
input_ids,
600
multimodal_embeddings=multimodal_embeddings,
601
is_multimodal=is_multimodal,
vllm/model_executor/models/olmo.py
+4
-4
@@ -268,7 +268,7 @@ class OlmoModel(nn.Module):
268
["hidden_states"], config.hidden_size
269
)
270
271
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
271
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
272
return self.embed_tokens(input_ids)
273
274
def forward(
@@ -285,7 +285,7 @@ class OlmoModel(nn.Module):
285
if inputs_embeds is not None:
286
hidden_states = inputs_embeds
287
else:
288
- hidden_states = self.get_input_embeddings(input_ids)
288
+ hidden_states = self.embed_input_ids(input_ids)
289
else:
290
assert intermediate_tensors is not None
291
hidden_states = intermediate_tensors["hidden_states"]
@@ -379,8 +379,8 @@ class OlmoForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
379
self.model.make_empty_intermediate_tensors
380
)
381
382
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
383
- return self.model.get_input_embeddings(input_ids)
382
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
383
+ return self.model.embed_input_ids(input_ids)
384
385
def forward(
386
self,
vllm/model_executor/models/olmo2.py
+3
-3
@@ -304,7 +304,7 @@ class Olmo2Model(nn.Module):
304
["hidden_states"], self.config.hidden_size
305
)
306
307
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
307
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
308
return self.embed_tokens(input_ids)
309
310
def forward(
@@ -419,8 +419,8 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
419
self.model.make_empty_intermediate_tensors
420
)
421
422
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
423
- return self.model.get_input_embeddings(input_ids)
422
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
423
+ return self.model.embed_input_ids(input_ids)
424
425
def forward(
426
self,
vllm/model_executor/models/olmoe.py
+4
-4
@@ -296,7 +296,7 @@ class OlmoeModel(nn.Module):
296
["hidden_states", "residual"], config.hidden_size
297
)
298
299
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
299
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
300
return self.embed_tokens(input_ids)
301
302
def forward(
@@ -310,7 +310,7 @@ class OlmoeModel(nn.Module):
310
if inputs_embeds is not None:
311
hidden_states = inputs_embeds
312
else:
313
- hidden_states = self.get_input_embeddings(input_ids)
313
+ hidden_states = self.embed_input_ids(input_ids)
314
residual = None
315
else:
316
assert intermediate_tensors is not None
@@ -471,8 +471,8 @@ class OlmoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
471
self.model.make_empty_intermediate_tensors
472
)
473
474
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
475
- return self.model.get_input_embeddings(input_ids)
474
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
475
+ return self.model.embed_input_ids(input_ids)
476
477
def forward(
478
self,
vllm/model_executor/models/openpangu.py
+4
-4
@@ -753,7 +753,7 @@ class OpenPanguModel(nn.Module):
753
["hidden_states", "residual"], config.hidden_size
754
)
755
756
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
756
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
757
return self.embed_tokens(input_ids)
758
759
def forward(
@@ -767,7 +767,7 @@ class OpenPanguModel(nn.Module):
767
if inputs_embeds is not None:
768
hidden_states = inputs_embeds
769
else:
770
- hidden_states = self.get_input_embeddings(input_ids)
770
+ hidden_states = self.embed_input_ids(input_ids)
771
residual = None
772
else:
773
assert intermediate_tensors is not None
@@ -969,8 +969,8 @@ class OpenPanguModelBase(nn.Module, SupportsPP, SupportsLoRA):
969
self.model.make_empty_intermediate_tensors
970
)
971
972
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
973
- return self.model.get_input_embeddings(input_ids)
972
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
973
+ return self.model.embed_input_ids(input_ids)
974
975
def forward(
976
self,
vllm/model_executor/models/openpangu_mtp.py
+2
-2
@@ -100,8 +100,8 @@ class OpenPanguMTP(nn.Module, SupportsPP):
100
vllm_config=vllm_config, prefix=maybe_prefix(prefix, "model")
101
)
102
103
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
104
- return self.model.get_input_embeddings(input_ids)
103
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
104
+ return self.model.embed_input_ids(input_ids)
105
106
def forward(
107
self,
vllm/model_executor/models/opt.py
+6
-6
@@ -262,7 +262,7 @@ class OPTDecoder(nn.Module):
262
prefix=f"{prefix}.layers",
263
)
264
265
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
265
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
266
return self.embed_tokens(input_ids)
267
268
def forward(
@@ -274,7 +274,7 @@ class OPTDecoder(nn.Module):
274
) -> torch.Tensor | IntermediateTensors:
275
if get_pp_group().is_first_rank:
276
if inputs_embeds is None:
277
- inputs_embeds = self.get_input_embeddings(input_ids)
277
+ inputs_embeds = self.embed_input_ids(input_ids)
278
pos_embeds = self.embed_positions(positions)
279
if self.project_in is not None:
280
inputs_embeds, _ = self.project_in(inputs_embeds)
@@ -311,8 +311,8 @@ class OPTModel(nn.Module):
311
["hidden_states"], config.hidden_size
312
)
313
314
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
315
- return self.decoder.get_input_embeddings(input_ids)
314
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
315
+ return self.decoder.embed_input_ids(input_ids)
316
317
def forward(
318
self,
@@ -394,8 +394,8 @@ class OPTForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
394
self.model.make_empty_intermediate_tensors
395
)
396
397
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
398
- return self.model.get_input_embeddings(input_ids)
397
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
398
+ return self.model.embed_input_ids(input_ids)
399
400
def forward(
401
self,
vllm/model_executor/models/orion.py
+4
-4
@@ -255,7 +255,7 @@ class OrionModel(nn.Module):
255
config.hidden_size,
256
)
257
258
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
258
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
259
return self.embed_tokens(input_ids)
260
261
def forward(
@@ -269,7 +269,7 @@ class OrionModel(nn.Module):
269
if inputs_embeds is not None:
270
hidden_states = inputs_embeds
271
else:
272
- hidden_states = self.get_input_embeddings(input_ids)
272
+ hidden_states = self.embed_input_ids(input_ids)
273
else:
274
assert intermediate_tensors is not None
275
hidden_states = intermediate_tensors["hidden_states"]
@@ -345,8 +345,8 @@ class OrionForCausalLM(nn.Module, SupportsPP):
345
self.model.make_empty_intermediate_tensors
346
)
347
348
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
349
- return self.model.get_input_embeddings(input_ids)
348
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
349
+ return self.model.embed_input_ids(input_ids)
350
351
def forward(
352
self,
vllm/model_executor/models/ouro.py
+4
-4
@@ -361,7 +361,7 @@ class OuroModel(nn.Module):
361
362
self.total_ut_steps = getattr(self.config, "total_ut_steps", 4)
363
364
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
364
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
365
return self.embed_tokens(input_ids)
366
367
def forward(
@@ -374,7 +374,7 @@ class OuroModel(nn.Module):
374
if inputs_embeds is not None:
375
hidden_states = inputs_embeds
376
else:
377
- hidden_states = self.get_input_embeddings(input_ids)
377
+ hidden_states = self.embed_input_ids(input_ids)
378
379
for current_ut in range(self.total_ut_steps):
380
residual = None
@@ -486,8 +486,8 @@ class OuroForCausalLM(nn.Module, SupportsLoRA):
486
self.model.make_empty_intermediate_tensors
487
)
488
489
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
490
- return self.model.get_input_embeddings(input_ids)
489
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
490
+ return self.model.embed_input_ids(input_ids)
491
492
def forward(
493
self,
vllm/model_executor/models/ovis.py
+1
-1
@@ -514,7 +514,7 @@ class Ovis(nn.Module, SupportsMultiModal, SupportsPP):
514
515
return tuple(vision_embeddings)
516
517
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
517
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
518
image_input = self._parse_and_validate_image_input(**kwargs)
519
if image_input is None:
520
return []
vllm/model_executor/models/ovis2_5.py
+1
-1
@@ -617,7 +617,7 @@ class Ovis2_5(nn.Module, SupportsMultiModal, SupportsPP):
617
618
return modalities
619
620
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
620
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
621
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
622
if not modalities:
623
return []
vllm/model_executor/models/paddleocr_vl.py
+3
-3
@@ -1328,10 +1328,10 @@ class PaddleOCRVLForConditionalGeneration(nn.Module, SupportsMultiModal, Support
1328
inputs_embeds = None
1329
1330
elif inputs_embeds is None:
1331
- vision_embeddings = self.get_multimodal_embeddings(**kwargs)
1331
+ vision_embeddings = self.embed_multimodal(**kwargs)
1332
is_multimodal = kwargs.pop("is_multimodal", None)
1333
handle_oov_mm_token = kwargs.pop("handle_oov_mm_token", False)
1334
- inputs_embeds = self.get_input_embeddings(
1334
+ inputs_embeds = self.embed_input_ids(
1335
input_ids,
1336
vision_embeddings,
1337
is_multimodal=is_multimodal,
@@ -1391,7 +1391,7 @@ class PaddleOCRVLForConditionalGeneration(nn.Module, SupportsMultiModal, Support
1391
image_embeds = self.mlp_AR(vision_outputs, image_grid_thw)
1392
return image_embeds
1393
1394
- def get_multimodal_embeddings(self, **kwargs) -> MultiModalEmbeddings:
1394
+ def embed_multimodal(self, **kwargs) -> MultiModalEmbeddings:
1395
image_input = self._parse_and_validate_image_input(**kwargs)
1396
if image_input is None:
1397
return ()
vllm/model_executor/models/paligemma.py
+1
-1
@@ -375,7 +375,7 @@ class PaliGemmaForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsP
375
def get_language_model(self) -> torch.nn.Module:
376
return self.language_model
377
378
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
378
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
379
image_input = self._parse_and_validate_image_input(**kwargs)
380
if image_input is None:
381
return []
vllm/model_executor/models/persimmon.py
+4
-4
@@ -270,7 +270,7 @@ class PersimmonModel(nn.Module):
270
["hidden_states"], config.hidden_size
271
)
272
273
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
273
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
274
return self.embed_tokens(input_ids)
275
276
def forward(
@@ -284,7 +284,7 @@ class PersimmonModel(nn.Module):
284
if inputs_embeds is not None:
285
hidden_states = inputs_embeds
286
else:
287
- hidden_states = self.get_input_embeddings(input_ids)
287
+ hidden_states = self.embed_input_ids(input_ids)
288
else:
289
assert intermediate_tensors is not None
290
hidden_states = intermediate_tensors["hidden_states"]
@@ -347,8 +347,8 @@ class PersimmonForCausalLM(nn.Module, SupportsPP):
347
self.model.make_empty_intermediate_tensors
348
)
349
350
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
351
- return self.model.get_input_embeddings(input_ids)
350
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
351
+ return self.model.embed_input_ids(input_ids)
352
353
def forward(
354
self,
vllm/model_executor/models/phi.py
+4
-4
@@ -240,7 +240,7 @@ class PhiModel(nn.Module):
240
["hidden_states"], config.hidden_size
241
)
242
243
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
243
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
244
return self.embed_tokens(input_ids)
245
246
def forward(
@@ -254,7 +254,7 @@ class PhiModel(nn.Module):
254
if inputs_embeds is not None:
255
hidden_states = inputs_embeds
256
else:
257
- hidden_states = self.get_input_embeddings(input_ids)
257
+ hidden_states = self.embed_input_ids(input_ids)
258
else:
259
assert intermediate_tensors is not None
260
hidden_states = intermediate_tensors["hidden_states"]
@@ -346,8 +346,8 @@ class PhiForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
346
self.model.make_empty_intermediate_tensors
347
)
348
349
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
350
- return self.model.get_input_embeddings(input_ids)
349
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
350
+ return self.model.embed_input_ids(input_ids)
351
352
def forward(
353
self,
vllm/model_executor/models/phi3v.py
+4
-4
@@ -664,14 +664,14 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsQuant)
664
def get_language_model(self) -> torch.nn.Module:
665
return self.language_model
666
667
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
667
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
668
image_input = self._parse_and_validate_image_input(**kwargs)
669
if image_input is None:
670
return []
671
vision_embeddings = self._process_image_input(image_input)
672
return vision_embeddings
673
674
- def get_input_embeddings(
674
+ def embed_input_ids(
675
self,
676
input_ids: torch.Tensor,
677
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -679,7 +679,7 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsQuant)
679
is_multimodal: torch.Tensor | None = None,
680
handle_oov_mm_token: bool = False,
681
) -> torch.Tensor:
682
- inputs_embeds = self._get_text_embeddings(
682
+ inputs_embeds = self._embed_text_input_ids(
683
input_ids,
684
self.embed_tokens,
685
is_multimodal=is_multimodal,
@@ -691,7 +691,7 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsQuant)
691
692
if is_multimodal is None:
693
raise ValueError(
694
- "`get_input_embeddings` now requires `is_multimodal` arg, "
694
+ "`embed_input_ids` now requires `is_multimodal` arg, "
695
"please update your model runner according to "
696
"https://github.com/vllm-project/vllm/pull/16229."
697
)
vllm/model_executor/models/phi4_multimodal.py
+1
-1
@@ -1371,7 +1371,7 @@ class Phi4MultimodalForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
1371
)
1372
return image_embeds
1373
1374
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1374
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1375
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1376
if not modalities:
1377
return []
vllm/model_executor/models/phi4mm.py
+1
-1
@@ -1180,7 +1180,7 @@ class Phi4MMForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
1180
)
1181
return image_embeds
1182
1183
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1183
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1184
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1185
if not modalities:
1186
return []
vllm/model_executor/models/phimoe.py
+4
-4
@@ -482,7 +482,7 @@ class PhiMoEModel(nn.Module):
482
["hidden_states", "residual"], config.hidden_size
483
)
484
485
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
485
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
486
return self.embed_tokens(input_ids)
487
488
def forward(
@@ -496,7 +496,7 @@ class PhiMoEModel(nn.Module):
496
if inputs_embeds is not None:
497
hidden_states = inputs_embeds
498
else:
499
- hidden_states = self.get_input_embeddings(input_ids)
499
+ hidden_states = self.embed_input_ids(input_ids)
500
residual = None
501
else:
502
assert intermediate_tensors is not None
@@ -648,8 +648,8 @@ class PhiMoEForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
648
self.model.make_empty_intermediate_tensors
649
)
650
651
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
652
- return self.model.get_input_embeddings(input_ids)
651
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
652
+ return self.model.embed_input_ids(input_ids)
653
654
def forward(
655
self,
vllm/model_executor/models/pixtral.py
+1
-1
@@ -461,7 +461,7 @@ class PixtralForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
461
def get_language_model(self) -> torch.nn.Module:
462
return self.language_model
463
464
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
464
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
465
image_input = self._parse_and_validate_image_input(**kwargs)
466
if image_input is None:
467
return []
vllm/model_executor/models/plamo2.py
+4
-4
@@ -762,7 +762,7 @@ class Plamo2Model(torch.nn.Module):
762
self.layers = Plamo2Decoder(vllm_config=vllm_config, prefix=f"{prefix}.layers")
763
self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
764
765
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
765
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
766
return self.embed_tokens(input_ids)
767
768
def forward(
@@ -776,7 +776,7 @@ class Plamo2Model(torch.nn.Module):
776
if inputs_embeds is not None:
777
hidden_states = inputs_embeds
778
else:
779
- hidden_states = self.get_input_embeddings(input_ids)
779
+ hidden_states = self.embed_input_ids(input_ids)
780
residual = None
781
else:
782
assert intermediate_tensors is not None
@@ -839,8 +839,8 @@ class Plamo2ForCausalLM(torch.nn.Module, HasInnerState, SupportsPP, IsHybrid):
839
self.model.make_empty_intermediate_tensors
840
)
841
842
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
843
- return self.model.get_input_embeddings(input_ids)
842
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
843
+ return self.model.embed_input_ids(input_ids)
844
845
def forward(
846
self,
vllm/model_executor/models/qwen.py
+2
-2
@@ -221,7 +221,7 @@ class QWenModel(nn.Module):
221
["hidden_states", "residual"], config.hidden_size
222
)
223
224
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
224
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
225
return self.wte(input_ids)
226
227
def forward(
@@ -235,7 +235,7 @@ class QWenModel(nn.Module):
235
if inputs_embeds is not None:
236
hidden_states = inputs_embeds
237
else:
238
- hidden_states = self.get_input_embeddings(input_ids)
238
+ hidden_states = self.embed_input_ids(input_ids)
239
residual = None
240
else:
241
assert intermediate_tensors is not None
vllm/model_executor/models/qwen2.py
+4
-4
@@ -355,7 +355,7 @@ class Qwen2Model(nn.Module):
355
356
self.aux_hidden_state_layers = tuple[int, ...]()
357
358
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
358
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
359
return self.embed_tokens(input_ids)
360
361
def forward(
@@ -369,7 +369,7 @@ class Qwen2Model(nn.Module):
369
if inputs_embeds is not None:
370
hidden_states = inputs_embeds
371
else:
372
- hidden_states = self.get_input_embeddings(input_ids)
372
+ hidden_states = self.embed_input_ids(input_ids)
373
residual = None
374
else:
375
assert intermediate_tensors is not None
@@ -504,8 +504,8 @@ class Qwen2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
504
self.model.make_empty_intermediate_tensors
505
)
506
507
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
508
- return self.model.get_input_embeddings(input_ids)
507
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
508
+ return self.model.embed_input_ids(input_ids)
509
510
def set_aux_hidden_state_layers(self, layers: tuple[int, ...]) -> None:
511
self.model.aux_hidden_state_layers = layers
vllm/model_executor/models/qwen2_5_omni_thinker.py
+5
-5
@@ -1132,7 +1132,7 @@ class Qwen2_5OmniThinkerForConditionalGeneration(
1132
1133
return llm_positions, mrope_position_delta
1134
1135
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1135
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1136
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1137
if not mm_input_by_modality:
1138
return []
@@ -1158,7 +1158,7 @@ class Qwen2_5OmniThinkerForConditionalGeneration(
1158
1159
# TODO (ywang96): support overlapping modality embeddings so that
1160
# `use_audio_in_video` will work on V1.
1161
- def get_input_embeddings(
1161
+ def embed_input_ids(
1162
self,
1163
input_ids: torch.Tensor,
1164
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1168,16 +1168,16 @@ class Qwen2_5OmniThinkerForConditionalGeneration(
1168
) -> torch.Tensor:
1169
# This is to satisfy the type checker for each overload
1170
if multimodal_embeddings is None or is_multimodal is None:
1171
- return super().get_input_embeddings(input_ids)
1171
+ return super().embed_input_ids(input_ids)
1172
1173
- return super().get_input_embeddings(
1173
+ return super().embed_input_ids(
1174
input_ids,
1175
multimodal_embeddings=multimodal_embeddings,
1176
is_multimodal=is_multimodal,
1177
handle_oov_mm_token=handle_oov_mm_token,
1178
)
1179
1180
- def get_multimodal_embeddings_v0(self, **kwargs: object) -> NestedTensors | None:
1180
+ def embed_multimodal_v0(self, **kwargs: object) -> NestedTensors | None:
1181
audio_input = self._parse_and_validate_audio_input(**kwargs)
1182
image_input = self._parse_and_validate_image_input(**kwargs)
1183
video_input = self._parse_and_validate_video_input(**kwargs)
vllm/model_executor/models/qwen2_5_vl.py
+1
-1
@@ -1534,7 +1534,7 @@ class Qwen2_5_VLForConditionalGeneration(
1534
def get_language_model(self) -> torch.nn.Module:
1535
return self.language_model
1536
1537
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1537
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1538
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1539
if not mm_input_by_modality:
1540
return []
vllm/model_executor/models/qwen2_audio.py
+1
-1
@@ -439,7 +439,7 @@ class Qwen2AudioForConditionalGeneration(nn.Module, SupportsMultiModal, Supports
439
def get_language_model(self) -> torch.nn.Module:
440
return self.language_model
441
442
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
442
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
443
audio_input = self._parse_and_validate_audio_input(**kwargs)
444
if audio_input is None:
445
return []
vllm/model_executor/models/qwen2_moe.py
+4
-4
@@ -389,7 +389,7 @@ class Qwen2MoeModel(nn.Module):
389
["hidden_states", "residual"], config.hidden_size
390
)
391
392
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
392
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
393
return self.embed_tokens(input_ids)
394
395
def forward(
@@ -403,7 +403,7 @@ class Qwen2MoeModel(nn.Module):
403
if inputs_embeds is not None:
404
hidden_states = inputs_embeds
405
else:
406
- hidden_states = self.get_input_embeddings(input_ids)
406
+ hidden_states = self.embed_input_ids(input_ids)
407
residual = None
408
else:
409
assert intermediate_tensors is not None
@@ -566,8 +566,8 @@ class Qwen2MoeForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
566
self.model.make_empty_intermediate_tensors
567
)
568
569
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
570
- return self.model.get_input_embeddings(input_ids)
569
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
570
+ return self.model.embed_input_ids(input_ids)
571
572
def forward(
573
self,
vllm/model_executor/models/qwen2_rm.py
+2
-2
@@ -73,8 +73,8 @@ class Qwen2RewardBaseModel(nn.Module, SupportsLoRA, SupportsPP):
73
self.model.make_empty_intermediate_tensors
74
)
75
76
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
77
- return self.model.get_input_embeddings(input_ids)
76
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
77
+ return self.model.embed_input_ids(input_ids)
78
79
def forward(
80
self,
vllm/model_executor/models/qwen2_vl.py
+1
-1
@@ -1507,7 +1507,7 @@ class Qwen2VLForConditionalGeneration(
1507
def get_language_model(self) -> torch.nn.Module:
1508
return self.language_model
1509
1510
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1510
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1511
modalities = self._parse_and_validate_multimodal_inputs(**kwargs)
1512
if not modalities:
1513
return []
vllm/model_executor/models/qwen3.py
+2
-2
@@ -306,8 +306,8 @@ class Qwen3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsEagle3):
306
num_layers = len(self.model.layers)
307
return (2, num_layers // 2, num_layers - 3)
308
309
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
310
- return self.model.get_input_embeddings(input_ids)
309
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
310
+ return self.model.embed_input_ids(input_ids)
311
312
def forward(
313
self,
vllm/model_executor/models/qwen3_moe.py
+4
-4
@@ -427,7 +427,7 @@ class Qwen3MoeModel(nn.Module):
427
# Track layers for auxiliary hidden state outputs (EAGLE3)
428
self.aux_hidden_state_layers: tuple[int, ...] = ()
429
430
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
430
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
431
return self.embed_tokens(input_ids)
432
433
def forward(
@@ -441,7 +441,7 @@ class Qwen3MoeModel(nn.Module):
441
if inputs_embeds is not None:
442
hidden_states = inputs_embeds
443
else:
444
- hidden_states = self.get_input_embeddings(input_ids)
444
+ hidden_states = self.embed_input_ids(input_ids)
445
residual = None
446
else:
447
assert intermediate_tensors is not None
@@ -714,8 +714,8 @@ class Qwen3MoeForCausalLM(
714
num_layers = len(self.model.layers)
715
return (2, num_layers // 2, num_layers - 3)
716
717
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
718
- return self.model.get_input_embeddings(input_ids)
717
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
718
+ return self.model.embed_input_ids(input_ids)
719
720
def forward(
721
self,
vllm/model_executor/models/qwen3_next.py
+4
-4
@@ -998,7 +998,7 @@ class Qwen3NextModel(nn.Module):
998
else:
999
self.norm = PPMissingLayer()
1000
1001
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
1001
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
1002
return self.embed_tokens(input_ids)
1003
1004
def forward(
@@ -1012,7 +1012,7 @@ class Qwen3NextModel(nn.Module):
1012
if inputs_embeds is not None:
1013
hidden_states = inputs_embeds
1014
else:
1015
- hidden_states = self.get_input_embeddings(input_ids)
1015
+ hidden_states = self.embed_input_ids(input_ids)
1016
residual = None
1017
else:
1018
assert intermediate_tensors is not None
@@ -1217,8 +1217,8 @@ class Qwen3NextForCausalLM(
1217
# Set MoE hyperparameters
1218
self.set_moe_parameters()
1219
1220
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
1221
- return self.model.get_input_embeddings(input_ids)
1220
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
1221
+ return self.model.embed_input_ids(input_ids)
1222
1223
def forward(
1224
self,
vllm/model_executor/models/qwen3_next_mtp.py
+4
-4
@@ -93,7 +93,7 @@ class Qwen3NextMultiTokenPredictor(nn.Module):
93
config.hidden_size, eps=config.rms_norm_eps
94
)
95
96
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
96
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
97
return self.embed_tokens(input_ids)
98
99
def forward(
@@ -107,7 +107,7 @@ class Qwen3NextMultiTokenPredictor(nn.Module):
107
) -> torch.Tensor:
108
if get_pp_group().is_first_rank:
109
if inputs_embeds is None:
110
- inputs_embeds = self.get_input_embeddings(input_ids)
110
+ inputs_embeds = self.embed_input_ids(input_ids)
111
assert hidden_states.shape[-1] == inputs_embeds.shape[-1]
112
inputs_embeds = self.pre_fc_norm_embedding(inputs_embeds)
113
hidden_states = self.pre_fc_norm_hidden(hidden_states)
@@ -257,8 +257,8 @@ class Qwen3NextMTP(nn.Module, SupportsPP, QwenNextMixtureOfExperts):
257
)
258
self.set_moe_parameters()
259
260
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
261
- return self.model.get_input_embeddings(input_ids)
260
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
261
+ return self.model.embed_input_ids(input_ids)
262
263
def forward(
264
self,
vllm/model_executor/models/qwen3_omni_moe_thinker.py
+5
-7
@@ -613,7 +613,7 @@ class Qwen3MoeLLMModel(Qwen3MoeModel):
613
if inputs_embeds is not None:
614
hidden_states = inputs_embeds
615
else:
616
- hidden_states = self.get_input_embeddings(input_ids)
616
+ hidden_states = self.embed_input_ids(input_ids)
617
residual = None
618
else:
619
assert intermediate_tensors is not None
@@ -1252,9 +1252,7 @@ class Qwen3OmniMoeThinkerForConditionalGeneration(
1252
def get_language_model(self) -> torch.nn.Module:
1253
return self.language_model
1254
1255
- def get_multimodal_embeddings(
1256
- self, **kwargs: object
1257
- ) -> MultiModalEmbeddings | None:
1255
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1256
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1257
if not mm_input_by_modality:
1258
return []
@@ -1278,7 +1276,7 @@ class Qwen3OmniMoeThinkerForConditionalGeneration(
1276
multimodal_embeddings += tuple(audio_embeddings)
1277
return multimodal_embeddings
1278
1281
- def get_input_embeddings(
1279
+ def embed_input_ids(
1280
self,
1281
input_ids: torch.Tensor,
1282
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1286,9 +1284,9 @@ class Qwen3OmniMoeThinkerForConditionalGeneration(
1284
is_multimodal: torch.Tensor | None = None,
1285
handle_oov_mm_token: bool = False,
1286
) -> torch.Tensor:
1289
- inputs_embeds = self._get_text_embeddings(
1287
+ inputs_embeds = self._embed_text_input_ids(
1288
input_ids,
1291
- self.language_model.get_input_embeddings,
1289
+ self.language_model.embed_input_ids,
1290
is_multimodal=is_multimodal,
1291
handle_oov_mm_token=handle_oov_mm_token,
1292
)
vllm/model_executor/models/qwen3_vl.py
+6
-8
@@ -1100,7 +1100,7 @@ class Qwen3LLMModel(Qwen3Model):
1100
if inputs_embeds is not None:
1101
hidden_states = inputs_embeds
1102
else:
1103
- hidden_states = self.get_input_embeddings(input_ids)
1103
+ hidden_states = self.embed_input_ids(input_ids)
1104
residual = None
1105
else:
1106
assert intermediate_tensors is not None
@@ -1493,9 +1493,7 @@ class Qwen3VLForConditionalGeneration(
1493
def get_language_model(self) -> torch.nn.Module:
1494
return self.language_model
1495
1496
- def get_multimodal_embeddings(
1497
- self, **kwargs: object
1498
- ) -> MultiModalEmbeddings | None:
1496
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings | None:
1497
mm_input_by_modality = self._parse_and_validate_multimodal_inputs(**kwargs)
1498
if not mm_input_by_modality:
1499
return None
@@ -1557,7 +1555,7 @@ class Qwen3VLForConditionalGeneration(
1555
1556
return deepstack_input_embeds, multimodal_embeddings
1557
1560
- def get_input_embeddings(
1558
+ def embed_input_ids(
1559
self,
1560
input_ids: torch.Tensor,
1561
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1565,9 +1563,9 @@ class Qwen3VLForConditionalGeneration(
1563
is_multimodal: torch.Tensor | None = None,
1564
handle_oov_mm_token: bool = False,
1565
) -> torch.Tensor:
1568
- inputs_embeds = self._get_text_embeddings(
1566
+ inputs_embeds = self._embed_text_input_ids(
1567
input_ids,
1570
- self.language_model.get_input_embeddings,
1568
+ self.language_model.embed_input_ids,
1569
is_multimodal=is_multimodal,
1570
handle_oov_mm_token=handle_oov_mm_token,
1571
)
@@ -1577,7 +1575,7 @@ class Qwen3VLForConditionalGeneration(
1575
1576
if is_multimodal is None:
1577
raise ValueError(
1580
- "`get_input_embeddings` now requires `is_multimodal` arg, "
1578
+ "`embed_input_ids` now requires `is_multimodal` arg, "
1579
"please update your model runner according to "
1580
"https://github.com/vllm-project/vllm/pull/16229."
1581
)
vllm/model_executor/models/qwen3_vl_moe.py
+1
-1
@@ -97,7 +97,7 @@ class Qwen3MoeLLMModel(Qwen3MoeModel):
97
if inputs_embeds is not None:
98
hidden_states = inputs_embeds
99
else:
100
- hidden_states = self.get_input_embeddings(input_ids)
100
+ hidden_states = self.embed_input_ids(input_ids)
101
residual = None
102
else:
103
assert intermediate_tensors is not None
vllm/model_executor/models/qwen_vl.py
+1
-1
@@ -777,7 +777,7 @@ class QwenVLForConditionalGeneration(
777
def get_language_model(self) -> torch.nn.Module:
778
return self.transformer
779
780
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
780
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
781
image_input = self._parse_and_validate_image_input(**kwargs)
782
if image_input is None:
783
return []
vllm/model_executor/models/roberta.py
+2
-2
@@ -220,8 +220,8 @@ class RobertaForSequenceClassification(nn.Module, SupportsCrossEncoding):
220
loader = AutoWeightsLoader(self)
221
return loader.load_weights(weights, mapper=self.jina_to_vllm_mapper)
222
223
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
224
- return self.roberta.get_input_embeddings(input_ids)
223
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
224
+ return self.roberta.embed_input_ids(input_ids)
225
226
def forward(
227
self,
vllm/model_executor/models/seed_oss.py
+4
-4
@@ -334,7 +334,7 @@ class SeedOssModel(nn.Module):
334
else:
335
self.norm = PPMissingLayer()
336
337
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
337
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
338
return self.embed_tokens(input_ids)
339
340
def forward(
@@ -348,7 +348,7 @@ class SeedOssModel(nn.Module):
348
if inputs_embeds is not None:
349
hidden_states = inputs_embeds
350
else:
351
- hidden_states = self.get_input_embeddings(input_ids)
351
+ hidden_states = self.embed_input_ids(input_ids)
352
residual = None
353
else:
354
assert intermediate_tensors is not None
@@ -467,8 +467,8 @@ class SeedOssForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
467
self.model.make_empty_intermediate_tensors
468
)
469
470
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
471
- return self.model.get_input_embeddings(input_ids)
470
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
471
+ return self.model.embed_input_ids(input_ids)
472
473
def forward(
474
self,
vllm/model_executor/models/siglip.py
+5
-5
@@ -595,7 +595,7 @@ class SiglipTextTransformer(nn.Module):
595
self.final_layer_norm = nn.LayerNorm(embed_dim, eps=config.layer_norm_eps)
596
self.head = nn.Linear(embed_dim, config.projection_size)
597
598
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
598
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
599
return self.embeddings.token_embedding(input_ids)
600
601
def forward(
@@ -1117,7 +1117,7 @@ class SiglipEmbeddingModel(nn.Module, SupportsMultiModal, SupportsQuant):
1117
def get_language_model(self) -> torch.nn.Module:
1118
return self.text_model
1119
1120
- def get_input_embeddings(
1120
+ def embed_input_ids(
1121
self,
1122
input_ids: torch.Tensor,
1123
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1130,16 +1130,16 @@ class SiglipEmbeddingModel(nn.Module, SupportsMultiModal, SupportsQuant):
1130
)
1131
1132
if multimodal_embeddings is None or is_multimodal is None:
1133
- return super().get_input_embeddings(input_ids)
1133
+ return super().embed_input_ids(input_ids)
1134
1135
- return super().get_input_embeddings(
1135
+ return super().embed_input_ids(
1136
input_ids,
1137
multimodal_embeddings=multimodal_embeddings,
1138
is_multimodal=is_multimodal,
1139
handle_oov_mm_token=handle_oov_mm_token,
1140
)
1141
1142
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
1142
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
1143
image_input = self._parse_and_validate_image_input(**kwargs)
1144
if image_input is None:
1145
return []
vllm/model_executor/models/skyworkr1v.py
+4
-4
@@ -872,14 +872,14 @@ class SkyworkR1VChatModel(nn.Module, SupportsMultiModal, SupportsPP):
872
def get_language_model(self) -> torch.nn.Module:
873
return self.language_model
874
875
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
875
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
876
image_input = self._parse_and_validate_image_input(**kwargs)
877
if image_input is None:
878
return []
879
880
return self._process_image_input(image_input)
881
882
- def get_input_embeddings(
882
+ def embed_input_ids(
883
self,
884
input_ids: torch.Tensor,
885
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -892,9 +892,9 @@ class SkyworkR1VChatModel(nn.Module, SupportsMultiModal, SupportsPP):
892
893
# This is to satisfy the type checker for each overload
894
if multimodal_embeddings is None or is_multimodal is None:
895
- return super().get_input_embeddings(input_ids)
895
+ return super().embed_input_ids(input_ids)
896
897
- return super().get_input_embeddings(
897
+ return super().embed_input_ids(
898
input_ids,
899
multimodal_embeddings=multimodal_embeddings,
900
is_multimodal=is_multimodal,
vllm/model_executor/models/solar.py
+4
-4
@@ -310,7 +310,7 @@ class SolarModel(nn.Module):
310
["hidden_states", "residual"], config.hidden_size
311
)
312
313
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
313
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
314
return self.embed_tokens(input_ids)
315
316
def forward(
@@ -324,7 +324,7 @@ class SolarModel(nn.Module):
324
if inputs_embeds is not None:
325
hidden_states = inputs_embeds
326
else:
327
- hidden_states = self.get_input_embeddings(input_ids)
327
+ hidden_states = self.embed_input_ids(input_ids)
328
residual = None
329
else:
330
assert intermediate_tensors is not None
@@ -478,8 +478,8 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
478
self.model.make_empty_intermediate_tensors
479
)
480
481
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
482
- return self.model.get_input_embeddings(input_ids)
481
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
482
+ return self.model.embed_input_ids(input_ids)
483
484
def forward(
485
self,
vllm/model_executor/models/stablelm.py
+4
-4
@@ -246,7 +246,7 @@ class StableLMEpochModel(nn.Module):
246
["hidden_states"], config.hidden_size
247
)
248
249
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
249
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
250
return self.embed_tokens(input_ids)
251
252
def forward(
@@ -260,7 +260,7 @@ class StableLMEpochModel(nn.Module):
260
if inputs_embeds is not None:
261
hidden_states = inputs_embeds
262
else:
263
- hidden_states = self.get_input_embeddings(input_ids)
263
+ hidden_states = self.embed_input_ids(input_ids)
264
else:
265
assert intermediate_tensors is not None
266
hidden_states = intermediate_tensors["hidden_states"]
@@ -332,8 +332,8 @@ class StablelmForCausalLM(nn.Module, SupportsPP):
332
self.model.make_empty_intermediate_tensors
333
)
334
335
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
336
- return self.model.get_input_embeddings(input_ids)
335
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
336
+ return self.model.embed_input_ids(input_ids)
337
338
def forward(
339
self,
vllm/model_executor/models/starcoder2.py
+4
-4
@@ -249,7 +249,7 @@ class Starcoder2Model(nn.Module):
249
["hidden_states"], config.hidden_size
250
)
251
252
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
252
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
253
return self.embed_tokens(input_ids)
254
255
def forward(
@@ -263,7 +263,7 @@ class Starcoder2Model(nn.Module):
263
if inputs_embeds is not None:
264
hidden_states = inputs_embeds
265
else:
266
- hidden_states = self.get_input_embeddings(input_ids)
266
+ hidden_states = self.embed_input_ids(input_ids)
267
else:
268
assert intermediate_tensors is not None
269
hidden_states = intermediate_tensors["hidden_states"]
@@ -333,8 +333,8 @@ class Starcoder2ForCausalLM(nn.Module, SupportsPP):
333
self.model.make_empty_intermediate_tensors
334
)
335
336
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
337
- return self.model.get_input_embeddings(input_ids)
336
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
337
+ return self.model.embed_input_ids(input_ids)
338
339
def forward(
340
self,
vllm/model_executor/models/step3_text.py
+4
-4
@@ -354,7 +354,7 @@ class Step3TextModel(nn.Module):
354
["hidden_states"], config.hidden_size
355
)
356
357
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
357
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
358
return self.embed_tokens(input_ids)
359
360
def forward(
@@ -368,7 +368,7 @@ class Step3TextModel(nn.Module):
368
if inputs_embeds is not None:
369
hidden_states = inputs_embeds
370
else:
371
- hidden_states = self.get_input_embeddings(input_ids)
371
+ hidden_states = self.embed_input_ids(input_ids)
372
residual = None
373
else:
374
assert intermediate_tensors is not None
@@ -419,8 +419,8 @@ class Step3TextForCausalLM(nn.Module, SupportsPP):
419
self.model.make_empty_intermediate_tensors
420
)
421
422
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
423
- return self.model.get_input_embeddings(input_ids)
422
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
423
+ return self.model.embed_input_ids(input_ids)
424
425
def forward(
426
self,
vllm/model_executor/models/step3_vl.py
+6
-6
@@ -1075,14 +1075,14 @@ class Step3VLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
1075
def get_language_model(self) -> torch.nn.Module:
1076
return self.language_model
1077
1078
- def get_multimodal_embeddings(self, **kwargs) -> MultiModalEmbeddings:
1078
+ def embed_multimodal(self, **kwargs) -> MultiModalEmbeddings:
1079
image_input = self._parse_and_validate_image_input(**kwargs)
1080
if image_input is None:
1081
return []
1082
vision_embeddings = self._process_image_input(image_input)
1083
return vision_embeddings
1084
1085
- def get_input_embeddings(
1085
+ def embed_input_ids(
1086
self,
1087
input_ids: torch.Tensor,
1088
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -1093,9 +1093,9 @@ class Step3VLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
1093
) -> torch.Tensor:
1094
# This is to satisfy the type checker for each overload
1095
if multimodal_embeddings is None or is_multimodal is None:
1096
- return super().get_input_embeddings(input_ids)
1096
+ return super().embed_input_ids(input_ids)
1097
1098
- return super().get_input_embeddings(
1098
+ return super().embed_input_ids(
1099
input_ids,
1100
multimodal_embeddings=multimodal_embeddings,
1101
is_multimodal=is_multimodal,
@@ -1113,8 +1113,8 @@ class Step3VLForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
1113
if intermediate_tensors is not None:
1114
inputs_embeds = None
1115
elif inputs_embeds is None:
1116
- vision_embeddings = self.get_multimodal_embeddings(**kwargs)
1117
- inputs_embeds = self.get_input_embeddings(
1116
+ vision_embeddings = self.embed_multimodal(**kwargs)
1117
+ inputs_embeds = self.embed_input_ids(
1118
input_ids,
1119
vision_embeddings,
1120
is_multimodal=input_ids == self.config.image_token_id,
vllm/model_executor/models/tarsier.py
+3
-3
@@ -576,7 +576,7 @@ class TarsierForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
576
def get_language_model(self) -> torch.nn.Module:
577
return self.language_model
578
579
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
579
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
580
image_input = self._parse_and_validate_image_input(**kwargs)
581
if image_input is None:
582
return []
@@ -593,8 +593,8 @@ class TarsierForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP)
593
if intermediate_tensors is not None:
594
inputs_embeds = None
595
elif inputs_embeds is None:
596
- vision_embeddings = self.get_multimodal_embeddings(**kwargs)
597
- inputs_embeds = self.get_input_embeddings(
596
+ vision_embeddings = self.embed_multimodal(**kwargs)
597
+ inputs_embeds = self.embed_input_ids(
598
input_ids,
599
vision_embeddings,
600
is_multimodal=input_ids == self.config.image_token_index,
vllm/model_executor/models/teleflm.py
+1
-1
@@ -57,7 +57,7 @@ class TeleFLMModel(LlamaModel):
57
if self.use_mup:
58
self.input_mult = self.config.input_mult
59
60
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
60
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
61
embedding = self.embed_tokens(input_ids)
62
if self.use_mup:
63
embedding = embedding * self.input_mult
vllm/model_executor/models/terratorch.py
+1
-1
@@ -251,7 +251,7 @@ class Terratorch(nn.Module, IsAttentionFree, SupportsMultiModal):
251
252
self.pooler = DispatchPooler({"plugin": DummyPooler()})
253
254
- def get_input_embeddings(
254
+ def embed_input_ids(
255
self,
256
input_ids: torch.Tensor,
257
multimodal_embeddings: MultiModalEmbeddings | None = None,
vllm/model_executor/models/transformers/base.py
+2
-2
@@ -385,7 +385,7 @@ class Base(nn.Module, VllmModel, SupportsQuant, SupportsLoRA, SupportsPP):
385
386
_init_parameters(module, dtype)
387
388
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
388
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
389
inputs_embeds = self.model.get_input_embeddings()(input_ids)
390
if self.embed_scale is not None:
391
inputs_embeds *= self.embed_scale
@@ -416,7 +416,7 @@ class Base(nn.Module, VllmModel, SupportsQuant, SupportsLoRA, SupportsPP):
416
and input_ids is not None
417
and inputs_embeds is None
418
):
419
- inputs_embeds = self.get_input_embeddings(input_ids)
419
+ inputs_embeds = self.embed_input_ids(input_ids)
420
input_ids = None
421
422
if self.model_config.uses_mrope:
vllm/model_executor/models/transformers/multimodal.py
+1
-1
@@ -330,7 +330,7 @@ class MultiModalMixin(SupportsMultiModal, SupportsMRoPE):
330
331
return LanguageModel(self)
332
333
- def get_multimodal_embeddings(self, **kwargs):
333
+ def embed_multimodal(self, **kwargs):
334
pixel_values: torch.Tensor | None = kwargs.pop("pixel_values", None)
335
image_embeds: torch.Tensor | None = kwargs.pop("image_embeds", None)
336
# Model might use `image_patches` instead of `pixel_values`
vllm/model_executor/models/ultravox.py
+4
-4
@@ -579,14 +579,14 @@ class UltravoxModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA):
579
def get_language_model(self) -> torch.nn.Module:
580
return self.language_model
581
582
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
582
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
583
audio_input = self._parse_and_validate_audio_input(**kwargs)
584
if audio_input is None:
585
return []
586
audio_embeddings = self._process_audio_input(audio_input)
587
return audio_embeddings
588
589
- def get_input_embeddings(
589
+ def embed_input_ids(
590
self,
591
input_ids: torch.Tensor,
592
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -597,9 +597,9 @@ class UltravoxModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA):
597
) -> torch.Tensor:
598
# This is to satisfy the type checker for each overload
599
if multimodal_embeddings is None or is_multimodal is None:
600
- return super().get_input_embeddings(input_ids)
600
+ return super().embed_input_ids(input_ids)
601
602
- return super().get_input_embeddings(
602
+ return super().embed_input_ids(
603
input_ids,
604
multimodal_embeddings=multimodal_embeddings,
605
is_multimodal=is_multimodal,
vllm/model_executor/models/utils.py
+1
-1
@@ -474,7 +474,7 @@ def _merge_multimodal_embeddings(
474
475
@deprecated(
476
"`merge_multimodal_embeddings` has been replaced with "
477
- "`SupportsMultiModal.get_input_embeddings` and will be "
477
+ "`SupportsMultiModal.embed_input_ids` and will be "
478
"removed in v0.12."
479
)
480
def merge_multimodal_embeddings(
vllm/model_executor/models/voxtral.py
+1
-1
@@ -399,7 +399,7 @@ class VoxtralForConditionalGeneration(
399
400
return hidden_states
401
402
- def get_multimodal_embeddings(
402
+ def embed_multimodal(
403
self, **kwargs
404
) -> list[torch.Tensor] | torch.Tensor | tuple[torch.Tensor, ...] | None:
405
audio_inputs = self._parse_and_validate_audio_arrays(**kwargs)
vllm/model_executor/models/whisper.py
+5
-5
@@ -570,7 +570,7 @@ class WhisperDecoder(nn.Module):
570
positions: torch.Tensor,
571
encoder_hidden_states: torch.Tensor | None,
572
):
573
- inputs_embeds = self.get_input_embeddings(input_ids)
573
+ inputs_embeds = self.embed_input_ids(input_ids)
574
positions = self.embed_positions(positions)
575
hidden_states = inputs_embeds + positions
576
@@ -583,7 +583,7 @@ class WhisperDecoder(nn.Module):
583
hidden_states = self.layer_norm(hidden_states)
584
return hidden_states
585
586
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
586
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
587
return self.embed_tokens(input_ids)
588
589
@@ -907,12 +907,12 @@ class WhisperForConditionalGeneration(
907
def get_language_model(self) -> torch.nn.Module:
908
return self.model.decoder
909
910
- def get_multimodal_embeddings(self, **kwargs: object) -> MultiModalEmbeddings:
910
+ def embed_multimodal(self, **kwargs: object) -> MultiModalEmbeddings:
911
# Required as part of SupportsMultiModal interface.
912
audio_input = self._parse_and_validate_audio_input(**kwargs)
913
return [self.model.get_encoder_outputs(audio_input["input_features"])]
914
915
- def get_input_embeddings(
915
+ def embed_input_ids(
916
self,
917
input_ids: torch.Tensor,
918
multimodal_embeddings: MultiModalEmbeddings | None = None,
@@ -922,7 +922,7 @@ class WhisperForConditionalGeneration(
922
) -> torch.Tensor:
923
# This method just returns the decoder sequence embeddings since
924
# Whisper does not have encoder text tokens.
925
- return self.model.decoder.get_input_embeddings(input_ids)
925
+ return self.model.decoder.embed_input_ids(input_ids)
926
927
def _parse_and_validate_audio_input(self, **kwargs: object) -> WhisperAudioInputs:
928
input_features = kwargs.pop("input_features", None)
vllm/model_executor/models/zamba2.py
+4
-4
@@ -756,7 +756,7 @@ class Zamba2Model(nn.Module):
756
# Final layer normalization
757
self.final_layernorm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps)
758
759
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
759
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
760
"""Convert input token IDs to embeddings.
761
762
Args:
@@ -786,7 +786,7 @@ class Zamba2Model(nn.Module):
786
"""
787
# Handle pipeline parallelism for first rank
788
if inputs_embeds is None:
789
- inputs_embeds = self.get_input_embeddings(input_ids)
789
+ inputs_embeds = self.embed_input_ids(input_ids)
790
hidden_states = inputs_embeds
791
792
# Process through layers
@@ -930,14 +930,14 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsMambaPrefixC
930
# Initialize logits processing and sampling
931
self.logits_processor = LogitsProcessor(config.vocab_size)
932
933
- def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
933
+ def embed_input_ids(self, input_ids: torch.Tensor) -> torch.Tensor:
934
"""Convert input token IDs to embeddings.
935
Args:
936
input_ids: Tensor of input token IDs
937
Returns:
938
Embedded representation of the input tokens
939
"""
940
- return self.model.get_input_embeddings(input_ids)
940
+ return self.model.embed_input_ids(input_ids)
941
942
def forward(
943
self,
vllm/multimodal/processing.py
+1
-1
@@ -208,7 +208,7 @@ class PromptUpdateDetails(Generic[_S]):
208
`None` (default) means to assign embeddings to all positions of `full`.
209
210
The embeddings are obtained by calling
211
- [`SupportsMultiModal.get_multimodal_embeddings`][vllm.model_executor.models.interfaces.SupportsMultiModal.get_multimodal_embeddings].
211
+ [`SupportsMultiModal.embed_multimodal`][vllm.model_executor.models.interfaces.SupportsMultiModal.embed_multimodal].
212
"""
213
214
@staticmethod
vllm/v1/spec_decode/eagle.py
+3
-7
@@ -279,7 +279,7 @@ class EagleProposer:
279
if self.supports_mm_inputs:
280
mm_embeds, is_mm_embed = mm_embed_inputs or (None, None)
281
282
- self.inputs_embeds[:num_tokens] = self.model.get_input_embeddings(
282
+ self.inputs_embeds[:num_tokens] = self.model.embed_input_ids(
283
self.input_ids[:num_tokens],
284
multimodal_embeddings=mm_embeds,
285
is_multimodal=is_mm_embed,
@@ -447,9 +447,7 @@ class EagleProposer:
447
self._set_positions(batch_size, clamped_positions)
448
self.hidden_states[:batch_size] = hidden_states
449
if self.supports_mm_inputs:
450
- self.inputs_embeds[:batch_size] = self.model.get_input_embeddings(
451
- input_ids
452
- )
450
+ self.inputs_embeds[:batch_size] = self.model.embed_input_ids(input_ids)
451
452
input_ids = None
453
inputs_embeds = self.inputs_embeds[:input_batch_size]
@@ -972,9 +970,7 @@ class EagleProposer:
970
# text-only draft models
971
try:
972
dummy_input_ids = torch.tensor([[1]], device=self.input_ids.device)
975
- self.model.get_input_embeddings(
976
- dummy_input_ids, multimodal_embeddings=None
977
- )
973
+ self.model.embed_input_ids(dummy_input_ids, multimodal_embeddings=None)
974
except (NotImplementedError, AttributeError, TypeError):
975
logger.warning(
976
"Draft model does not support multimodal inputs, "
vllm/v1/worker/gpu_model_runner.py
+5
-5
@@ -1853,7 +1853,7 @@ class GPUModelRunner(
1853
)
1854
)
1855
1856
- micro_batch_outputs = model.get_multimodal_embeddings(
1856
+ micro_batch_outputs = model.embed_multimodal(
1857
**micro_batch_mm_inputs
1858
)
1859
@@ -1866,7 +1866,7 @@ class GPUModelRunner(
1866
# 2. A list or tuple (length: num_items) of tensors,
1867
# each of shape (feature_size, hidden_size) in case the feature
1868
# size is dynamic depending on the input multimodal items.
1869
- curr_group_outputs = model.get_multimodal_embeddings(**mm_kwargs_group)
1869
+ curr_group_outputs = model.embed_multimodal(**mm_kwargs_group)
1870
1871
sanity_check_mm_encoder_outputs(
1872
curr_group_outputs,
@@ -2225,7 +2225,7 @@ class GPUModelRunner(
2225
# NOTE(woosuk): To unify token ids and soft tokens (vision
2226
# embeddings), we always use embeddings (rather than token ids)
2227
# as input to the multimodal model, even when the input is text.
2228
- inputs_embeds_scheduled = self.model.get_input_embeddings(
2228
+ inputs_embeds_scheduled = self.model.embed_input_ids(
2229
self.input_ids.gpu[:num_scheduled_tokens],
2230
multimodal_embeddings=mm_embeds,
2231
is_multimodal=is_mm_embed,
@@ -2261,7 +2261,7 @@ class GPUModelRunner(
2261
# Some tokens ids may need to become embeds
2262
if token_ids_idx.numel() > 0:
2263
token_ids = self.input_ids.gpu[token_ids_idx]
2264
- tokens_to_embeds = self.model.get_input_embeddings(input_ids=token_ids)
2264
+ tokens_to_embeds = self.model.embed_input_ids(input_ids=token_ids)
2265
self.inputs_embeds.gpu[token_ids_idx] = tokens_to_embeds
2266
2267
inputs_embeds = self.inputs_embeds.gpu[:num_input_tokens]
@@ -3889,7 +3889,7 @@ class GPUModelRunner(
3889
)
3890
3891
# Run multimodal encoder.
3892
- dummy_encoder_outputs = self.model.get_multimodal_embeddings(
3892
+ dummy_encoder_outputs = self.model.embed_multimodal(
3893
**batched_dummy_mm_inputs
3894
)
3895
vllm/v1/worker/tpu_model_runner.py
+10
-12
@@ -962,7 +962,7 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
962
# (feature_size, hidden_size) in case the feature size is dynamic
963
# depending on the input multimodal items.
964
torch_xla.sync(wait=False)
965
- curr_group_outputs = model.get_multimodal_embeddings(**mm_kwargs_group)
965
+ curr_group_outputs = model.embed_multimodal(**mm_kwargs_group)
966
torch_xla.sync(wait=False)
967
968
sanity_check_mm_encoder_outputs(
@@ -1065,7 +1065,7 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
1065
# NOTE(woosuk): To unify token ids and soft tokens (vision
1066
# embeddings), we always use embeddings (rather than token ids)
1067
# as input to the multimodal model, even when the input is text.
1068
- inputs_embeds = self.model.get_input_embeddings(
1068
+ inputs_embeds = self.model.embed_input_ids(
1069
input_ids,
1070
multimodal_embeddings=mm_embeds,
1071
is_multimodal=is_mm_embed,
@@ -1484,14 +1484,12 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
1484
)
1485
# Run multimodal encoder.
1486
torch_xla.sync(wait=False)
1487
- mm_embeds = self.model.get_multimodal_embeddings(
1488
- **batched_dummy_mm_inputs
1489
- )
1487
+ mm_embeds = self.model.embed_multimodal(**batched_dummy_mm_inputs)
1488
torch_xla.sync(wait=False)
1489
num_patches = mm_embeds[0].shape[0]
1490
items_size = num_patches * num_items
1491
1494
- # NOTE (NickLucche) pre-compile `get_input_embeddings` when mm
1492
+ # NOTE (NickLucche) pre-compile `embed_input_ids` when mm
1493
# embeddings are present. We assume `--disable-mm-chunked`,
1494
# hence only whole items can be scheduled. This implies we just
1495
# need to compile when `num_items` fit the (padded) `input_ids`
@@ -1519,7 +1517,7 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
1517
assert a is None
1518
torch_xla.sync(wait=False)
1519
1522
- # Pre-compile `get_input_embeddings` when mm_embeddings are not
1520
+ # Pre-compile `embed_input_ids` when mm_embeddings are not
1521
# present. Chunk is only made of text, no mm_placeholders.
1522
for num_tokens in self.num_tokens_paddings:
1523
placeholders_ids = torch.zeros(
@@ -1738,7 +1736,7 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
1736
# impact of recompilation until it's fixed.
1737
start = time.perf_counter()
1738
torch_xla.sync(wait=False)
1741
- dummy_encoder_outputs = self.model.get_multimodal_embeddings(
1739
+ dummy_encoder_outputs = self.model.embed_multimodal(
1740
**batched_dummy_mm_inputs
1741
)
1742
torch_xla.sync(wait=False)
@@ -1974,11 +1972,11 @@ class TPUModelRunner(LoRAModelRunnerMixin, KVConnectorModelRunnerMixin):
1972
)
1973
return logits_cloned
1974
1977
- def get_multimodal_embeddings(self, *args, **kwargs):
1978
- return self.model.get_multimodal_embeddings(*args, **kwargs)
1975
+ def embed_multimodal(self, *args, **kwargs):
1976
+ return self.model.embed_multimodal(*args, **kwargs)
1977
1980
- def get_input_embeddings(self, *args, **kwargs):
1981
- return self.model.get_input_embeddings(*args, **kwargs)
1978
+ def embed_input_ids(self, *args, **kwargs):
1979
+ return self.model.embed_input_ids(*args, **kwargs)
1980
1981
def prepare_structured_decoding_input(
1982
self, logits: torch.Tensor, grammar_output: "GrammarOutput"
vllm/v1/worker/utils.py
+4
-4
@@ -177,27 +177,27 @@ def sanity_check_mm_encoder_outputs(
177
) -> None:
178
"""
179
Perform sanity checks for the result of
180
- [`vllm.model_executor.models.SupportsMultiModal.get_multimodal_embeddings`][].
180
+ [`vllm.model_executor.models.SupportsMultiModal.embed_multimodal`][].
181
"""
182
assert isinstance(mm_embeddings, (list, tuple, torch.Tensor)), (
183
"Expected multimodal embeddings to be a list/tuple of 2D tensors, "
184
f"or a single 3D tensor, but got {type(mm_embeddings)} "
185
"instead. This is most likely due to incorrect implementation "
186
- "of the model's `get_multimodal_embeddings` method."
186
+ "of the model's `embed_multimodal` method."
187
)
188
189
assert len(mm_embeddings) == expected_num_items, (
190
"Expected number of multimodal embeddings to match number of "
191
f"input items: {expected_num_items}, but got {len(mm_embeddings)=} "
192
"instead. This is most likely due to incorrect implementation "
193
- "of the model's `get_multimodal_embeddings` method."
193
+ "of the model's `embed_multimodal` method."
194
)
195
196
assert all(e.ndim == 2 for e in mm_embeddings), (
197
"Expected multimodal embeddings to be a sequence of 2D tensors, "
198
f"but got tensors with shapes {[e.shape for e in mm_embeddings]} "
199
"instead. This is most likely due to incorrect implementation "
200
- "of the model's `get_multimodal_embeddings` method."
200
+ "of the model's `embed_multimodal` method."
201
)
202
203