@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 5340b0e221
Fork 0

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

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

Synced Nov 15, 18:30 UTC

[Bugfix] Fix interface for Olmo2 on V1 (#14976)

Signed-off-by: Roger Wang <ywang@roblox.com>

Roger Wang committed Mar 17, 2025 at 11:26 UTC 5340b0e2214ec71117e7f0a953cf3033e3194d2a
1 file changed +9 -5
vllm/model_executor/models/olmo2.py
+9 -5
@@ -42,7 +42,7 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
42 RowParallelLinear)
43 from vllm.model_executor.layers.logits_processor import LogitsProcessor
44 from vllm.model_executor.layers.rotary_embedding import get_rope
45 -from vllm.model_executor.layers.sampler import Sampler, SamplerOutput
45 +from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
46 from vllm.model_executor.layers.vocab_parallel_embedding import (
47 ParallelLMHead, VocabParallelEmbedding)
48 from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -283,17 +283,19 @@ class Olmo2Model(nn.Module):
283 input_ids: torch.Tensor,
284 positions: torch.Tensor,
285 intermediate_tensors: Optional[IntermediateTensors],
286 + inputs_embeds: Optional[torch.Tensor] = None,
287 ) -> Union[torch.Tensor, IntermediateTensors]:
288 """
289 :param input_ids: A tensor of shape `(batch_size, seq_len)`.
290 """
291 if get_pp_group().is_first_rank:
292 + if inputs_embeds is not None:
293 + hidden_states = inputs_embeds
294 # Get embeddings of input.
295 # shape: (batch_size, seq_len, d_model)
293 - inputs_embeds = self.embed_tokens(input_ids)
296 + else:
297 + hidden_states = self.embed_tokens(input_ids)
298
295 - # embed positions
296 - hidden_states = inputs_embeds
299 else:
300 assert intermediate_tensors is not None
301 hidden_states = intermediate_tensors["hidden_states"]
@@ -337,7 +339,7 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP):
339 prefix=maybe_prefix(prefix, "lm_head"),
340 )
341 self.logits_processor = LogitsProcessor(config.vocab_size)
340 - self.sampler = Sampler()
342 + self.sampler = get_sampler()
343 self.make_empty_intermediate_tensors = (
344 self.model.make_empty_intermediate_tensors)
345
@@ -346,11 +348,13 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP):
348 input_ids: torch.Tensor,
349 positions: torch.Tensor,
350 intermediate_tensors: Optional[IntermediateTensors] = None,
351 + inputs_embeds: Optional[torch.Tensor] = None,
352 ) -> Union[torch.Tensor, IntermediateTensors]:
353 hidden_states = self.model(
354 input_ids=input_ids,
355 positions=positions,
356 intermediate_tensors=intermediate_tensors,
357 + inputs_embeds=inputs_embeds,
358 )
359 return hidden_states
360