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, 13:30 UTC
[Chore] Remove Sampler from Model Code (#17084)
Signed-off-by: Woosuk Kwon <woosuk.kwon@berkeley.edu>
Woosuk Kwon committed
Apr 24, 2025 at 02:49 UTC
b411418ff090a168c85eab243b14b7350bf73db4
103 files changed
+48
-1099
tests/spec_decode/test_scorer.py
+2
-3
@@ -62,9 +62,8 @@ def test_scorer(model_name: str, batch_size: int, max_propose_len: int,
62
scorer_worker = create_worker(Worker, model_name, block_size,
63
num_gpu_blocks, seed)
64
scorer_worker.model_runner.disable_logprobs = True # accessed by mqa_scorer
65
- scorer_worker.model_runner.model.sampler.include_gpu_probs_tensor = True
66
- scorer_worker.model_runner.model.sampler.\
67
- should_modify_greedy_probs_inplace = True
65
+ scorer_worker.model_runner.sampler.include_gpu_probs_tensor = True
66
+ scorer_worker.model_runner.sampler.should_modify_greedy_probs_inplace = True
67
68
vocab_size = scorer_worker.vocab_size
69
vllm/model_executor/models/arctic.py
-10
@@ -24,7 +24,6 @@ from vllm.model_executor.layers.quantization import QuantizationConfig
24
from vllm.model_executor.layers.quantization.deepspeedfp import (
25
DeepSpeedFPConfig, DeepSpeedFPParameter)
26
from vllm.model_executor.layers.rotary_embedding import get_rope
27
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
27
from vllm.model_executor.layers.vocab_parallel_embedding import (
28
ParallelLMHead, VocabParallelEmbedding)
29
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -435,7 +434,6 @@ class ArcticForCausalLM(nn.Module, SupportsPP, SupportsQuant):
434
self.unpadded_vocab_size = config.vocab_size
435
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
436
config.vocab_size)
438
- self.sampler = get_sampler()
437
self.make_empty_intermediate_tensors = (
438
self.model.make_empty_intermediate_tensors)
439
@@ -462,14 +460,6 @@ class ArcticForCausalLM(nn.Module, SupportsPP, SupportsQuant):
460
sampling_metadata)
461
return logits
462
465
- def sample(
466
- self,
467
- logits: Optional[torch.Tensor],
468
- sampling_metadata: SamplingMetadata,
469
- ) -> Optional[SamplerOutput]:
470
- next_tokens = self.sampler(logits, sampling_metadata)
471
- return next_tokens
472
-
463
def load_weights(self, weights: Iterable[Tuple[str,
464
torch.Tensor]]) -> Set[str]:
465
stacked_params_mapping = [
vllm/model_executor/models/aria.py
+1
-11
@@ -15,11 +15,10 @@ from vllm.model_executor.layers.fused_moe import FusedMoE
15
from vllm.model_executor.layers.linear import (ColumnParallelLinear,
16
RowParallelLinear)
17
from vllm.model_executor.layers.logits_processor import LogitsProcessor
18
-from vllm.model_executor.layers.sampler import (SamplerOutput,
19
- SamplingMetadata, get_sampler)
18
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
19
from vllm.model_executor.model_loader.weight_utils import (
20
default_weight_loader, maybe_remap_kv_scale_name)
21
+from vllm.model_executor.sampling_metadata import SamplingMetadata
22
from vllm.multimodal import MULTIMODAL_REGISTRY
23
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
24
MultiModalKwargs)
@@ -527,7 +526,6 @@ class AriaForConditionalGeneration(nn.Module, SupportsMultiModal):
526
logit_scale = getattr(config, "logit_scale", 1.0)
527
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
528
self.vocab_size, logit_scale)
530
- self.sampler = get_sampler()
529
530
def _validate_image_sizes(
531
self, images: List[torch.Tensor]) -> List[torch.Tensor]:
@@ -653,14 +651,6 @@ class AriaForConditionalGeneration(nn.Module, SupportsMultiModal):
651
sampling_metadata)
652
return logits
653
656
- def sample(
657
- self,
658
- logits: torch.Tensor,
659
- sampling_metadata: SamplingMetadata,
660
- ) -> Optional[SamplerOutput]:
661
- next_tokens = self.sampler(logits, sampling_metadata)
662
- return next_tokens
663
-
654
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
655
loader = AutoWeightsLoader(self)
656
loader.load_weights(weights, mapper=self.hf_to_vllm_mapper)
vllm/model_executor/models/aya_vision.py
-16
@@ -1,6 +1,5 @@
1
# SPDX-License-Identifier: Apache-2.0 Adapted from
2
# https://github.com/huggingface/transformers/tree/main/src/transformers/models/aya_vision
3
-from functools import cached_property
3
from typing import (Iterable, Literal, Mapping, Optional, Sequence, Set, Tuple,
4
TypedDict, Union, cast)
5
@@ -17,7 +16,6 @@ from transformers.models.got_ocr2.image_processing_got_ocr2 import (
16
17
from vllm.config import VllmConfig
18
from vllm.jsontree import json_map_leaves
20
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
19
from vllm.model_executor.sampling_metadata import SamplingMetadata
20
from vllm.multimodal import MULTIMODAL_REGISTRY
21
from vllm.multimodal.inputs import MultiModalDataDict, MultiModalKwargs
@@ -461,17 +459,3 @@ class AyaVisionForConditionalGeneration(nn.Module, SupportsMultiModal,
459
) -> Optional[torch.Tensor]:
460
return self.language_model.compute_logits(hidden_states,
461
sampling_metadata)
464
-
465
- @cached_property
466
- def sampler(self):
467
- if hasattr(self.language_model, "sampler"):
468
- return self.language_model.sampler
469
-
470
- return get_sampler()
471
-
472
- def sample(
473
- self,
474
- logits: torch.Tensor,
475
- sampling_metadata: SamplingMetadata,
476
- ) -> Optional[SamplerOutput]:
477
- return self.language_model.sample(logits, sampling_metadata)
vllm/model_executor/models/baichuan.py
-10
@@ -39,7 +39,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
39
from vllm.model_executor.layers.logits_processor import LogitsProcessor
40
from vllm.model_executor.layers.quantization import QuantizationConfig
41
from vllm.model_executor.layers.rotary_embedding import get_rope
42
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
42
from vllm.model_executor.layers.vocab_parallel_embedding import (
43
ParallelLMHead, VocabParallelEmbedding)
44
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -396,7 +395,6 @@ class BaiChuanBaseForCausalLM(nn.Module, SupportsLoRA, SupportsPP,
395
if self.config.tie_word_embeddings:
396
self.lm_head.weight = self.model.embed_tokens.weight
397
self.logits_processor = LogitsProcessor(config.vocab_size)
399
- self.sampler = get_sampler()
398
self.make_empty_intermediate_tensors = (
399
self.model.make_empty_intermediate_tensors)
400
@@ -423,14 +421,6 @@ class BaiChuanBaseForCausalLM(nn.Module, SupportsLoRA, SupportsPP,
421
sampling_metadata)
422
return logits
423
426
- def sample(
427
- self,
428
- logits: torch.Tensor,
429
- sampling_metadata: SamplingMetadata,
430
- ) -> Optional[SamplerOutput]:
431
- next_tokens = self.sampler(logits, sampling_metadata)
432
- return next_tokens
433
-
424
def load_weights(self, weights: Iterable[Tuple[str,
425
torch.Tensor]]) -> Set[str]:
426
loader = AutoWeightsLoader(self)
vllm/model_executor/models/bamba.py
-10
@@ -24,7 +24,6 @@ from vllm.model_executor.layers.mamba.mamba_mixer2 import (
24
MambaMixer2, extra_groups_for_head_shards)
25
from vllm.model_executor.layers.quantization import QuantizationConfig
26
from vllm.model_executor.layers.rotary_embedding import get_rope
27
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
27
from vllm.model_executor.layers.vocab_parallel_embedding import (
28
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
29
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -462,7 +461,6 @@ class BambaForCausalLM(nn.Module, HasInnerState, SupportsLoRA, SupportsPP,
461
462
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
463
config.vocab_size)
465
- self.sampler = get_sampler()
464
465
self.make_empty_intermediate_tensors = (
466
self.model.make_empty_intermediate_tensors)
@@ -538,14 +536,6 @@ class BambaForCausalLM(nn.Module, HasInnerState, SupportsLoRA, SupportsPP,
536
sampling_metadata)
537
return logits
538
541
- def sample(
542
- self,
543
- logits: Optional[torch.Tensor],
544
- sampling_metadata: SamplingMetadata,
545
- ) -> Optional[SamplerOutput]:
546
- next_tokens = self.sampler(logits, sampling_metadata)
547
- return next_tokens
548
-
539
def load_weights(self, weights: Iterable[Tuple[str,
540
torch.Tensor]]) -> Set[str]:
541
loader = AutoWeightsLoader(self)
vllm/model_executor/models/bart.py
-10
@@ -37,7 +37,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
37
from vllm.model_executor.layers.logits_processor import LogitsProcessor
38
from vllm.model_executor.layers.quantization.base_config import (
39
QuantizationConfig)
40
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
40
from vllm.model_executor.layers.vocab_parallel_embedding import (
41
ParallelLMHead, VocabParallelEmbedding)
42
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -791,7 +790,6 @@ class BartForConditionalGeneration(nn.Module, SupportsV0Only, SupportsQuant):
790
791
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
792
config.vocab_size)
794
- self.sampler = get_sampler()
793
794
def forward(
795
self,
@@ -828,14 +826,6 @@ class BartForConditionalGeneration(nn.Module, SupportsV0Only, SupportsQuant):
826
sampling_metadata)
827
return logits
828
831
- def sample(
832
- self,
833
- logits: Optional[torch.Tensor],
834
- sampling_metadata: SamplingMetadata,
835
- ) -> Optional[SamplerOutput]:
836
- next_tokens = self.sampler(logits, sampling_metadata)
837
- return next_tokens
838
-
829
stacked_params_mapping = {
830
"q_proj": {
831
"param_name": "qkv_proj",
vllm/model_executor/models/blip2.py
+1
-17
@@ -1,7 +1,6 @@
1
# SPDX-License-Identifier: Apache-2.0
2
3
from collections.abc import Iterable, Mapping, Sequence
4
-from functools import cached_property
4
from typing import Literal, Optional, Set, Tuple, TypedDict, Union
5
6
import torch
@@ -12,7 +11,6 @@ from transformers import (BatchFeature, Blip2Config, Blip2QFormerConfig,
11
from vllm.config import CacheConfig, VllmConfig
12
from vllm.model_executor.layers.activation import get_act_fn
13
from vllm.model_executor.layers.quantization import QuantizationConfig
15
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
14
from vllm.model_executor.sampling_metadata import SamplingMetadata
15
from vllm.multimodal import MULTIMODAL_REGISTRY
16
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -530,13 +528,6 @@ class Blip2ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
528
self.make_empty_intermediate_tensors = (
529
self.language_model.make_empty_intermediate_tensors)
530
533
- @cached_property
534
- def sampler(self):
535
- if hasattr(self.language_model, "sampler"):
536
- return self.language_model.sampler
537
-
538
- return get_sampler()
539
-
531
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
532
h = w = self.config.vision_config.image_size
533
expected_dims = (3, h, w)
@@ -649,7 +640,7 @@ class Blip2ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
640
intermediate_tensors: Optional[IntermediateTensors] = None,
641
inputs_embeds: Optional[torch.Tensor] = None,
642
**kwargs: object,
652
- ) -> Union[SamplerOutput, IntermediateTensors]:
643
+ ) -> IntermediateTensors:
644
"""Run forward pass for BLIP-2.
645
646
One key thing to understand is the `input_ids` already accounts for the
@@ -707,13 +698,6 @@ class Blip2ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
698
return self.language_model.compute_logits(hidden_states,
699
sampling_metadata)
700
710
- def sample(
711
- self,
712
- logits: torch.Tensor,
713
- sampling_metadata: SamplingMetadata,
714
- ) -> Optional[SamplerOutput]:
715
- return self.language_model.sample(logits, sampling_metadata)
716
-
701
def load_weights(self, weights: Iterable[Tuple[str,
702
torch.Tensor]]) -> Set[str]:
703
loader = AutoWeightsLoader(self)
vllm/model_executor/models/bloom.py
-10
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
RowParallelLinear)
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -297,7 +296,6 @@ class BloomForCausalLM(nn.Module, SupportsPP, SupportsV0Only, SupportsQuant):
296
self.config.hidden_size)
297
298
self.logits_processor = LogitsProcessor(config.vocab_size)
300
- self.sampler = get_sampler()
299
self.make_empty_intermediate_tensors = (
300
self.transformer.make_empty_intermediate_tensors)
301
@@ -324,14 +322,6 @@ class BloomForCausalLM(nn.Module, SupportsPP, SupportsV0Only, SupportsQuant):
322
sampling_metadata)
323
return logits
324
327
- def sample(
328
- self,
329
- logits: torch.Tensor,
330
- sampling_metadata: SamplingMetadata,
331
- ) -> Optional[SamplerOutput]:
332
- next_tokens = self.sampler(logits, sampling_metadata)
333
- return next_tokens
334
-
325
def load_weights(self, weights: Iterable[Tuple[str,
326
torch.Tensor]]) -> Set[str]:
327
params_dict = dict(self.named_parameters(remove_duplicate=False))
vllm/model_executor/models/chameleon.py
-10
@@ -22,7 +22,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
22
from vllm.model_executor.layers.logits_processor import LogitsProcessor
23
from vllm.model_executor.layers.quantization import QuantizationConfig
24
from vllm.model_executor.layers.rotary_embedding import get_rope
25
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
25
from vllm.model_executor.layers.vocab_parallel_embedding import (
26
ParallelLMHead, VocabParallelEmbedding)
27
from vllm.model_executor.model_loader.weight_utils import (
@@ -950,7 +949,6 @@ class ChameleonForConditionalGeneration(nn.Module, SupportsMultiModal,
949
logit_scale = getattr(config, "logit_scale", 1.0)
950
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
951
config.vocab_size, logit_scale)
953
- self.sampler = get_sampler()
952
self.make_empty_intermediate_tensors = (
953
self.model.make_empty_intermediate_tensors)
954
@@ -1054,14 +1052,6 @@ class ChameleonForConditionalGeneration(nn.Module, SupportsMultiModal,
1052
1053
return logits
1054
1057
- def sample(
1058
- self,
1059
- logits: torch.Tensor,
1060
- sampling_metadata: SamplingMetadata,
1061
- ) -> Optional[SamplerOutput]:
1062
- next_tokens = self.sampler(logits, sampling_metadata)
1063
- return next_tokens
1064
-
1055
def load_weights(self, weights: Iterable[Tuple[str,
1056
torch.Tensor]]) -> Set[str]:
1057
stacked_params_mapping = [
vllm/model_executor/models/chatglm.py
-10
@@ -21,7 +21,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
21
from vllm.model_executor.layers.logits_processor import LogitsProcessor
22
from vllm.model_executor.layers.quantization import QuantizationConfig
23
from vllm.model_executor.layers.rotary_embedding import get_rope
24
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
24
from vllm.model_executor.layers.vocab_parallel_embedding import (
25
ParallelLMHead, VocabParallelEmbedding)
26
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -429,7 +428,6 @@ class ChatGLMBaseModel(nn.Module):
428
self.transformer.embedding.weight)
429
self.lm_head = self.transformer.output_layer
430
self.logits_processor = LogitsProcessor(config.padded_vocab_size)
432
- self.sampler = get_sampler()
431
self.make_empty_intermediate_tensors = (
432
self.transformer.make_empty_intermediate_tensors)
433
@@ -442,14 +440,6 @@ class ChatGLMBaseModel(nn.Module):
440
sampling_metadata)
441
return logits
442
445
- def sample(
446
- self,
447
- logits: torch.Tensor,
448
- sampling_metadata: SamplingMetadata,
449
- ) -> Optional[SamplerOutput]:
450
- next_tokens = self.sampler(logits, sampling_metadata)
451
- return next_tokens
452
-
443
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
444
loader = AutoWeightsLoader(self)
445
return loader.load_weights(weights, mapper=self.hf_to_vllm_mapper)
vllm/model_executor/models/commandr.py
-10
@@ -38,7 +38,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
38
from vllm.model_executor.layers.logits_processor import LogitsProcessor
39
from vllm.model_executor.layers.quantization import QuantizationConfig
40
from vllm.model_executor.layers.rotary_embedding import get_rope
41
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
41
from vllm.model_executor.layers.vocab_parallel_embedding import (
42
VocabParallelEmbedding)
43
from vllm.model_executor.model_loader.weight_utils import (
@@ -372,7 +371,6 @@ class CohereForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant):
371
scale=config.logit_scale)
372
self.model = CohereModel(vllm_config=vllm_config,
373
prefix=maybe_prefix(prefix, "model"))
375
- self.sampler = get_sampler()
374
self.make_empty_intermediate_tensors = (
375
self.model.make_empty_intermediate_tensors)
376
@@ -406,14 +404,6 @@ class CohereForCausalLM(nn.Module, SupportsLoRA, SupportsPP, SupportsQuant):
404
405
return logits
406
409
- def sample(
410
- self,
411
- logits: torch.Tensor,
412
- sampling_metadata: SamplingMetadata,
413
- ) -> Optional[SamplerOutput]:
414
- next_tokens = self.sampler(logits, sampling_metadata)
415
- return next_tokens
416
-
407
def load_weights(self, weights: Iterable[Tuple[str,
408
torch.Tensor]]) -> Set[str]:
409
stacked_params_mapping = [
vllm/model_executor/models/dbrx.py
-10
@@ -16,7 +16,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
16
from vllm.model_executor.layers.logits_processor import LogitsProcessor
17
from vllm.model_executor.layers.quantization import QuantizationConfig
18
from vllm.model_executor.layers.rotary_embedding import get_rope
19
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
19
from vllm.model_executor.layers.vocab_parallel_embedding import (
20
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
21
from vllm.model_executor.model_loader.weight_utils import (
@@ -390,7 +389,6 @@ class DbrxForCausalLM(nn.Module, SupportsPP):
389
)
390
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
391
config.vocab_size)
393
- self.sampler = get_sampler()
392
self.make_empty_intermediate_tensors = (
393
self.transformer.make_empty_intermediate_tensors)
394
@@ -417,14 +415,6 @@ class DbrxForCausalLM(nn.Module, SupportsPP):
415
sampling_metadata)
416
return logits
417
420
- def sample(
421
- self,
422
- logits: Optional[torch.Tensor],
423
- sampling_metadata: SamplingMetadata,
424
- ) -> Optional[SamplerOutput]:
425
- next_tokens = self.sampler(logits, sampling_metadata)
426
- return next_tokens
427
-
418
def load_weights(self, weights: Iterable[Tuple[str,
419
torch.Tensor]]) -> Set[str]:
420
expert_params_mapping = [(
vllm/model_executor/models/deepseek.py
-10
@@ -43,7 +43,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
43
from vllm.model_executor.layers.logits_processor import LogitsProcessor
44
from vllm.model_executor.layers.quantization import QuantizationConfig
45
from vllm.model_executor.layers.rotary_embedding import get_rope
46
-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
@@ -453,7 +452,6 @@ class DeepseekForCausalLM(nn.Module, SupportsPP):
452
if self.config.tie_word_embeddings:
453
self.lm_head.weight = self.model.embed_tokens.weight
454
self.logits_processor = LogitsProcessor(config.vocab_size)
456
- self.sampler = get_sampler()
455
self.make_empty_intermediate_tensors = (
456
self.model.make_empty_intermediate_tensors)
457
@@ -480,14 +478,6 @@ class DeepseekForCausalLM(nn.Module, SupportsPP):
478
sampling_metadata)
479
return logits
480
483
- def sample(
484
- self,
485
- logits: Optional[torch.Tensor],
486
- sampling_metadata: SamplingMetadata,
487
- ) -> Optional[SamplerOutput]:
488
- next_tokens = self.sampler(logits, sampling_metadata)
489
- return next_tokens
490
-
481
def load_weights(self, weights: Iterable[Tuple[str,
482
torch.Tensor]]) -> Set[str]:
483
loader = AutoWeightsLoader(self)
vllm/model_executor/models/deepseek_mtp.py
-11
@@ -10,7 +10,6 @@ from vllm.model_executor.layers.fused_moe import FusedMoE
10
from vllm.model_executor.layers.layernorm import RMSNorm
11
from vllm.model_executor.layers.logits_processor import LogitsProcessor
12
from vllm.model_executor.layers.quantization import QuantizationConfig
13
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
13
from vllm.model_executor.layers.vocab_parallel_embedding import (
14
ParallelLMHead, VocabParallelEmbedding)
15
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -154,8 +153,6 @@ class DeepSeekMTP(nn.Module):
153
prefix=maybe_prefix(
154
prefix, "model"))
155
157
- self.sampler = get_sampler()
158
-
156
def forward(
157
self,
158
input_ids: torch.Tensor,
@@ -179,14 +176,6 @@ class DeepSeekMTP(nn.Module):
176
return self.model.compute_logits(hidden_states, sampling_metadata,
177
spec_step_idx)
178
182
- def sample(
183
- self,
184
- logits: torch.Tensor,
185
- sampling_metadata: SamplingMetadata,
186
- ) -> Optional[SamplerOutput]:
187
- next_tokens = self.sampler(logits, sampling_metadata)
188
- return next_tokens
189
-
179
def load_weights(self, weights: Iterable[Tuple[str,
180
torch.Tensor]]) -> Set[str]:
181
stacked_params_mapping = [
vllm/model_executor/models/deepseek_v2.py
-10
@@ -44,7 +44,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
44
from vllm.model_executor.layers.logits_processor import LogitsProcessor
45
from vllm.model_executor.layers.quantization import QuantizationConfig
46
from vllm.model_executor.layers.rotary_embedding import get_rope
47
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
47
from vllm.model_executor.layers.vocab_parallel_embedding import (
48
ParallelLMHead, VocabParallelEmbedding)
49
from vllm.model_executor.model_loader.weight_utils import (
@@ -686,7 +685,6 @@ class DeepseekV2ForCausalLM(nn.Module, SupportsPP):
685
else:
686
self.lm_head = PPMissingLayer()
687
self.logits_processor = LogitsProcessor(config.vocab_size)
689
- self.sampler = get_sampler()
688
self.make_empty_intermediate_tensors = (
689
self.model.make_empty_intermediate_tensors)
690
@@ -713,14 +711,6 @@ class DeepseekV2ForCausalLM(nn.Module, SupportsPP):
711
sampling_metadata)
712
return logits
713
716
- def sample(
717
- self,
718
- logits: Optional[torch.Tensor],
719
- sampling_metadata: SamplingMetadata,
720
- ) -> Optional[SamplerOutput]:
721
- next_tokens = self.sampler(logits, sampling_metadata)
722
- return next_tokens
723
-
714
def make_empty_intermediate_tensors(
715
self, batch_size: int, dtype: torch.dtype,
716
device: torch.device) -> IntermediateTensors:
vllm/model_executor/models/deepseek_vl2.py
-16
@@ -4,7 +4,6 @@
4
"""Inference-only Deepseek-VL2 model compatible with HuggingFace weights."""
5
import math
6
from collections.abc import Iterable, Mapping, Sequence
7
-from functools import cached_property
7
from typing import List, Literal, Optional, Set, Tuple, TypedDict, Union
8
9
import torch
@@ -16,7 +15,6 @@ from transformers import BatchFeature
15
from vllm.config import VllmConfig
16
from vllm.model_executor import SamplingMetadata
17
from vllm.model_executor.layers.quantization import QuantizationConfig
19
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
18
from vllm.model_executor.model_loader.utils import set_default_torch_dtype
19
from vllm.multimodal import MULTIMODAL_REGISTRY
20
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -393,13 +391,6 @@ class DeepseekVLV2ForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
391
model = model.to(dtype=torch.get_default_dtype())
392
return model
393
396
- @cached_property
397
- def sampler(self):
398
- if hasattr(self.language_model, "sampler"):
399
- return self.language_model.sampler
400
-
401
- return get_sampler()
402
-
394
def _validate_pixel_values(
395
self, data: Union[torch.Tensor, List[torch.Tensor]]
396
) -> Union[torch.Tensor, List[torch.Tensor]]:
@@ -647,13 +638,6 @@ class DeepseekVLV2ForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
638
return self.language_model.compute_logits(hidden_states,
639
sampling_metadata)
640
650
- def sample(
651
- self,
652
- logits: torch.Tensor,
653
- sampling_metadata: SamplingMetadata,
654
- ) -> Optional[SamplerOutput]:
655
- return self.language_model.sample(logits, sampling_metadata)
656
-
641
def load_weights(self, weights: Iterable[Tuple[str,
642
torch.Tensor]]) -> Set[str]:
643
vllm/model_executor/models/eagle.py
-13
@@ -9,7 +9,6 @@ from vllm.config import VllmConfig
9
from vllm.logger import init_logger
10
from vllm.model_executor.layers.layernorm import RMSNorm
11
from vllm.model_executor.layers.logits_processor import LogitsProcessor
12
-from vllm.model_executor.layers.sampler import SamplerOutput
12
from vllm.model_executor.layers.vocab_parallel_embedding import (
13
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead)
14
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -131,10 +130,6 @@ class EAGLE(nn.Module):
130
# checkpoint file has token_map tensor.
131
self.token_map = None
132
134
- @property
135
- def sampler(self):
136
- return self.model.sampler
137
-
133
def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
134
return self.model.model.get_input_embeddings(input_ids)
135
@@ -188,14 +183,6 @@ class EAGLE(nn.Module):
183
184
return logits
185
191
- def sample(
192
- self,
193
- logits: torch.Tensor,
194
- sampling_metadata: SamplingMetadata,
195
- ) -> Optional[SamplerOutput]:
196
- next_tokens = self.sampler(logits, sampling_metadata)
197
- return next_tokens
198
-
186
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
187
# This implementation is incompitable with https://huggingface.co/yuhuili/EAGLE-LLaMA3-Instruct-8B
188
# due to missing lm_head weights and its config being that of a
vllm/model_executor/models/exaone.py
-11
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
41
from vllm.model_executor.layers.logits_processor import LogitsProcessor
42
from vllm.model_executor.layers.quantization import QuantizationConfig
43
from vllm.model_executor.layers.rotary_embedding import get_rope
44
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
44
from vllm.model_executor.layers.vocab_parallel_embedding import (
45
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
46
from vllm.model_executor.model_loader.weight_utils import (
@@ -510,8 +509,6 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
509
else:
510
self.lm_head = PPMissingLayer()
511
513
- self.sampler = get_sampler()
514
-
512
self.make_empty_intermediate_tensors = (
513
self.transformer.make_empty_intermediate_tensors)
514
@@ -538,14 +535,6 @@ class ExaoneForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
535
sampling_metadata)
536
return logits
537
541
- def sample(
542
- self,
543
- logits: torch.Tensor,
544
- sampling_metadata: SamplingMetadata,
545
- ) -> Optional[SamplerOutput]:
546
- next_tokens = self.sampler(logits, sampling_metadata)
547
- return next_tokens
548
-
538
def load_weights(self, weights: Iterable[Tuple[str,
539
torch.Tensor]]) -> Set[str]:
540
loader = AutoWeightsLoader(
vllm/model_executor/models/falcon.py
-10
@@ -40,7 +40,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
40
from vllm.model_executor.layers.logits_processor import LogitsProcessor
41
from vllm.model_executor.layers.quantization import QuantizationConfig
42
from vllm.model_executor.layers.rotary_embedding import get_rope
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.layers.vocab_parallel_embedding import (
44
ParallelLMHead, VocabParallelEmbedding)
45
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -473,7 +472,6 @@ class FalconForCausalLM(nn.Module, SupportsPP):
472
quant_config=quant_config,
473
)
474
self.logits_processor = LogitsProcessor(config.vocab_size)
476
- self.sampler = get_sampler()
475
self.make_empty_intermediate_tensors = (
476
self.transformer.make_empty_intermediate_tensors)
477
@@ -500,14 +498,6 @@ class FalconForCausalLM(nn.Module, SupportsPP):
498
sampling_metadata)
499
return logits
500
503
- def sample(
504
- self,
505
- logits: torch.Tensor,
506
- sampling_metadata: SamplingMetadata,
507
- ) -> Optional[SamplerOutput]:
508
- next_tokens = self.sampler(logits, sampling_metadata)
509
- return next_tokens
510
-
501
def load_weights(self, weights: Iterable[Tuple[str,
502
torch.Tensor]]) -> Set[str]:
503
loader = AutoWeightsLoader(
vllm/model_executor/models/florence2.py
-21
@@ -3,7 +3,6 @@
3
import math
4
from collections import OrderedDict
5
from collections.abc import Iterable, Mapping, Sequence
6
-from functools import cached_property
6
from typing import List, Literal, Optional, Set, Tuple, TypedDict, Union
7
8
import torch
@@ -14,7 +13,6 @@ from transformers import BartTokenizer, BatchFeature, PretrainedConfig
13
14
from vllm.config import VllmConfig
15
from vllm.model_executor.layers.logits_processor import LogitsProcessor
17
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
16
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
17
from vllm.model_executor.models.bart import (BartDecoder, BartEncoder,
18
BartParallelLMHead,
@@ -673,7 +671,6 @@ class Florence2LanguageForConditionalGeneration(nn.Module, SupportsV0Only):
671
672
self.logits_processor = LogitsProcessor(self.vocab_size,
673
config.vocab_size)
676
- self.sampler = get_sampler()
674
675
def forward(
676
self,
@@ -716,11 +713,6 @@ class Florence2LanguageForConditionalGeneration(nn.Module, SupportsV0Only):
713
sampling_metadata)
714
return logits
715
719
- def sample(self, logits: torch.Tensor,
720
- sampling_metadata: SamplingMetadata) -> SamplerOutput:
721
- next_tokens = self.sampler(logits, sampling_metadata)
722
- return next_tokens
723
-
716
def load_weights(self, weights: Iterable[Tuple[str,
717
torch.Tensor]]) -> Set[str]:
718
stacked_params_mapping = [
@@ -929,12 +921,6 @@ class Florence2ForConditionalGeneration(nn.Module, SupportsMultiModal,
921
raise NotImplementedError(
922
'Florence2 only supports COSINE as temporal embedding.')
923
932
- @cached_property
933
- def sampler(self):
934
- if hasattr(self.language_model, "sampler"):
935
- return self.language_model.sampler
936
- return get_sampler()
937
-
924
def _validate_pixel_values(
925
self, data: Union[torch.Tensor, List[torch.Tensor]]
926
) -> Union[torch.Tensor, List[torch.Tensor]]:
@@ -1110,13 +1096,6 @@ class Florence2ForConditionalGeneration(nn.Module, SupportsMultiModal,
1096
return self.language_model.compute_logits(hidden_states,
1097
sampling_metadata)
1098
1113
- def sample(
1114
- self,
1115
- logits: torch.Tensor,
1116
- sampling_metadata: SamplingMetadata,
1117
- ) -> SamplerOutput:
1118
- return self.language_model.sample(logits, sampling_metadata)
1119
-
1099
def load_weights(self, weights: Iterable[Tuple[str,
1100
torch.Tensor]]) -> Set[str]:
1101
loader = AutoWeightsLoader(self)
vllm/model_executor/models/fuyu.py
-13
@@ -27,7 +27,6 @@ from transformers import (BatchFeature, FuyuConfig, FuyuImageProcessor,
27
28
from vllm.config import VllmConfig
29
from vllm.model_executor.layers.linear import ColumnParallelLinear
30
-from vllm.model_executor.layers.sampler import SamplerOutput
30
from vllm.model_executor.models.persimmon import PersimmonForCausalLM
31
from vllm.model_executor.sampling_metadata import SamplingMetadata
32
from vllm.multimodal import MULTIMODAL_REGISTRY
@@ -270,10 +269,6 @@ class FuyuForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
269
self.make_empty_intermediate_tensors = (
270
self.language_model.make_empty_intermediate_tensors)
271
273
- @property
274
- def sampler(self):
275
- return self.language_model.sampler
276
-
272
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
273
274
h = w = self.config.patch_size
@@ -387,14 +382,6 @@ class FuyuForCausalLM(nn.Module, SupportsMultiModal, SupportsPP):
382
self.language_model.lm_head, hidden_states, sampling_metadata)
383
return logits
384
390
- def sample(
391
- self,
392
- logits: torch.Tensor,
393
- sampling_metadata: SamplingMetadata,
394
- ) -> Optional[SamplerOutput]:
395
- next_tokens = self.language_model.sampler(logits, sampling_metadata)
396
- return next_tokens
397
-
385
def load_weights(self, weights: Iterable[Tuple[str,
386
torch.Tensor]]) -> Set[str]:
387
loader = AutoWeightsLoader(self)
vllm/model_executor/models/gemma.py
-10
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
35
from vllm.model_executor.layers.logits_processor import LogitsProcessor
36
from vllm.model_executor.layers.quantization import QuantizationConfig
37
from vllm.model_executor.layers.rotary_embedding import get_rope
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -388,7 +387,6 @@ class GemmaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
387
self.model = GemmaModel(vllm_config=vllm_config,
388
prefix=maybe_prefix(prefix, "model"))
389
self.logits_processor = LogitsProcessor(config.vocab_size)
391
- self.sampler = get_sampler()
390
self.make_empty_intermediate_tensors = (
391
self.model.make_empty_intermediate_tensors)
392
@@ -415,14 +413,6 @@ class GemmaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
413
sampling_metadata)
414
return logits
415
418
- def sample(
419
- self,
420
- logits: torch.Tensor,
421
- sampling_metadata: SamplingMetadata,
422
- ) -> Optional[SamplerOutput]:
423
- next_tokens = self.sampler(logits, sampling_metadata)
424
- return next_tokens
425
-
416
def load_weights(self, weights: Iterable[Tuple[str,
417
torch.Tensor]]) -> Set[str]:
418
loader = AutoWeightsLoader(
vllm/model_executor/models/gemma2.py
-10
@@ -34,7 +34,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
34
from vllm.model_executor.layers.logits_processor import LogitsProcessor
35
from vllm.model_executor.layers.quantization import QuantizationConfig
36
from vllm.model_executor.layers.rotary_embedding import get_rope
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
37
from vllm.model_executor.layers.vocab_parallel_embedding import (
38
VocabParallelEmbedding)
39
from vllm.model_executor.model_loader.weight_utils import (
@@ -388,7 +387,6 @@ class Gemma2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
387
prefix=maybe_prefix(prefix, "model"))
388
self.logits_processor = LogitsProcessor(
389
config.vocab_size, soft_cap=config.final_logit_softcapping)
391
- self.sampler = get_sampler()
390
self.make_empty_intermediate_tensors = (
391
self.model.make_empty_intermediate_tensors)
392
@@ -415,14 +413,6 @@ class Gemma2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
413
sampling_metadata)
414
return logits
415
418
- def sample(
419
- self,
420
- logits: torch.Tensor,
421
- sampling_metadata: SamplingMetadata,
422
- ) -> Optional[SamplerOutput]:
423
- next_tokens = self.sampler(logits, sampling_metadata)
424
- return next_tokens
425
-
416
def load_weights(self, weights: Iterable[Tuple[str,
417
torch.Tensor]]) -> Set[str]:
418
loader = AutoWeightsLoader(
vllm/model_executor/models/gemma3.py
-10
@@ -34,7 +34,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
34
from vllm.model_executor.layers.logits_processor import LogitsProcessor
35
from vllm.model_executor.layers.quantization import QuantizationConfig
36
from vllm.model_executor.layers.rotary_embedding import get_rope
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
37
from vllm.model_executor.layers.vocab_parallel_embedding import (
38
VocabParallelEmbedding)
39
from vllm.model_executor.model_loader.weight_utils import (
@@ -493,7 +492,6 @@ class Gemma3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
492
prefix=maybe_prefix(prefix, "model"))
493
self.logits_processor = LogitsProcessor(
494
config.vocab_size, soft_cap=config.final_logit_softcapping)
496
- self.sampler = get_sampler()
495
self.make_empty_intermediate_tensors = (
496
self.model.make_empty_intermediate_tensors)
497
@@ -521,14 +519,6 @@ class Gemma3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
519
sampling_metadata)
520
return logits
521
524
- def sample(
525
- self,
526
- logits: torch.Tensor,
527
- sampling_metadata: SamplingMetadata,
528
- ) -> Optional[SamplerOutput]:
529
- next_tokens = self.sampler(logits, sampling_metadata)
530
- return next_tokens
531
-
522
def load_weights(self, weights: Iterable[Tuple[str,
523
torch.Tensor]]) -> Set[str]:
524
loader = AutoWeightsLoader(
vllm/model_executor/models/gemma3_mm.py
+2
-14
@@ -1,7 +1,7 @@
1
# SPDX-License-Identifier: Apache-2.0
2
import math
3
from collections.abc import Iterable, Mapping, Sequence
4
-from typing import Any, Literal, Optional, Set, Tuple, TypedDict, Union
4
+from typing import Any, Literal, Optional, Set, Tuple, TypedDict
5
6
import torch
7
from torch import nn
@@ -12,7 +12,6 @@ import vllm.envs as envs
12
from vllm.config import VllmConfig
13
from vllm.logger import init_logger
14
from vllm.model_executor.layers.layernorm import GemmaRMSNorm
15
-from vllm.model_executor.layers.sampler import SamplerOutput
15
from vllm.model_executor.models.module_mapping import MultiModelKeys
16
from vllm.model_executor.sampling_metadata import SamplingMetadata
17
from vllm.multimodal import MULTIMODAL_REGISTRY
@@ -503,10 +502,6 @@ class Gemma3ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
502
def dtype(self):
503
return next(self.parameters()).dtype
504
506
- @property
507
- def sampler(self):
508
- return self.language_model.sampler
509
-
505
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
506
h = w = self.config.vision_config.image_size
507
expected_dims = (3, h, w)
@@ -607,7 +602,7 @@ class Gemma3ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
602
positions: torch.Tensor,
603
intermediate_tensors: Optional[IntermediateTensors] = None,
604
inputs_embeds: Optional[torch.Tensor] = None,
610
- **kwargs: object) -> Union[SamplerOutput, IntermediateTensors]:
605
+ **kwargs: object) -> IntermediateTensors:
606
if intermediate_tensors is not None:
607
inputs_embeds = None
608
@@ -704,13 +699,6 @@ class Gemma3ForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP,
699
return self.language_model.compute_logits(hidden_states,
700
sampling_metadata)
701
707
- def sample(
708
- self,
709
- logits: torch.Tensor,
710
- sampling_metadata: SamplingMetadata,
711
- ) -> Optional[SamplerOutput]:
712
- return self.language_model.sample(logits, sampling_metadata)
713
-
702
def load_weights(self, weights: Iterable[Tuple[str,
703
torch.Tensor]]) -> Set[str]:
704
loader = AutoWeightsLoader(self)
vllm/model_executor/models/glm4.py
-10
@@ -37,7 +37,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
37
from vllm.model_executor.layers.logits_processor import LogitsProcessor
38
from vllm.model_executor.layers.quantization import QuantizationConfig
39
from vllm.model_executor.layers.rotary_embedding import get_rope
40
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
40
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
41
from vllm.model_executor.sampling_metadata import SamplingMetadata
42
from vllm.sequence import IntermediateTensors
@@ -267,7 +266,6 @@ class Glm4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
266
self.lm_head = PPMissingLayer()
267
268
self.logits_processor = LogitsProcessor(config.vocab_size)
270
- self.sampler = get_sampler()
269
270
self.make_empty_intermediate_tensors = (
271
self.model.make_empty_intermediate_tensors)
@@ -295,14 +293,6 @@ class Glm4ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
293
sampling_metadata)
294
return logits
295
298
- def sample(
299
- self,
300
- logits: torch.Tensor,
301
- sampling_metadata: SamplingMetadata,
302
- ) -> Optional[SamplerOutput]:
303
- next_tokens = self.sampler(logits, sampling_metadata)
304
- return next_tokens
305
-
296
def load_weights(self, weights: Iterable[Tuple[str,
297
torch.Tensor]]) -> Set[str]:
298
loader = AutoWeightsLoader(
vllm/model_executor/models/gpt2.py
-10
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
RowParallelLinear)
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -255,7 +254,6 @@ class GPT2LMHeadModel(nn.Module, SupportsPP):
254
self.lm_head = self.lm_head.tie_weights(self.transformer.wte)
255
256
self.logits_processor = LogitsProcessor(config.vocab_size)
258
- self.sampler = get_sampler()
257
self.make_empty_intermediate_tensors = (
258
self.transformer.make_empty_intermediate_tensors)
259
@@ -282,14 +280,6 @@ class GPT2LMHeadModel(nn.Module, SupportsPP):
280
sampling_metadata)
281
return logits
282
285
- def sample(
286
- self,
287
- logits: torch.Tensor,
288
- sampling_metadata: SamplingMetadata,
289
- ) -> Optional[SamplerOutput]:
290
- next_tokens = self.sampler(logits, sampling_metadata)
291
- return next_tokens
292
-
283
def load_weights(self, weights: Iterable[Tuple[str,
284
torch.Tensor]]) -> Set[str]:
285
params_dict = dict(self.named_parameters(remove_duplicate=False))
vllm/model_executor/models/gpt_bigcode.py
-10
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
RowParallelLinear)
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -302,7 +301,6 @@ class GPTBigCodeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
301
self.unpadded_vocab_size += lora_config.lora_extra_vocab_size
302
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
303
config.vocab_size)
305
- self.sampler = get_sampler()
304
self.make_empty_intermediate_tensors = (
305
self.transformer.make_empty_intermediate_tensors)
306
@@ -329,14 +327,6 @@ class GPTBigCodeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
327
sampling_metadata)
328
return logits
329
332
- def sample(
333
- self,
334
- logits: torch.Tensor,
335
- sampling_metadata: SamplingMetadata,
336
- ) -> Optional[SamplerOutput]:
337
- next_tokens = self.sampler(logits, sampling_metadata)
338
- return next_tokens
339
-
330
def load_weights(self, weights: Iterable[Tuple[str,
331
torch.Tensor]]) -> Set[str]:
332
loader = AutoWeightsLoader(
vllm/model_executor/models/gpt_j.py
-10
@@ -34,7 +34,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
34
from vllm.model_executor.layers.logits_processor import LogitsProcessor
35
from vllm.model_executor.layers.quantization import QuantizationConfig
36
from vllm.model_executor.layers.rotary_embedding import get_rope
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
37
from vllm.model_executor.layers.vocab_parallel_embedding import (
38
ParallelLMHead, VocabParallelEmbedding)
39
from vllm.model_executor.model_loader.weight_utils import (
@@ -306,7 +305,6 @@ class GPTJForCausalLM(nn.Module, SupportsPP):
305
quant_config=quant_config,
306
)
307
self.logits_processor = LogitsProcessor(config.vocab_size)
309
- self.sampler = get_sampler()
308
self.make_empty_intermediate_tensors = (
309
self.transformer.make_empty_intermediate_tensors)
310
@@ -333,14 +331,6 @@ class GPTJForCausalLM(nn.Module, SupportsPP):
331
sampling_metadata, self.lm_head.bias)
332
return logits
333
336
- def sample(
337
- self,
338
- logits: torch.Tensor,
339
- sampling_metadata: SamplingMetadata,
340
- ) -> Optional[SamplerOutput]:
341
- next_tokens = self.sampler(logits, sampling_metadata)
342
- return next_tokens
343
-
334
def load_weights(self, weights: Iterable[Tuple[str,
335
torch.Tensor]]) -> Set[str]:
336
loader = AutoWeightsLoader(self)
vllm/model_executor/models/gpt_neox.py
-10
@@ -34,7 +34,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
34
from vllm.model_executor.layers.logits_processor import LogitsProcessor
35
from vllm.model_executor.layers.quantization import QuantizationConfig
36
from vllm.model_executor.layers.rotary_embedding import get_rope
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
37
from vllm.model_executor.layers.vocab_parallel_embedding import (
38
ParallelLMHead, VocabParallelEmbedding)
39
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -299,7 +298,6 @@ class GPTNeoXForCausalLM(nn.Module, SupportsPP):
298
if self.config.tie_word_embeddings:
299
self.embed_out.weight = self.gpt_neox.embed_in.weight
300
self.logits_processor = LogitsProcessor(config.vocab_size)
302
- self.sampler = get_sampler()
301
self.make_empty_intermediate_tensors = (
302
self.gpt_neox.make_empty_intermediate_tensors)
303
@@ -326,14 +324,6 @@ class GPTNeoXForCausalLM(nn.Module, SupportsPP):
324
sampling_metadata)
325
return logits
326
329
- def sample(
330
- self,
331
- logits: torch.Tensor,
332
- sampling_metadata: SamplingMetadata,
333
- ) -> Optional[SamplerOutput]:
334
- next_tokens = self.sampler(logits, sampling_metadata)
335
- return next_tokens
336
-
327
def load_weights(self, weights: Iterable[Tuple[str,
328
torch.Tensor]]) -> Set[str]:
329
loader = AutoWeightsLoader(self)
vllm/model_executor/models/granite.py
-11
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
41
from vllm.model_executor.layers.quantization.base_config import (
42
QuantizationConfig)
43
from vllm.model_executor.layers.rotary_embedding import get_rope
44
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
44
from vllm.model_executor.layers.vocab_parallel_embedding import (
45
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
46
from vllm.model_executor.model_loader.weight_utils import (
@@ -441,8 +440,6 @@ class GraniteForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
440
else:
441
self.lm_head = PPMissingLayer()
442
444
- self.sampler = get_sampler()
445
-
443
def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
444
return self.model.get_input_embeddings(input_ids)
445
@@ -464,14 +461,6 @@ class GraniteForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
461
sampling_metadata)
462
return logits
463
467
- def sample(
468
- self,
469
- logits: torch.Tensor,
470
- sampling_metadata: SamplingMetadata,
471
- ) -> Optional[SamplerOutput]:
472
- next_tokens = self.sampler(logits, sampling_metadata)
473
- return next_tokens
474
-
464
def make_empty_intermediate_tensors(
465
self, batch_size: int, dtype: torch.dtype,
466
device: torch.device) -> IntermediateTensors:
vllm/model_executor/models/granitemoe.py
-11
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
41
from vllm.model_executor.layers.quantization.base_config import (
42
QuantizationConfig)
43
from vllm.model_executor.layers.rotary_embedding import get_rope
44
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
44
from vllm.model_executor.layers.vocab_parallel_embedding import (
45
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
46
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -391,8 +390,6 @@ class GraniteMoeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
390
scale=1 /
391
self.config.logits_scaling)
392
394
- self.sampler = get_sampler()
395
-
393
def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
394
return self.model.get_input_embeddings(input_ids)
395
@@ -428,14 +425,6 @@ class GraniteMoeForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
425
device=device),
426
})
427
431
- def sample(
432
- self,
433
- logits: Optional[torch.Tensor],
434
- sampling_metadata: SamplingMetadata,
435
- ) -> Optional[SamplerOutput]:
436
- next_tokens = self.sampler(logits, sampling_metadata)
437
- return next_tokens
438
-
428
def load_weights(self, weights: Iterable[Tuple[str,
429
torch.Tensor]]) -> Set[str]:
430
loader = AutoWeightsLoader(
vllm/model_executor/models/granitemoeshared.py
-11
@@ -20,7 +20,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
20
from vllm.model_executor.layers.logits_processor import LogitsProcessor
21
from vllm.model_executor.layers.quantization.base_config import (
22
QuantizationConfig)
23
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
23
from vllm.model_executor.layers.vocab_parallel_embedding import (
24
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
25
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -295,8 +294,6 @@ class GraniteMoeSharedForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
294
scale=1 /
295
self.config.logits_scaling)
296
298
- self.sampler = get_sampler()
299
-
297
def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
298
return self.model.get_input_embeddings(input_ids)
299
@@ -332,14 +329,6 @@ class GraniteMoeSharedForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
329
device=device),
330
})
331
335
- def sample(
336
- self,
337
- logits: Optional[torch.Tensor],
338
- sampling_metadata: SamplingMetadata,
339
- ) -> Optional[SamplerOutput]:
340
- next_tokens = self.sampler(logits, sampling_metadata)
341
- return next_tokens
342
-
332
def load_weights(self, weights: Iterable[Tuple[str,
333
torch.Tensor]]) -> Set[str]:
334
loader = AutoWeightsLoader(
vllm/model_executor/models/grok1.py
-10
@@ -39,7 +39,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
39
from vllm.model_executor.layers.logits_processor import LogitsProcessor
40
from vllm.model_executor.layers.quantization import QuantizationConfig
41
from vllm.model_executor.layers.rotary_embedding import get_rope
42
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
42
from vllm.model_executor.layers.vocab_parallel_embedding import (
43
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
44
from vllm.model_executor.model_loader.weight_utils import (
@@ -521,7 +520,6 @@ class Grok1ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
520
config.vocab_size,
521
self.output_multiplier_scale)
522
524
- self.sampler = get_sampler()
523
self.make_empty_intermediate_tensors = (
524
self.model.make_empty_intermediate_tensors)
525
@@ -551,14 +549,6 @@ class Grok1ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
549
sampling_metadata)
550
return logits
551
554
- def sample(
555
- self,
556
- logits: Optional[torch.Tensor],
557
- sampling_metadata: SamplingMetadata,
558
- ) -> Optional[SamplerOutput]:
559
- next_tokens = self.sampler(logits, sampling_metadata)
560
- return next_tokens
561
-
552
def load_weights(self, weights: Iterable[Tuple[str,
553
torch.Tensor]]) -> Set[str]:
554
skip_prefixes = ["rotary_emb.inv_freq"]
vllm/model_executor/models/idefics3.py
-10
@@ -28,7 +28,6 @@ from vllm.config import VllmConfig
28
from vllm.model_executor.layers.linear import ReplicatedLinear
29
from vllm.model_executor.layers.logits_processor import LogitsProcessor
30
from vllm.model_executor.layers.quantization import QuantizationConfig
31
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
31
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
32
from vllm.model_executor.models.module_mapping import MultiModelKeys
33
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -603,7 +602,6 @@ class Idefics3ForConditionalGeneration(nn.Module, SupportsMultiModal,
602
if self.config.text_config.tie_word_embeddings:
603
self.lm_head.weight = self.model.text_model.wte.weight
604
self.logits_processor = LogitsProcessor(config.text_config.vocab_size)
606
- self.sampler = get_sampler()
605
606
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
607
h = w = self.config.vision_config.image_size
@@ -754,14 +752,6 @@ class Idefics3ForConditionalGeneration(nn.Module, SupportsMultiModal,
752
sampling_metadata)
753
return logits
754
757
- def sample(
758
- self,
759
- logits: torch.Tensor,
760
- sampling_metadata: SamplingMetadata,
761
- ) -> Optional[SamplerOutput]:
762
- next_tokens = self.sampler(logits, sampling_metadata)
763
- return next_tokens
764
-
755
def load_weights(self, weights: Iterable[Tuple[str,
756
torch.Tensor]]) -> Set[str]:
757
loader = AutoWeightsLoader(self)
vllm/model_executor/models/interfaces_base.py
-9
@@ -13,7 +13,6 @@ from vllm.utils import supports_kw
13
if TYPE_CHECKING:
14
from vllm.config import VllmConfig
15
from vllm.model_executor.layers.pooler import PoolerOutput
16
- from vllm.model_executor.layers.sampler import SamplerOutput
16
from vllm.model_executor.pooling_metadata import PoolingMetadata
17
from vllm.model_executor.sampling_metadata import SamplingMetadata
18
@@ -103,14 +102,6 @@ class VllmModelForTextGeneration(VllmModel[T], Protocol[T]):
102
"""Return `None` if TP rank > 0."""
103
...
104
106
- def sample(
107
- self,
108
- logits: T,
109
- sampling_metadata: "SamplingMetadata",
110
- ) -> "SamplerOutput":
111
- """Only called on TP rank 0."""
112
- ...
113
-
105
106
@overload
107
def is_text_generation_model(
vllm/model_executor/models/internlm2.py
+1
-11
@@ -23,7 +23,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
23
from vllm.model_executor.layers.pooler import Pooler, PoolingType
24
from vllm.model_executor.layers.quantization import QuantizationConfig
25
from vllm.model_executor.layers.rotary_embedding import get_rope
26
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
26
from vllm.model_executor.layers.vocab_parallel_embedding import (
27
ParallelLMHead, VocabParallelEmbedding)
28
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -336,7 +335,6 @@ class InternLM2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
335
if self.config.tie_word_embeddings:
336
self.output.weight = self.model.tok_embeddings.weight
337
self.logits_processor = LogitsProcessor(config.vocab_size)
339
- self.sampler = get_sampler()
338
self.make_empty_intermediate_tensors = (
339
self.model.make_empty_intermediate_tensors)
340
@@ -363,14 +361,6 @@ class InternLM2ForCausalLM(nn.Module, SupportsPP, SupportsLoRA):
361
sampling_metadata)
362
return logits
363
366
- def sample(
367
- self,
368
- logits: torch.Tensor,
369
- sampling_metadata: SamplingMetadata,
370
- ) -> Optional[SamplerOutput]:
371
- next_tokens = self.sampler(logits, sampling_metadata)
372
- return next_tokens
373
-
364
def load_weights(self, weights: Iterable[Tuple[str,
365
torch.Tensor]]) -> Set[str]:
366
stacked_params_mapping = [
@@ -423,7 +413,7 @@ class InternLM2ForRewardModel(InternLM2ForCausalLM):
413
prefix=prefix,
414
model_type=model_type)
415
426
- for attr in ("output", "logits_processor", "sampler"):
416
+ for attr in ("output", "logits_processor"):
417
delattr(self, attr)
418
419
config = vllm_config.model_config.hf_config
vllm/model_executor/models/internvl.py
+1
-17
@@ -8,7 +8,6 @@
8
# --------------------------------------------------------
9
from abc import ABC, abstractmethod
10
from collections.abc import Iterable, Mapping, Sequence
11
-from functools import cached_property
11
from typing import Literal, Optional, Set, Tuple, TypedDict, TypeVar, Union
12
13
import torch
@@ -20,7 +19,6 @@ from transformers import BatchEncoding, PretrainedConfig, TensorType
19
from vllm.config import VllmConfig
20
from vllm.model_executor.layers.quantization import QuantizationConfig
21
from vllm.model_executor.layers.quantization.awq import AWQConfig
23
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
22
from vllm.model_executor.models.intern_vit import (InternVisionModel,
23
InternVisionPatchModel)
24
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -698,13 +696,6 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP):
696
(llm_quant_config is not None):
697
quant_config.modules_to_not_convert.append("vision_model")
698
701
- @cached_property
702
- def sampler(self):
703
- if hasattr(self.language_model, "sampler"):
704
- return self.language_model.sampler
705
-
706
- return get_sampler()
707
-
699
def _init_vision_model(
700
self,
701
config: PretrainedConfig,
@@ -903,7 +894,7 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP):
894
intermediate_tensors: Optional[IntermediateTensors] = None,
895
inputs_embeds: Optional[torch.Tensor] = None,
896
**kwargs: object,
906
- ) -> Union[SamplerOutput, IntermediateTensors]:
897
+ ) -> IntermediateTensors:
898
899
if intermediate_tensors is not None:
900
input_ids = None
@@ -941,13 +932,6 @@ class InternVLChatModel(nn.Module, SupportsMultiModal, SupportsPP):
932
return self.language_model.compute_logits(hidden_states,
933
sampling_metadata)
934
944
- def sample(
945
- self,
946
- logits: torch.Tensor,
947
- sampling_metadata: SamplingMetadata,
948
- ) -> Optional[SamplerOutput]:
949
- return self.language_model.sample(logits, sampling_metadata)
950
-
935
def load_weights(self, weights: Iterable[Tuple[str,
936
torch.Tensor]]) -> Set[str]:
937
# unused modules appear in OpenGVLab/InternVideo2_5_Chat_8B
vllm/model_executor/models/jais.py
-10
@@ -36,7 +36,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
36
RowParallelLinear)
37
from vllm.model_executor.layers.logits_processor import LogitsProcessor
38
from vllm.model_executor.layers.quantization import QuantizationConfig
39
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
39
from vllm.model_executor.layers.vocab_parallel_embedding import (
40
ParallelLMHead, VocabParallelEmbedding)
41
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -308,7 +307,6 @@ class JAISLMHeadModel(nn.Module, SupportsPP):
307
config.mup_width_scale)
308
self.logits_processor = LogitsProcessor(vocab_size=config.vocab_size,
309
scale=self.output_logits_scale)
311
- self.sampler = get_sampler()
310
self.make_empty_intermediate_tensors = (
311
self.transformer.make_empty_intermediate_tensors)
312
@@ -335,14 +333,6 @@ class JAISLMHeadModel(nn.Module, SupportsPP):
333
sampling_metadata)
334
return logits
335
338
- def sample(
339
- self,
340
- logits: torch.Tensor,
341
- sampling_metadata: SamplingMetadata,
342
- ) -> Optional[SamplerOutput]:
343
- next_tokens = self.sampler(logits, sampling_metadata)
344
- return next_tokens
345
-
336
def load_weights(self, weights: Iterable[Tuple[str,
337
torch.Tensor]]) -> Set[str]:
338
params_dict = dict(self.named_parameters(remove_duplicate=False))
vllm/model_executor/models/jamba.py
-10
@@ -19,7 +19,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
19
from vllm.model_executor.layers.mamba.mamba_mixer import MambaMixer
20
from vllm.model_executor.layers.pooler import Pooler, PoolingType
21
from vllm.model_executor.layers.quantization import QuantizationConfig
22
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
22
from vllm.model_executor.layers.vocab_parallel_embedding import (
23
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
24
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -409,7 +408,6 @@ class JambaForCausalLM(nn.Module, HasInnerState, SupportsLoRA, SupportsPP,
408
409
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
410
config.vocab_size)
412
- self.sampler = get_sampler()
411
412
self.make_empty_intermediate_tensors = (
413
self.model.make_empty_intermediate_tensors)
@@ -466,14 +464,6 @@ class JambaForCausalLM(nn.Module, HasInnerState, SupportsLoRA, SupportsPP,
464
sampling_metadata)
465
return logits
466
469
- def sample(
470
- self,
471
- logits: Optional[torch.Tensor],
472
- sampling_metadata: SamplingMetadata,
473
- ) -> Optional[SamplerOutput]:
474
- next_tokens = self.sampler(logits, sampling_metadata)
475
- return next_tokens
476
-
467
def load_weights(self, weights: Iterable[Tuple[str,
468
torch.Tensor]]) -> Set[str]:
469
stacked_params_mapping = [
vllm/model_executor/models/kimi_vl.py
+1
-11
@@ -58,7 +58,6 @@ from vllm.distributed import (get_tensor_model_parallel_rank,
58
get_tensor_model_parallel_world_size)
59
from vllm.model_executor.layers.fused_moe import FusedMoE
60
from vllm.model_executor.layers.logits_processor import LogitsProcessor
61
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
61
from vllm.model_executor.layers.vocab_parallel_embedding import (
62
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead)
63
from vllm.model_executor.model_loader.weight_utils import (
@@ -298,7 +297,6 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal):
297
logit_scale = getattr(config, "logit_scale", 1.0)
298
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
299
config.vocab_size, logit_scale)
301
- self.sampler = get_sampler()
300
self.media_placeholder: int = self.config.media_placeholder_token_id
301
self.tp_rank = get_tensor_model_parallel_rank()
302
self.tp_world_size = get_tensor_model_parallel_world_size()
@@ -409,7 +407,7 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal):
407
intermediate_tensors: Optional[IntermediateTensors] = None,
408
inputs_embeds: Optional[torch.Tensor] = None,
409
**kwargs: object,
412
- ) -> SamplerOutput:
410
+ ) -> IntermediateTensors:
411
if intermediate_tensors is not None:
412
inputs_embeds = None
413
# NOTE: In v1, inputs_embeds is always generated at model runner from
@@ -447,14 +445,6 @@ class KimiVLForConditionalGeneration(nn.Module, SupportsMultiModal):
445
sampling_metadata, **kwargs)
446
return logits
447
450
- def sample(
451
- self,
452
- logits: torch.Tensor,
453
- sampling_metadata: SamplingMetadata,
454
- ) -> Optional[SamplerOutput]:
455
- next_tokens = self.sampler(logits, sampling_metadata)
456
- return next_tokens
457
-
448
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
449
config = self.config.text_config
450
_KEYS_TO_MODIFY_MAPPING = {
vllm/model_executor/models/llama.py
-8
@@ -40,7 +40,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
40
from vllm.model_executor.layers.logits_processor import LogitsProcessor
41
from vllm.model_executor.layers.quantization import QuantizationConfig
42
from vllm.model_executor.layers.rotary_embedding import get_rope
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.layers.vocab_parallel_embedding import (
44
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
45
from vllm.model_executor.model_loader.weight_utils import (
@@ -515,8 +514,6 @@ class LlamaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
514
else:
515
self.lm_head = PPMissingLayer()
516
518
- self.sampler = get_sampler()
519
-
517
self.make_empty_intermediate_tensors = (
518
self.model.make_empty_intermediate_tensors)
519
@@ -551,11 +548,6 @@ class LlamaForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
548
sampling_metadata)
549
return logits
550
554
- def sample(self, logits: torch.Tensor,
555
- sampling_metadata: SamplingMetadata) -> Optional[SamplerOutput]:
556
- next_tokens = self.sampler(logits, sampling_metadata)
557
- return next_tokens
558
-
551
def load_weights(self, weights: Iterable[Tuple[str,
552
torch.Tensor]]) -> Set[str]:
553
loader = AutoWeightsLoader(
vllm/model_executor/models/llava.py
-16
@@ -2,7 +2,6 @@
2
3
from abc import abstractmethod
4
from collections.abc import Iterable, Mapping, Sequence
5
-from functools import cached_property
5
from typing import (Final, Literal, Optional, Protocol, Set, Tuple, TypedDict,
6
TypeVar, Union, cast)
7
@@ -23,7 +22,6 @@ from vllm.model_executor.layers.activation import get_act_fn
22
from vllm.model_executor.layers.linear import (ColumnParallelLinear,
23
RowParallelLinear)
24
from vllm.model_executor.layers.quantization import QuantizationConfig
26
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
25
from vllm.model_executor.sampling_metadata import SamplingMetadata
26
from vllm.multimodal import MULTIMODAL_REGISTRY
27
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -546,13 +544,6 @@ class LlavaForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
544
self.make_empty_intermediate_tensors = (
545
self.language_model.make_empty_intermediate_tensors)
546
549
- @cached_property
550
- def sampler(self):
551
- if hasattr(self.language_model, "sampler"):
552
- return self.language_model.sampler
553
-
554
- return get_sampler()
555
-
547
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
548
h = w = self.config.vision_config.image_size
549
expected_dims = (3, h, w)
@@ -763,13 +754,6 @@ class LlavaForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
754
return self.language_model.compute_logits(hidden_states,
755
sampling_metadata)
756
766
- def sample(
767
- self,
768
- logits: torch.Tensor,
769
- sampling_metadata: SamplingMetadata,
770
- ) -> Optional[SamplerOutput]:
771
- return self.language_model.sample(logits, sampling_metadata)
772
-
757
def load_weights(self, weights: Iterable[Tuple[str,
758
torch.Tensor]]) -> Set[str]:
759
loader = AutoWeightsLoader(self)
vllm/model_executor/models/llava_next.py
-16
@@ -1,7 +1,6 @@
1
# SPDX-License-Identifier: Apache-2.0
2
3
from abc import abstractmethod
4
-from functools import cached_property
4
from typing import (Final, Iterable, List, Literal, Mapping, Optional,
5
Protocol, Set, Tuple, TypedDict, TypeVar, Union)
6
@@ -13,7 +12,6 @@ from transformers.models.llava_next.modeling_llava_next import (
12
from typing_extensions import NotRequired
13
14
from vllm.config import VllmConfig
16
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
15
from vllm.model_executor.sampling_metadata import SamplingMetadata
16
from vllm.multimodal import MULTIMODAL_REGISTRY
17
from vllm.multimodal.inputs import MultiModalFieldConfig
@@ -250,13 +248,6 @@ class LlavaNextForConditionalGeneration(nn.Module, SupportsMultiModal,
248
self.make_empty_intermediate_tensors = (
249
self.language_model.make_empty_intermediate_tensors)
250
253
- @cached_property
254
- def sampler(self):
255
- if hasattr(self.language_model, "sampler"):
256
- return self.language_model.sampler
257
-
258
- return get_sampler()
259
-
251
def _validate_image_sizes(self, data: torch.Tensor) -> torch.Tensor:
252
expected_dims = (2, )
253
@@ -585,13 +576,6 @@ class LlavaNextForConditionalGeneration(nn.Module, SupportsMultiModal,
576
return self.language_model.compute_logits(hidden_states,
577
sampling_metadata)
578
588
- def sample(
589
- self,
590
- logits: torch.Tensor,
591
- sampling_metadata: SamplingMetadata,
592
- ) -> Optional[SamplerOutput]:
593
- return self.language_model.sample(logits, sampling_metadata)
594
-
579
def load_weights(self, weights: Iterable[Tuple[str,
580
torch.Tensor]]) -> Set[str]:
581
loader = AutoWeightsLoader(self)
vllm/model_executor/models/llava_next_video.py
-16
@@ -2,7 +2,6 @@
2
3
import math
4
from collections.abc import Iterable, Mapping, Sequence
5
-from functools import cached_property
5
from typing import List, Literal, Optional, Set, Tuple, TypedDict, Union
6
7
import torch
@@ -12,7 +11,6 @@ from transformers import (BatchFeature, LlavaNextVideoConfig,
11
12
from vllm.config import VllmConfig
13
from vllm.model_executor.layers.activation import get_act_fn
15
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
14
from vllm.model_executor.models.clip import CLIPVisionModel
15
from vllm.model_executor.sampling_metadata import SamplingMetadata
16
from vllm.multimodal import MULTIMODAL_REGISTRY
@@ -301,13 +299,6 @@ class LlavaNextVideoForConditionalGeneration(nn.Module, SupportsMultiModal,
299
self.make_empty_intermediate_tensors = (
300
self.language_model.model.make_empty_intermediate_tensors)
301
304
- @cached_property
305
- def sampler(self):
306
- if hasattr(self.language_model, "sampler"):
307
- return self.language_model.sampler
308
-
309
- return get_sampler()
310
-
302
def _validate_video_pixel_values(
303
self, data: Union[torch.Tensor, List[torch.Tensor]]
304
) -> Union[torch.Tensor, List[torch.Tensor]]:
@@ -469,13 +460,6 @@ class LlavaNextVideoForConditionalGeneration(nn.Module, SupportsMultiModal,
460
return self.language_model.compute_logits(hidden_states,
461
sampling_metadata)
462
472
- def sample(
473
- self,
474
- logits: torch.Tensor,
475
- sampling_metadata: SamplingMetadata,
476
- ) -> Optional[SamplerOutput]:
477
- return self.language_model.sample(logits, sampling_metadata)
478
-
463
def load_weights(self, weights: Iterable[Tuple[str,
464
torch.Tensor]]) -> Set[str]:
465
loader = AutoWeightsLoader(
vllm/model_executor/models/llava_onevision.py
-16
@@ -2,7 +2,6 @@
2
3
import math
4
from collections.abc import Iterable, Mapping, Sequence
5
-from functools import cached_property
5
from typing import (Final, List, Literal, Optional, Protocol, Set, Tuple,
6
TypedDict, Union)
7
@@ -16,7 +15,6 @@ from typing_extensions import NotRequired
15
16
from vllm.config import VllmConfig
17
from vllm.model_executor.layers.activation import get_act_fn
19
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
18
from vllm.model_executor.sampling_metadata import SamplingMetadata
19
from vllm.multimodal import MULTIMODAL_REGISTRY
20
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -455,13 +453,6 @@ class LlavaOnevisionForConditionalGeneration(nn.Module, SupportsMultiModal,
453
self.make_empty_intermediate_tensors = (
454
self.language_model.model.make_empty_intermediate_tensors)
455
458
- @cached_property
459
- def sampler(self):
460
- if hasattr(self.language_model, "sampler"):
461
- return self.language_model.sampler
462
-
463
- return get_sampler()
464
-
456
def _validate_image_sizes(self, data: torch.Tensor) -> torch.Tensor:
457
expected_dims = (2, )
458
@@ -957,13 +948,6 @@ class LlavaOnevisionForConditionalGeneration(nn.Module, SupportsMultiModal,
948
return self.language_model.compute_logits(hidden_states,
949
sampling_metadata)
950
960
- def sample(
961
- self,
962
- logits: torch.Tensor,
963
- sampling_metadata: SamplingMetadata,
964
- ) -> Optional[SamplerOutput]:
965
- return self.language_model.sample(logits, sampling_metadata)
966
-
951
def load_weights(self, weights: Iterable[Tuple[str,
952
torch.Tensor]]) -> Set[str]:
953
loader = AutoWeightsLoader(self)
vllm/model_executor/models/mamba.py
-10
@@ -14,7 +14,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
14
from vllm.model_executor.layers.mamba.mamba_mixer import MambaMixer
15
from vllm.model_executor.layers.quantization.base_config import (
16
QuantizationConfig)
17
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
17
from vllm.model_executor.layers.vocab_parallel_embedding import (
18
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
19
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -213,7 +212,6 @@ class MambaForCausalLM(nn.Module, HasInnerState, IsAttentionFree, SupportsPP,
212
213
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
214
config.vocab_size)
216
- self.sampler = get_sampler()
215
216
self.make_empty_intermediate_tensors = (
217
self.backbone.make_empty_intermediate_tensors)
@@ -267,14 +265,6 @@ class MambaForCausalLM(nn.Module, HasInnerState, IsAttentionFree, SupportsPP,
265
sampling_metadata)
266
return logits
267
270
- def sample(
271
- self,
272
- logits: Optional[torch.Tensor],
273
- sampling_metadata: SamplingMetadata,
274
- ) -> Optional[SamplerOutput]:
275
- next_tokens = self.sampler(logits, sampling_metadata)
276
- return next_tokens
277
-
268
def load_weights(self, weights: Iterable[Tuple[str,
269
torch.Tensor]]) -> Set[str]:
270
loader = AutoWeightsLoader(self)
vllm/model_executor/models/mamba2.py
-10
@@ -19,7 +19,6 @@ from vllm.model_executor.layers.mamba.mamba_mixer2 import (
19
MambaMixer2, extra_groups_for_head_shards)
20
from vllm.model_executor.layers.quantization.base_config import (
21
QuantizationConfig)
22
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
22
from vllm.model_executor.layers.vocab_parallel_embedding import (
23
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
24
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -208,7 +207,6 @@ class Mamba2ForCausalLM(nn.Module, HasInnerState, IsAttentionFree,
207
208
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
209
config.vocab_size)
211
- self.sampler = get_sampler()
210
211
self.make_empty_intermediate_tensors = (
212
self.backbone.make_empty_intermediate_tensors)
@@ -282,14 +280,6 @@ class Mamba2ForCausalLM(nn.Module, HasInnerState, IsAttentionFree,
280
sampling_metadata)
281
return logits
282
285
- def sample(
286
- self,
287
- logits: Optional[torch.Tensor],
288
- sampling_metadata: SamplingMetadata,
289
- ) -> Optional[SamplerOutput]:
290
- next_tokens = self.sampler(logits, sampling_metadata)
291
- return next_tokens
292
-
283
def load_weights(self, weights: Iterable[Tuple[str,
284
torch.Tensor]]) -> Set[str]:
285
params_dict = dict(self.named_parameters())
vllm/model_executor/models/minicpm.py
-10
@@ -45,7 +45,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
45
from vllm.model_executor.layers.logits_processor import LogitsProcessor
46
from vllm.model_executor.layers.quantization import QuantizationConfig
47
from vllm.model_executor.layers.rotary_embedding import get_rope
48
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
48
from vllm.model_executor.layers.vocab_parallel_embedding import (
49
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
50
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -553,7 +552,6 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
552
553
self.logits_processor = LogitsProcessor(unpadded_vocab_size,
554
config.vocab_size)
556
- self.sampler = get_sampler()
555
self.make_empty_intermediate_tensors = (
556
self.model.make_empty_intermediate_tensors)
557
@@ -584,14 +582,6 @@ class MiniCPMForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
582
sampling_metadata)
583
return logits
584
587
- def sample(
588
- self,
589
- logits: torch.Tensor,
590
- sampling_metadata: SamplingMetadata,
591
- ) -> Optional[SamplerOutput]:
592
- next_tokens = self.sampler(logits, sampling_metadata)
593
- return next_tokens
594
-
585
def load_weights(self, weights: Iterable[Tuple[str,
586
torch.Tensor]]) -> Set[str]:
587
loader = AutoWeightsLoader(
vllm/model_executor/models/minicpmv.py
+1
-17
@@ -25,7 +25,7 @@
25
import math
26
from collections import defaultdict
27
from collections.abc import Iterable, Mapping, Sequence
28
-from functools import cached_property, partial
28
+from functools import partial
29
from typing import (Any, Callable, Literal, Optional, Set, Tuple, TypedDict,
30
Union)
31
@@ -40,7 +40,6 @@ from vllm.config import VllmConfig
40
from vllm.model_executor.layers.quantization import QuantizationConfig
41
from vllm.model_executor.layers.resampler import (BaseResampler, Resampler2,
42
get_2d_sincos_pos_embed)
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.model_loader.utils import set_default_torch_dtype
44
from vllm.model_executor.models.llama import LlamaForCausalLM
45
from vllm.model_executor.models.minicpm import MiniCPMForCausalLM
@@ -758,13 +757,6 @@ class MiniCPMVBaseModel(nn.Module, SupportsMultiModal, SupportsPP):
757
self.make_empty_intermediate_tensors = (
758
self.llm.make_empty_intermediate_tensors)
759
761
- @cached_property
762
- def sampler(self):
763
- if hasattr(self.llm, "sampler"):
764
- return self.llm.sampler
765
-
766
- return get_sampler()
767
-
760
def _parse_and_validate_vision_input(
761
self,
762
modality: str,
@@ -946,14 +938,6 @@ class MiniCPMVBaseModel(nn.Module, SupportsMultiModal, SupportsPP):
938
) -> Optional[torch.Tensor]:
939
return self.llm.compute_logits(hidden_states, sampling_metadata)
940
949
- def sample(
950
- self,
951
- logits: torch.Tensor,
952
- sampling_metadata: SamplingMetadata,
953
- ) -> Optional[SamplerOutput]:
954
- next_tokens = self.sampler(logits, sampling_metadata)
955
- return next_tokens
956
-
941
def load_weights(self, weights: Iterable[Tuple[str,
942
torch.Tensor]]) -> Set[str]:
943
loader = AutoWeightsLoader(self)
vllm/model_executor/models/minimax_text_01.py
-12
@@ -33,7 +33,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
33
from vllm.model_executor.layers.logits_processor import LogitsProcessor
34
from vllm.model_executor.layers.quantization.base_config import (
35
QuantizationConfig)
36
-from vllm.model_executor.layers.sampler import Sampler
36
from vllm.model_executor.layers.vocab_parallel_embedding import (
37
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
38
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -994,7 +993,6 @@ class MiniMaxText01ForCausalLM(nn.Module, HasInnerState, IsHybrid,
993
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
994
self.config.vocab_size)
995
997
- self.sampler = Sampler()
996
else:
997
self.lm_head = PPMissingLayer()
998
@@ -1030,16 +1028,6 @@ class MiniMaxText01ForCausalLM(nn.Module, HasInnerState, IsHybrid,
1028
1029
return logits
1030
1033
- def sample(
1034
- self,
1035
- logits: torch.Tensor,
1036
- sampling_metadata: SamplingMetadata,
1037
- ):
1038
-
1039
- next_tokens = self.sampler(logits, sampling_metadata)
1040
-
1041
- return next_tokens
1042
-
1031
def make_empty_intermediate_tensors(
1032
self, batch_size: int, dtype: torch.dtype,
1033
device: torch.device) -> IntermediateTensors:
vllm/model_executor/models/mistral3.py
-16
@@ -2,7 +2,6 @@
2
3
from abc import abstractmethod
4
from collections.abc import Iterable, Mapping, Sequence
5
-from functools import cached_property
5
from typing import (Final, Literal, Optional, Protocol, Set, Tuple, TypedDict,
6
TypeVar, Union)
7
@@ -19,7 +18,6 @@ from vllm.model_executor.layers.layernorm import RMSNorm
18
from vllm.model_executor.layers.linear import (ColumnParallelLinear,
19
RowParallelLinear)
20
from vllm.model_executor.layers.quantization import QuantizationConfig
22
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
21
from vllm.model_executor.sampling_metadata import SamplingMetadata
22
from vllm.multimodal import MULTIMODAL_REGISTRY
23
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -435,13 +433,6 @@ class Mistral3ForConditionalGeneration(nn.Module, SupportsMultiModal,
433
self.make_empty_intermediate_tensors = (
434
self.language_model.make_empty_intermediate_tensors)
435
438
- @cached_property
439
- def sampler(self):
440
- if hasattr(self.language_model, "sampler"):
441
- return self.language_model.sampler
442
-
443
- return get_sampler()
444
-
436
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
437
h = w = self.config.vision_config.image_size
438
expected_dims = (3, h, w)
@@ -598,13 +589,6 @@ class Mistral3ForConditionalGeneration(nn.Module, SupportsMultiModal,
589
return self.language_model.compute_logits(hidden_states,
590
sampling_metadata)
591
601
- def sample(
602
- self,
603
- logits: torch.Tensor,
604
- sampling_metadata: SamplingMetadata,
605
- ) -> Optional[SamplerOutput]:
606
- return self.language_model.sample(logits, sampling_metadata)
607
-
592
def load_weights(self, weights: Iterable[Tuple[str,
593
torch.Tensor]]) -> Set[str]:
594
loader = AutoWeightsLoader(self)
vllm/model_executor/models/mixtral.py
-10
@@ -40,7 +40,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
40
from vllm.model_executor.layers.logits_processor import LogitsProcessor
41
from vllm.model_executor.layers.quantization import QuantizationConfig
42
from vllm.model_executor.layers.rotary_embedding import get_rope
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.layers.vocab_parallel_embedding import (
44
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
45
from vllm.model_executor.model_loader.weight_utils import (
@@ -454,7 +453,6 @@ class MixtralForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
453
self.lm_head.weight = self.model.embed_tokens.weight
454
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
455
config.vocab_size)
457
- self.sampler = get_sampler()
456
self.make_empty_intermediate_tensors = (
457
self.model.make_empty_intermediate_tensors)
458
@@ -481,14 +479,6 @@ class MixtralForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
479
sampling_metadata)
480
return logits
481
484
- def sample(
485
- self,
486
- logits: Optional[torch.Tensor],
487
- sampling_metadata: SamplingMetadata,
488
- ) -> Optional[SamplerOutput]:
489
- next_tokens = self.sampler(logits, sampling_metadata)
490
- return next_tokens
491
-
482
def load_weights(self, weights: Iterable[Tuple[str,
483
torch.Tensor]]) -> Set[str]:
484
loader = AutoWeightsLoader(self, skip_prefixes=["rotary_emb.inv_freq"])
vllm/model_executor/models/mixtral_quant.py
-10
@@ -42,7 +42,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
42
from vllm.model_executor.layers.logits_processor import LogitsProcessor
43
from vllm.model_executor.layers.quantization import QuantizationConfig
44
from vllm.model_executor.layers.rotary_embedding import get_rope
45
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
45
from vllm.model_executor.layers.vocab_parallel_embedding import (
46
ParallelLMHead, VocabParallelEmbedding)
47
from vllm.model_executor.model_loader.weight_utils import (
@@ -372,7 +371,6 @@ class MixtralForCausalLM(nn.Module, SupportsPP):
371
if self.config.tie_word_embeddings:
372
self.lm_head.weight = self.model.embed_tokens.weight
373
self.logits_processor = LogitsProcessor(config.vocab_size)
375
- self.sampler = get_sampler()
374
self.make_empty_intermediate_tensors = (
375
self.model.make_empty_intermediate_tensors)
376
@@ -399,14 +397,6 @@ class MixtralForCausalLM(nn.Module, SupportsPP):
397
sampling_metadata)
398
return logits
399
402
- def sample(
403
- self,
404
- logits: Optional[torch.Tensor],
405
- sampling_metadata: SamplingMetadata,
406
- ) -> Optional[SamplerOutput]:
407
- next_tokens = self.sampler(logits, sampling_metadata)
408
- return next_tokens
409
-
400
def load_weights(self, weights: Iterable[Tuple[str,
401
torch.Tensor]]) -> Set[str]:
402
stacked_params_mapping = [
vllm/model_executor/models/mllama.py
-10
@@ -47,7 +47,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
47
RowParallelLinear)
48
from vllm.model_executor.layers.logits_processor import LogitsProcessor
49
from vllm.model_executor.layers.quantization import QuantizationConfig
50
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
50
from vllm.model_executor.layers.vocab_parallel_embedding import (
51
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
52
from vllm.model_executor.model_loader.weight_utils import (
@@ -1211,7 +1210,6 @@ class MllamaForConditionalGeneration(nn.Module, SupportsMultiModal,
1210
)
1211
self.logits_processor = LogitsProcessor(config.output_hidden_states,
1212
config.text_config.vocab_size)
1214
- self.sampler = get_sampler()
1213
1214
def compute_logits(
1215
self,
@@ -1222,14 +1220,6 @@ class MllamaForConditionalGeneration(nn.Module, SupportsMultiModal,
1220
hidden_states, sampling_metadata)
1221
return logits
1222
1225
- def sample(
1226
- self,
1227
- logits: torch.Tensor,
1228
- sampling_metadata: SamplingMetadata,
1229
- ) -> Optional[SamplerOutput]:
1230
- next_tokens = self.sampler(logits, sampling_metadata)
1231
- return next_tokens
1232
-
1223
def unpack_data(self,
1224
image_data: Union[List[torch.Tensor], torch.Tensor],
1225
padding_value=0) -> torch.Tensor:
vllm/model_executor/models/mllama4.py
-13
@@ -17,7 +17,6 @@
17
# limitations under the License.
18
import math
19
from collections.abc import Iterable, Mapping
20
-from functools import cached_property
20
from itertools import tee
21
from typing import List, Literal, Optional, Set, Tuple, TypedDict, Union
22
@@ -38,7 +37,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
37
RowParallelLinear)
38
from vllm.model_executor.layers.quantization import QuantizationConfig
39
from vllm.model_executor.layers.rotary_embedding import get_rope
41
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
40
from vllm.model_executor.model_loader.loader import _initialize_model
41
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
42
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -682,13 +680,6 @@ class Llama4ForConditionalGeneration(nn.Module, SupportsMultiModal,
680
self.make_empty_intermediate_tensors = (
681
self.language_model.make_empty_intermediate_tensors)
682
685
- @cached_property
686
- def sampler(self):
687
- if hasattr(self.language_model, "sampler"):
688
- return self.language_model.sampler
689
-
690
- return get_sampler()
691
-
683
def _parse_and_validate_image_input(
684
self, **kwargs: object) -> Optional[Llama4ImagePatchInputs]:
685
# num_images, 1, num_chunks, channel, image_size, image_size
@@ -785,10 +776,6 @@ class Llama4ForConditionalGeneration(nn.Module, SupportsMultiModal,
776
return self.language_model.compute_logits(hidden_states,
777
sampling_metadata)
778
788
- def sample(self, logits: torch.Tensor,
789
- sampling_metadata: SamplingMetadata) -> Optional[SamplerOutput]:
790
- return self.language_model.sample(logits, sampling_metadata)
791
-
779
def separate_weights(
780
self,
781
weights: Iterable[Tuple[str, torch.Tensor]],
vllm/model_executor/models/molmo.py
+1
-11
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
from vllm.model_executor.layers.logits_processor import LogitsProcessor
36
from vllm.model_executor.layers.quantization import QuantizationConfig
37
from vllm.model_executor.layers.rotary_embedding import get_rope
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -1394,7 +1393,6 @@ class MolmoForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA,
1393
1394
self.logits_processor = LogitsProcessor(config.embedding_size
1395
or config.vocab_size)
1397
- self.sampler = get_sampler()
1396
1397
self.make_empty_intermediate_tensors = (
1398
self.model.make_empty_intermediate_tensors)
@@ -1506,7 +1504,7 @@ class MolmoForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA,
1504
intermediate_tensors: Optional[IntermediateTensors] = None,
1505
inputs_embeds: Optional[torch.Tensor] = None,
1506
**kwargs: object,
1509
- ) -> SamplerOutput:
1507
+ ) -> torch.Tensor:
1508
1509
if intermediate_tensors is not None:
1510
inputs_embeds = None
@@ -1532,14 +1530,6 @@ class MolmoForCausalLM(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA,
1530
sampling_metadata)
1531
return logits
1532
1535
- def sample(
1536
- self,
1537
- logits: torch.Tensor,
1538
- sampling_metadata: SamplingMetadata,
1539
- ) -> Optional[SamplerOutput]:
1540
- next_tokens = self.sampler(logits, sampling_metadata)
1541
- return next_tokens
1542
-
1533
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
1534
1535
loader = AutoWeightsLoader(self)
vllm/model_executor/models/mpt.py
-10
@@ -18,7 +18,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
18
RowParallelLinear)
19
from vllm.model_executor.layers.logits_processor import LogitsProcessor
20
from vllm.model_executor.layers.quantization import QuantizationConfig
21
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
21
from vllm.model_executor.layers.vocab_parallel_embedding import (
22
VocabParallelEmbedding)
23
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -298,7 +297,6 @@ class MPTForCausalLM(nn.Module, SupportsPP):
297
prefix=maybe_prefix(prefix, "transformer"))
298
self.lm_head = self.transformer.wte
299
self.logits_processor = LogitsProcessor(config.vocab_size)
301
- self.sampler = get_sampler()
300
self.make_empty_intermediate_tensors = (
301
self.transformer.make_empty_intermediate_tensors)
302
@@ -325,14 +323,6 @@ class MPTForCausalLM(nn.Module, SupportsPP):
323
sampling_metadata)
324
return logits
325
328
- def sample(
329
- self,
330
- logits: torch.Tensor,
331
- sampling_metadata: SamplingMetadata,
332
- ) -> Optional[SamplerOutput]:
333
- next_tokens = self.sampler(logits, sampling_metadata)
334
- return next_tokens
335
-
326
def load_weights(self, weights: Iterable[Tuple[str,
327
torch.Tensor]]) -> Set[str]:
328
loader = AutoWeightsLoader(self)
vllm/model_executor/models/nemotron.py
-11
@@ -38,7 +38,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
38
from vllm.model_executor.layers.logits_processor import LogitsProcessor
39
from vllm.model_executor.layers.quantization import QuantizationConfig
40
from vllm.model_executor.layers.rotary_embedding import get_rope
41
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
41
from vllm.model_executor.layers.vocab_parallel_embedding import (
42
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
43
from vllm.model_executor.model_loader.weight_utils import (
@@ -416,8 +415,6 @@ class NemotronForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
415
else:
416
self.lm_head = PPMissingLayer()
417
419
- self.sampler = get_sampler()
420
-
418
self.make_empty_intermediate_tensors = (
419
self.model.make_empty_intermediate_tensors)
420
@@ -444,14 +441,6 @@ class NemotronForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
441
sampling_metadata)
442
return logits
443
447
- def sample(
448
- self,
449
- logits: torch.Tensor,
450
- sampling_metadata: SamplingMetadata,
451
- ) -> Optional[SamplerOutput]:
452
- next_tokens = self.sampler(logits, sampling_metadata)
453
- return next_tokens
454
-
444
def load_weights(self, weights: Iterable[Tuple[str,
445
torch.Tensor]]) -> Set[str]:
446
stacked_params_mapping = [
vllm/model_executor/models/nemotron_nas.py
-8
@@ -34,7 +34,6 @@ from vllm.distributed import get_pp_group
34
from vllm.model_executor.layers.layernorm import RMSNorm
35
from vllm.model_executor.layers.logits_processor import LogitsProcessor
36
from vllm.model_executor.layers.quantization import QuantizationConfig
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
37
from vllm.model_executor.layers.vocab_parallel_embedding import (
38
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
39
from vllm.model_executor.model_loader.weight_utils import (
@@ -408,8 +407,6 @@ class DeciLMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, HasNoOps):
407
else:
408
self.lm_head = PPMissingLayer()
409
411
- self.sampler = get_sampler()
412
-
410
self.make_empty_intermediate_tensors = (
411
self.model.make_empty_intermediate_tensors)
412
@@ -439,11 +436,6 @@ class DeciLMForCausalLM(nn.Module, SupportsLoRA, SupportsPP, HasNoOps):
436
sampling_metadata)
437
return logits
438
442
- def sample(self, logits: torch.Tensor,
443
- sampling_metadata: SamplingMetadata) -> Optional[SamplerOutput]:
444
- next_tokens = self.sampler(logits, sampling_metadata)
445
- return next_tokens
446
-
439
def load_weights(self, weights: Iterable[Tuple[str,
440
torch.Tensor]]) -> Set[str]:
441
loader = AutoWeightsLoader(
vllm/model_executor/models/olmo.py
-10
@@ -39,7 +39,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
39
from vllm.model_executor.layers.logits_processor import LogitsProcessor
40
from vllm.model_executor.layers.quantization import QuantizationConfig
41
from vllm.model_executor.layers.rotary_embedding import get_rope
42
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
42
from vllm.model_executor.layers.vocab_parallel_embedding import (
43
ParallelLMHead, VocabParallelEmbedding)
44
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -309,7 +308,6 @@ class OlmoForCausalLM(nn.Module, SupportsPP):
308
quant_config=quant_config,
309
)
310
self.logits_processor = LogitsProcessor(config.vocab_size)
312
- self.sampler = get_sampler()
311
self.make_empty_intermediate_tensors = (
312
self.model.make_empty_intermediate_tensors)
313
@@ -340,14 +338,6 @@ class OlmoForCausalLM(nn.Module, SupportsPP):
338
sampling_metadata)
339
return logits
340
343
- def sample(
344
- self,
345
- logits: torch.Tensor,
346
- sampling_metadata: SamplingMetadata,
347
- ) -> Optional[SamplerOutput]:
348
- next_tokens = self.sampler(logits, sampling_metadata)
349
- return next_tokens
350
-
341
def load_weights(self, weights: Iterable[Tuple[str,
342
torch.Tensor]]) -> Set[str]:
343
stacked_params_mapping = [
vllm/model_executor/models/olmo2.py
-10
@@ -42,7 +42,6 @@ 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 SamplerOutput, get_sampler
45
from vllm.model_executor.layers.vocab_parallel_embedding import (
46
ParallelLMHead, VocabParallelEmbedding)
47
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -339,7 +338,6 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP):
338
prefix=maybe_prefix(prefix, "lm_head"),
339
)
340
self.logits_processor = LogitsProcessor(config.vocab_size)
342
- self.sampler = get_sampler()
341
self.make_empty_intermediate_tensors = (
342
self.model.make_empty_intermediate_tensors)
343
@@ -367,14 +365,6 @@ class Olmo2ForCausalLM(nn.Module, SupportsPP):
365
sampling_metadata)
366
return logits
367
370
- def sample(
371
- self,
372
- logits: torch.Tensor,
373
- sampling_metadata: SamplingMetadata,
374
- ) -> Optional[SamplerOutput]:
375
- next_tokens = self.sampler(logits, sampling_metadata)
376
- return next_tokens
377
-
368
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
369
stacked_params_mapping = [
370
# (param_name, shard_name, shard_id)
vllm/model_executor/models/olmoe.py
-10
@@ -31,7 +31,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
31
from vllm.model_executor.layers.logits_processor import LogitsProcessor
32
from vllm.model_executor.layers.quantization import QuantizationConfig
33
from vllm.model_executor.layers.rotary_embedding import get_rope
34
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
34
from vllm.model_executor.layers.vocab_parallel_embedding import (
35
ParallelLMHead, VocabParallelEmbedding)
36
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -417,7 +416,6 @@ class OlmoeForCausalLM(nn.Module, SupportsPP):
416
config.hidden_size,
417
quant_config=quant_config)
418
self.logits_processor = LogitsProcessor(config.vocab_size)
420
- self.sampler = get_sampler()
419
420
self.make_empty_intermediate_tensors = (
421
self.model.make_empty_intermediate_tensors)
@@ -442,14 +440,6 @@ class OlmoeForCausalLM(nn.Module, SupportsPP):
440
sampling_metadata)
441
return logits
442
445
- def sample(
446
- self,
447
- logits: Optional[torch.Tensor],
448
- sampling_metadata: SamplingMetadata,
449
- ) -> Optional[SamplerOutput]:
450
- next_tokens = self.sampler(logits, sampling_metadata)
451
- return next_tokens
452
-
443
def load_weights(self, weights: Iterable[Tuple[str,
444
torch.Tensor]]) -> Set[str]:
445
loader = AutoWeightsLoader(
vllm/model_executor/models/opt.py
-10
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
RowParallelLinear)
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -375,7 +374,6 @@ class OPTForCausalLM(nn.Module, SupportsPP):
374
self.lm_head = ParallelLMHead(config.vocab_size,
375
config.word_embed_proj_dim)
376
self.logits_processor = LogitsProcessor(config.vocab_size)
378
- self.sampler = get_sampler()
377
self.make_empty_intermediate_tensors = (
378
self.model.make_empty_intermediate_tensors)
379
@@ -402,14 +400,6 @@ class OPTForCausalLM(nn.Module, SupportsPP):
400
sampling_metadata)
401
return logits
402
405
- def sample(
406
- self,
407
- logits: torch.Tensor,
408
- sampling_metadata: SamplingMetadata,
409
- ) -> Optional[SamplerOutput]:
410
- next_tokens = self.sampler(logits, sampling_metadata)
411
- return next_tokens
412
-
403
def load_weights(self, weights: Iterable[Tuple[str,
404
torch.Tensor]]) -> Set[str]:
405
loader = AutoWeightsLoader(
vllm/model_executor/models/orion.py
-10
@@ -22,7 +22,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
22
from vllm.model_executor.layers.logits_processor import LogitsProcessor
23
from vllm.model_executor.layers.quantization import QuantizationConfig
24
from vllm.model_executor.layers.rotary_embedding import get_rope
25
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
25
from vllm.model_executor.layers.vocab_parallel_embedding import (
26
ParallelLMHead, VocabParallelEmbedding)
27
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -316,7 +315,6 @@ class OrionForCausalLM(nn.Module, SupportsPP):
315
if self.config.tie_word_embeddings:
316
self.lm_head.weight = self.model.embed_tokens.weight
317
self.logits_processor = LogitsProcessor(config.vocab_size)
319
- self.sampler = get_sampler()
318
self.make_empty_intermediate_tensors = (
319
self.model.make_empty_intermediate_tensors)
320
@@ -343,14 +341,6 @@ class OrionForCausalLM(nn.Module, SupportsPP):
341
sampling_metadata)
342
return logits
343
346
- def sample(
347
- self,
348
- logits: torch.Tensor,
349
- sampling_metadata: SamplingMetadata,
350
- ) -> Optional[SamplerOutput]:
351
- next_tokens = self.sampler(logits, sampling_metadata)
352
- return next_tokens
353
-
344
def load_weights(self, weights: Iterable[Tuple[str,
345
torch.Tensor]]) -> Set[str]:
346
loader = AutoWeightsLoader(
vllm/model_executor/models/paligemma.py
+1
-13
@@ -8,7 +8,6 @@ from transformers import BatchFeature, PaliGemmaConfig
8
9
from vllm.config import VllmConfig
10
from vllm.logger import init_logger
11
-from vllm.model_executor.layers.sampler import SamplerOutput
11
from vllm.model_executor.sampling_metadata import SamplingMetadata
12
from vllm.multimodal import MULTIMODAL_REGISTRY
13
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -260,10 +259,6 @@ class PaliGemmaForConditionalGeneration(nn.Module, SupportsMultiModal,
259
self.make_empty_intermediate_tensors = (
260
self.language_model.make_empty_intermediate_tensors)
261
263
- @property
264
- def sampler(self):
265
- return self.language_model.sampler
266
-
262
def _validate_pixel_values(self, data: torch.Tensor) -> torch.Tensor:
263
h = w = self.config.vision_config.image_size
264
expected_dims = (3, h, w)
@@ -369,7 +364,7 @@ class PaliGemmaForConditionalGeneration(nn.Module, SupportsMultiModal,
364
positions: torch.Tensor,
365
intermediate_tensors: Optional[IntermediateTensors] = None,
366
inputs_embeds: Optional[torch.Tensor] = None,
372
- **kwargs: object) -> Union[SamplerOutput, IntermediateTensors]:
367
+ **kwargs: object) -> IntermediateTensors:
368
if intermediate_tensors is not None:
369
inputs_embeds = None
370
@@ -396,13 +391,6 @@ class PaliGemmaForConditionalGeneration(nn.Module, SupportsMultiModal,
391
return self.language_model.compute_logits(hidden_states,
392
sampling_metadata)
393
399
- def sample(
400
- self,
401
- logits: torch.Tensor,
402
- sampling_metadata: SamplingMetadata,
403
- ) -> Optional[SamplerOutput]:
404
- return self.language_model.sample(logits, sampling_metadata)
405
-
394
def load_weights(self, weights: Iterable[Tuple[str,
395
torch.Tensor]]) -> Set[str]:
396
loader = AutoWeightsLoader(self)
vllm/model_executor/models/persimmon.py
-10
@@ -38,7 +38,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
38
from vllm.model_executor.layers.logits_processor import LogitsProcessor
39
from vllm.model_executor.layers.quantization import QuantizationConfig
40
from vllm.model_executor.layers.rotary_embedding import get_rope
41
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
41
from vllm.model_executor.layers.vocab_parallel_embedding import (
42
ParallelLMHead, VocabParallelEmbedding)
43
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -306,7 +305,6 @@ class PersimmonForCausalLM(nn.Module, SupportsPP):
305
config.hidden_size,
306
bias=False)
307
self.logits_processor = LogitsProcessor(config.vocab_size)
309
- self.sampler = get_sampler()
308
self.make_empty_intermediate_tensors = (
309
self.model.make_empty_intermediate_tensors)
310
@@ -337,14 +335,6 @@ class PersimmonForCausalLM(nn.Module, SupportsPP):
335
sampling_metadata)
336
return logits
337
340
- def sample(
341
- self,
342
- logits: torch.Tensor,
343
- sampling_metadata: SamplingMetadata,
344
- ) -> Optional[SamplerOutput]:
345
- next_tokens = self.sampler(logits, sampling_metadata)
346
- return next_tokens
347
-
338
def load_weights(self, weights: Iterable[Tuple[str,
339
torch.Tensor]]) -> Set[str]:
340
loader = AutoWeightsLoader(self)
vllm/model_executor/models/phi.py
-10
@@ -53,7 +53,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
53
from vllm.model_executor.layers.logits_processor import LogitsProcessor
54
from vllm.model_executor.layers.quantization import QuantizationConfig
55
from vllm.model_executor.layers.rotary_embedding import get_rope
56
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
56
from vllm.model_executor.layers.vocab_parallel_embedding import (
57
ParallelLMHead, VocabParallelEmbedding)
58
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -322,7 +321,6 @@ class PhiForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
321
bias=True,
322
quant_config=quant_config)
323
self.logits_processor = LogitsProcessor(config.vocab_size)
325
- self.sampler = get_sampler()
324
self.make_empty_intermediate_tensors = (
325
self.model.make_empty_intermediate_tensors)
326
@@ -350,14 +348,6 @@ class PhiForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
348
sampling_metadata, self.lm_head.bias)
349
return logits
350
353
- def sample(
354
- self,
355
- logits: torch.Tensor,
356
- sampling_metadata: SamplingMetadata,
357
- ) -> Optional[SamplerOutput]:
358
- next_tokens = self.sampler(logits, sampling_metadata)
359
- return next_tokens
360
-
351
def load_weights(self, weights: Iterable[Tuple[str,
352
torch.Tensor]]) -> Set[str]:
353
loader = AutoWeightsLoader(self)
vllm/model_executor/models/phi3_small.py
+1
-12
@@ -17,7 +17,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
17
from vllm.model_executor.layers.logits_processor import LogitsProcessor
18
from vllm.model_executor.layers.quantization import QuantizationConfig
19
from vllm.model_executor.layers.rotary_embedding import get_rope
20
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
20
from vllm.model_executor.layers.vocab_parallel_embedding import (
21
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
22
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -396,7 +395,6 @@ class Phi3SmallForCausalLM(nn.Module, SupportsPP):
395
if self.config.tie_word_embeddings:
396
self.lm_head.weight = self.model.embed_tokens.weight
397
self.logits_processor = LogitsProcessor(config.vocab_size)
399
- self.sampler = get_sampler()
398
self.make_empty_intermediate_tensors = (
399
self.model.make_empty_intermediate_tensors)
400
@@ -437,6 +435,7 @@ class Phi3SmallForCausalLM(nn.Module, SupportsPP):
435
sampling_metadata)
436
if self.dummy_token_indices is not None and logits is not None:
437
logits.index_fill_(-1, self.dummy_token_indices, -torch.inf)
438
+ logits = logits / self.mup_width_multiplier
439
return logits
440
441
def forward(
@@ -455,16 +454,6 @@ class Phi3SmallForCausalLM(nn.Module, SupportsPP):
454
output_hidden_states = output_hidden_states
455
return output_hidden_states
456
458
- def sample(
459
- self,
460
- logits: torch.Tensor,
461
- sampling_metadata: SamplingMetadata,
462
- ) -> Optional[SamplerOutput]:
463
-
464
- next_tokens = self.sampler(logits / self.mup_width_multiplier,
465
- sampling_metadata)
466
- return next_tokens
467
-
457
def load_weights(self, weights: Iterable[Tuple[str,
458
torch.Tensor]]) -> Set[str]:
459
loader = AutoWeightsLoader(
vllm/model_executor/models/phi3v.py
-16
@@ -16,7 +16,6 @@
16
# limitations under the License.
17
import re
18
from collections.abc import Iterable, Mapping, Sequence
19
-from functools import cached_property
19
from typing import Any, List, Literal, Optional, Set, Tuple, TypedDict, Union
20
21
import torch
@@ -27,7 +26,6 @@ from transformers import (BatchFeature, CLIPVisionConfig, PretrainedConfig,
26
from vllm.config import VllmConfig
27
from vllm.logger import init_logger
28
from vllm.model_executor.layers.quantization import QuantizationConfig
30
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
29
from vllm.model_executor.layers.vocab_parallel_embedding import (
30
VocabParallelEmbedding)
31
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -555,13 +553,6 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP,
553
self.make_empty_intermediate_tensors = (
554
self.language_model.make_empty_intermediate_tensors)
555
558
- @cached_property
559
- def sampler(self):
560
- if hasattr(self.language_model, "sampler"):
561
- return self.language_model.sampler
562
-
563
- return get_sampler()
564
-
556
def _validate_image_sizes(self, data: torch.Tensor) -> torch.Tensor:
557
expected_dims = (2, )
558
@@ -716,13 +707,6 @@ class Phi3VForCausalLM(nn.Module, SupportsMultiModal, SupportsPP,
707
return self.language_model.compute_logits(hidden_states,
708
sampling_metadata)
709
719
- def sample(
720
- self,
721
- logits: torch.Tensor,
722
- sampling_metadata: SamplingMetadata,
723
- ) -> Optional[SamplerOutput]:
724
- return self.language_model.sample(logits, sampling_metadata)
725
-
710
def load_weights(self, weights: Iterable[Tuple[str,
711
torch.Tensor]]) -> Set[str]:
712
vllm/model_executor/models/phi4mm.py
-10
@@ -13,7 +13,6 @@ from vllm.config import VllmConfig
13
from vllm.distributed import get_pp_group
14
from vllm.model_executor.layers.logits_processor import LogitsProcessor
15
from vllm.model_executor.layers.quantization import QuantizationConfig
16
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
16
from vllm.model_executor.layers.vocab_parallel_embedding import (
17
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead)
18
from vllm.model_executor.models.llama import LlamaModel
@@ -968,7 +967,6 @@ class Phi4MMForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
967
logit_scale = getattr(config, "logit_scale", 1.0)
968
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
969
config.vocab_size, logit_scale)
971
- self.sampler = get_sampler()
970
971
def _parse_and_validate_audio_input(
972
self, **kwargs: object) -> Optional[Phi4MMAudioInputs]:
@@ -1244,14 +1242,6 @@ class Phi4MMForCausalLM(nn.Module, SupportsLoRA, SupportsMultiModal):
1242
sampling_metadata)
1243
return logits
1244
1247
- def sample(
1248
- self,
1249
- logits: torch.Tensor,
1250
- sampling_metadata: SamplingMetadata,
1251
- ) -> Optional[SamplerOutput]:
1252
- next_tokens = self.sampler(logits, sampling_metadata)
1253
- return next_tokens
1254
-
1245
def load_weights(self, weights: Iterable[Tuple[str,
1246
torch.Tensor]]) -> None:
1247
weights = ((name, data) for name, data in weights
vllm/model_executor/models/phimoe.py
-10
@@ -40,7 +40,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
40
from vllm.model_executor.layers.quantization.base_config import (
41
QuantizationConfig)
42
from vllm.model_executor.layers.rotary_embedding import get_rope
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.layers.vocab_parallel_embedding import (
44
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
45
from vllm.model_executor.model_loader.weight_utils import (
@@ -634,7 +633,6 @@ class PhiMoEForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
633
)
634
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
635
config.vocab_size)
637
- self.sampler = get_sampler()
636
637
self.make_empty_intermediate_tensors = (
638
self.model.make_empty_intermediate_tensors)
@@ -659,14 +657,6 @@ class PhiMoEForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
657
sampling_metadata)
658
return logits
659
662
- def sample(
663
- self,
664
- logits: Optional[torch.Tensor],
665
- sampling_metadata: SamplingMetadata,
666
- ) -> Optional[SamplerOutput]:
667
- next_tokens = self.sampler(logits, sampling_metadata)
668
- return next_tokens
669
-
660
def load_weights(self, weights: Iterable[Tuple[str,
661
torch.Tensor]]) -> Set[str]:
662
loader = AutoWeightsLoader(
vllm/model_executor/models/pixtral.py
-15
@@ -28,7 +28,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
28
QKVParallelLinear,
29
RowParallelLinear)
30
from vllm.model_executor.layers.quantization import QuantizationConfig
31
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
31
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
32
from vllm.model_executor.sampling_metadata import SamplingMetadata
33
from vllm.multimodal import MULTIMODAL_REGISTRY, MultiModalKwargs
@@ -331,13 +330,6 @@ class PixtralForConditionalGeneration(nn.Module, SupportsMultiModal,
330
self.make_empty_intermediate_tensors = (
331
self.language_model.make_empty_intermediate_tensors)
332
334
- @cached_property
335
- def sampler(self):
336
- if hasattr(self.language_model, "sampler"):
337
- return self.language_model.sampler
338
-
339
- return get_sampler()
340
-
333
def _parse_and_validate_image_input(
334
self, **kwargs: object) -> Optional[PixtralImagePixelInputs]:
335
images = kwargs.pop("images", None)
@@ -441,13 +433,6 @@ class PixtralForConditionalGeneration(nn.Module, SupportsMultiModal,
433
return self.language_model.compute_logits(hidden_states,
434
sampling_metadata)
435
444
- def sample(
445
- self,
446
- logits: torch.Tensor,
447
- sampling_metadata: SamplingMetadata,
448
- ) -> Optional[SamplerOutput]:
449
- return self.language_model.sample(logits, sampling_metadata)
450
-
436
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
437
438
def is_vision_encoder_weights(weight: Tuple[str, torch.Tensor]):
vllm/model_executor/models/plamo2.py
-10
@@ -24,7 +24,6 @@ from vllm.model_executor.layers.mamba.ops.mamba_ssm import (
24
selective_scan_fn, selective_state_update)
25
from vllm.model_executor.layers.quantization import QuantizationConfig
26
from vllm.model_executor.layers.rotary_embedding import get_rope
27
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
27
from vllm.model_executor.layers.vocab_parallel_embedding import (
28
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
29
from vllm.model_executor.model_loader.weight_utils import (
@@ -628,7 +627,6 @@ class Plamo2ForCausalLM(Plamo2PreTrainedModel, HasInnerState, IsHybrid,
627
628
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
629
self.config.vocab_size)
631
- self.sampler = get_sampler()
630
631
# Initialize weights and apply final processing
632
self.post_init()
@@ -684,14 +682,6 @@ class Plamo2ForCausalLM(Plamo2PreTrainedModel, HasInnerState, IsHybrid,
682
sampling_metadata)
683
return logits
684
687
- def sample(
688
- self,
689
- logits: Optional[torch.Tensor],
690
- sampling_metadata: SamplingMetadata,
691
- ) -> Optional[SamplerOutput]:
692
- next_tokens = self.sampler(logits, sampling_metadata)
693
- return next_tokens
694
-
685
def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]):
686
params_dict = dict(self.named_parameters())
687
for name, loaded_weight in weights:
vllm/model_executor/models/qwen.py
-10
@@ -24,7 +24,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
24
from vllm.model_executor.layers.logits_processor import LogitsProcessor
25
from vllm.model_executor.layers.quantization import QuantizationConfig
26
from vllm.model_executor.layers.rotary_embedding import get_rope
27
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
27
from vllm.model_executor.layers.vocab_parallel_embedding import (
28
ParallelLMHead, VocabParallelEmbedding)
29
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -273,7 +272,6 @@ class QWenBaseModel(nn.Module):
272
if self.config.tie_word_embeddings:
273
self.lm_head.weight = self.transformer.wte.weight
274
self.logits_processor = LogitsProcessor(config.vocab_size)
276
- self.sampler = get_sampler()
275
self.make_empty_intermediate_tensors = (
276
self.transformer.make_empty_intermediate_tensors)
277
@@ -286,14 +284,6 @@ class QWenBaseModel(nn.Module):
284
sampling_metadata)
285
return logits
286
289
- def sample(
290
- self,
291
- logits: torch.Tensor,
292
- sampling_metadata: SamplingMetadata,
293
- ) -> Optional[SamplerOutput]:
294
- next_tokens = self.sampler(logits, sampling_metadata)
295
- return next_tokens
296
-
287
def load_weights(self, weights: Iterable[Tuple[str,
288
torch.Tensor]]) -> Set[str]:
289
stacked_params_mapping = [
vllm/model_executor/models/qwen2.py
-10
@@ -43,7 +43,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
43
from vllm.model_executor.layers.pooler import Pooler, PoolingType
44
from vllm.model_executor.layers.quantization import QuantizationConfig
45
from vllm.model_executor.layers.rotary_embedding import get_rope
46
-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 (
@@ -450,7 +449,6 @@ class Qwen2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
449
self.lm_head = PPMissingLayer()
450
451
self.logits_processor = LogitsProcessor(config.vocab_size)
453
- self.sampler = get_sampler()
452
453
self.make_empty_intermediate_tensors = (
454
self.model.make_empty_intermediate_tensors)
@@ -478,14 +476,6 @@ class Qwen2ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
476
sampling_metadata)
477
return logits
478
481
- def sample(
482
- self,
483
- logits: torch.Tensor,
484
- sampling_metadata: SamplingMetadata,
485
- ) -> Optional[SamplerOutput]:
486
- next_tokens = self.sampler(logits, sampling_metadata)
487
- return next_tokens
488
-
479
def load_weights(self, weights: Iterable[Tuple[str,
480
torch.Tensor]]) -> Set[str]:
481
loader = AutoWeightsLoader(
vllm/model_executor/models/qwen2_5_omni_thinker.py
+1
-16
@@ -22,7 +22,7 @@
22
"""Inference-only Qwen2.5-Omni model (thinker part)."""
23
24
from copy import copy
25
-from functools import cached_property, partial
25
+from functools import partial
26
from typing import (Any, Dict, Iterable, List, Mapping, Optional, Sequence,
27
Set, Tuple, Union)
28
@@ -40,7 +40,6 @@ from transformers.models.whisper import WhisperFeatureExtractor
40
from vllm.config import VllmConfig
41
from vllm.logger import init_logger
42
from vllm.model_executor.layers.rotary_embedding import MRotaryEmbedding
43
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
43
from vllm.model_executor.models.qwen2_5_vl import (
44
Qwen2_5_VisionTransformer, Qwen2_5_VLImageEmbeddingInputs,
45
Qwen2_5_VLImageInputs, Qwen2_5_VLImagePixelInputs,
@@ -790,13 +789,6 @@ class Qwen2_5OmniThinkerForConditionalGeneration(
789
self.make_empty_intermediate_tensors = (
790
self.language_model.make_empty_intermediate_tensors)
791
793
- @cached_property
794
- def sampler(self):
795
- if hasattr(self.language_model, "sampler"):
796
- return self.language_model.sampler
797
-
798
- return get_sampler()
799
-
792
def _parse_and_validate_multimodal_inputs(self, **kwargs: object) -> dict:
793
mm_input_by_modality = {}
794
@@ -937,13 +929,6 @@ class Qwen2_5OmniThinkerForConditionalGeneration(
929
return self.language_model.compute_logits(hidden_states,
930
sampling_metadata)
931
940
- def sample(
941
- self,
942
- logits: torch.Tensor,
943
- sampling_metadata: SamplingMetadata,
944
- ) -> Optional[SamplerOutput]:
945
- return self.language_model.sample(logits, sampling_metadata)
946
-
932
def load_weights(self, weights: Iterable[Tuple[str,
933
torch.Tensor]]) -> Set[str]:
934
loader = AutoWeightsLoader(
vllm/model_executor/models/qwen2_5_vl.py
+1
-16
@@ -24,7 +24,7 @@
24
# See the License for the specific language governing permissions and
25
# limitations under the License.
26
"""Inference-only Qwen2.5-VL model compatible with HuggingFace weights."""
27
-from functools import cached_property, partial
27
+from functools import partial
28
from typing import (Callable, Iterable, List, Literal, Mapping, Optional, Set,
29
Tuple, TypedDict, Union)
30
@@ -51,7 +51,6 @@ from vllm.model_executor.layers.quantization import QuantizationConfig
51
from vllm.model_executor.layers.quantization.gptq import GPTQConfig
52
from vllm.model_executor.layers.quantization.gptq_marlin import (
53
GPTQMarlinConfig)
54
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
54
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
55
from vllm.model_executor.models.module_mapping import MultiModelKeys
56
from vllm.multimodal import MULTIMODAL_REGISTRY
@@ -833,13 +832,6 @@ class Qwen2_5_VLForConditionalGeneration(nn.Module, SupportsMultiModal,
832
self.make_empty_intermediate_tensors = (
833
self.language_model.make_empty_intermediate_tensors)
834
836
- @cached_property
837
- def sampler(self):
838
- if hasattr(self.language_model, "sampler"):
839
- return self.language_model.sampler
840
-
841
- return get_sampler()
842
-
835
def _maybe_ignore_quant_config(self, quant_config: QuantizationConfig):
836
# GPTQ configs do not have a list of ignored modules, however AutoGPTQ
837
# seems to avoid vision encoder sections for some models.
@@ -1127,13 +1119,6 @@ class Qwen2_5_VLForConditionalGeneration(nn.Module, SupportsMultiModal,
1119
return self.language_model.compute_logits(hidden_states,
1120
sampling_metadata)
1121
1130
- def sample(
1131
- self,
1132
- logits: torch.Tensor,
1133
- sampling_metadata: SamplingMetadata,
1134
- ) -> Optional[SamplerOutput]:
1135
- return self.language_model.sample(logits, sampling_metadata)
1136
-
1122
def load_weights(self, weights: Iterable[Tuple[str,
1123
torch.Tensor]]) -> Set[str]:
1124
vllm/model_executor/models/qwen2_audio.py
-16
@@ -22,7 +22,6 @@
22
# limitations under the License.
23
"""Inference-only Qwen2-Audio model compatible with HuggingFace weights."""
24
from collections.abc import Iterable, Mapping, Sequence
25
-from functools import cached_property
25
from typing import Any, Optional, Set, Tuple, TypedDict, Union
26
27
import torch
@@ -34,7 +33,6 @@ from transformers.models.qwen2_audio import (Qwen2AudioConfig,
33
from transformers.models.whisper import WhisperFeatureExtractor
34
35
from vllm.config import VllmConfig
37
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
36
from vllm.model_executor.sampling_metadata import SamplingMetadata
37
from vllm.multimodal import MULTIMODAL_REGISTRY
38
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -267,13 +265,6 @@ class Qwen2AudioForConditionalGeneration(nn.Module, SupportsMultiModal,
265
self.make_empty_intermediate_tensors = (
266
self.language_model.make_empty_intermediate_tensors)
267
270
- @cached_property
271
- def sampler(self):
272
- if hasattr(self.language_model, "sampler"):
273
- return self.language_model.sampler
274
-
275
- return get_sampler()
276
-
268
def _validate_and_reshape_mm_tensor(self, mm_input: object,
269
name: str) -> torch.Tensor:
270
if not isinstance(mm_input, (torch.Tensor, list)):
@@ -405,13 +396,6 @@ class Qwen2AudioForConditionalGeneration(nn.Module, SupportsMultiModal,
396
return self.language_model.compute_logits(hidden_states,
397
sampling_metadata)
398
408
- def sample(
409
- self,
410
- logits: torch.Tensor,
411
- sampling_metadata: SamplingMetadata,
412
- ) -> Optional[SamplerOutput]:
413
- return self.language_model.sample(logits, sampling_metadata)
414
-
399
def load_weights(self, weights: Iterable[Tuple[str,
400
torch.Tensor]]) -> Set[str]:
401
loader = AutoWeightsLoader(self)
vllm/model_executor/models/qwen2_moe.py
-10
@@ -47,7 +47,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
47
from vllm.model_executor.layers.logits_processor import LogitsProcessor
48
from vllm.model_executor.layers.quantization import QuantizationConfig
49
from vllm.model_executor.layers.rotary_embedding import get_rope
50
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
50
from vllm.model_executor.layers.vocab_parallel_embedding import (
51
ParallelLMHead, VocabParallelEmbedding)
52
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -497,7 +496,6 @@ class Qwen2MoeForCausalLM(nn.Module, SupportsPP):
496
if self.config.tie_word_embeddings:
497
self.lm_head.weight = self.model.embed_tokens.weight
498
self.logits_processor = LogitsProcessor(config.vocab_size)
500
- self.sampler = get_sampler()
499
self.make_empty_intermediate_tensors = (
500
self.model.make_empty_intermediate_tensors)
501
@@ -524,14 +522,6 @@ class Qwen2MoeForCausalLM(nn.Module, SupportsPP):
522
sampling_metadata)
523
return logits
524
527
- def sample(
528
- self,
529
- logits: Optional[torch.Tensor],
530
- sampling_metadata: SamplingMetadata,
531
- ) -> Optional[SamplerOutput]:
532
- next_tokens = self.sampler(logits, sampling_metadata)
533
- return next_tokens
534
-
525
def load_weights(self, weights: Iterable[Tuple[str,
526
torch.Tensor]]) -> Set[str]:
527
loader = AutoWeightsLoader(
vllm/model_executor/models/qwen2_vl.py
+1
-16
@@ -24,7 +24,7 @@
24
# limitations under the License.
25
"""Inference-only Qwen2-VL model compatible with HuggingFace weights."""
26
from collections.abc import Iterable, Mapping, Sequence
27
-from functools import cached_property, partial
27
+from functools import partial
28
from typing import (Any, Callable, Literal, Optional, Set, Tuple, TypedDict,
29
Union)
30
@@ -51,7 +51,6 @@ from vllm.model_executor.layers.quantization import QuantizationConfig
51
from vllm.model_executor.layers.quantization.gptq import GPTQConfig
52
from vllm.model_executor.layers.quantization.gptq_marlin import (
53
GPTQMarlinConfig)
54
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
54
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
55
from vllm.model_executor.models.module_mapping import MultiModelKeys
56
from vllm.multimodal import MULTIMODAL_REGISTRY
@@ -1112,13 +1111,6 @@ class Qwen2VLForConditionalGeneration(nn.Module, SupportsMultiModal,
1111
self.make_empty_intermediate_tensors = (
1112
self.language_model.make_empty_intermediate_tensors)
1113
1115
- @cached_property
1116
- def sampler(self):
1117
- if hasattr(self.language_model, "sampler"):
1118
- return self.language_model.sampler
1119
-
1120
- return get_sampler()
1121
-
1114
def _maybe_ignore_quant_config(self, quant_config: QuantizationConfig):
1115
# GPTQ configs do not have a list of ignored modules, however AutoGPTQ
1116
# seems to avoid vision encoder sections for some models.
@@ -1400,13 +1392,6 @@ class Qwen2VLForConditionalGeneration(nn.Module, SupportsMultiModal,
1392
return self.language_model.compute_logits(hidden_states,
1393
sampling_metadata)
1394
1403
- def sample(
1404
- self,
1405
- logits: torch.Tensor,
1406
- sampling_metadata: SamplingMetadata,
1407
- ) -> Optional[SamplerOutput]:
1408
- return self.language_model.sample(logits, sampling_metadata)
1409
-
1395
def load_weights(self, weights: Iterable[Tuple[str,
1396
torch.Tensor]]) -> Set[str]:
1397
vllm/model_executor/models/qwen3.py
-10
@@ -38,7 +38,6 @@ from vllm.model_executor.layers.linear import (QKVParallelLinear,
38
from vllm.model_executor.layers.logits_processor import LogitsProcessor
39
from vllm.model_executor.layers.quantization import QuantizationConfig
40
from vllm.model_executor.layers.rotary_embedding import get_rope
41
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
41
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
42
from vllm.model_executor.sampling_metadata import SamplingMetadata
43
from vllm.sequence import IntermediateTensors
@@ -283,7 +282,6 @@ class Qwen3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
282
self.lm_head = PPMissingLayer()
283
284
self.logits_processor = LogitsProcessor(config.vocab_size)
286
- self.sampler = get_sampler()
285
286
self.make_empty_intermediate_tensors = (
287
self.model.make_empty_intermediate_tensors)
@@ -311,14 +309,6 @@ class Qwen3ForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
309
sampling_metadata)
310
return logits
311
314
- def sample(
315
- self,
316
- logits: torch.Tensor,
317
- sampling_metadata: SamplingMetadata,
318
- ) -> Optional[SamplerOutput]:
319
- next_tokens = self.sampler(logits, sampling_metadata)
320
- return next_tokens
321
-
312
def load_weights(self, weights: Iterable[Tuple[str,
313
torch.Tensor]]) -> Set[str]:
314
loader = AutoWeightsLoader(
vllm/model_executor/models/qwen3_moe.py
-10
@@ -44,7 +44,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
44
from vllm.model_executor.layers.logits_processor import LogitsProcessor
45
from vllm.model_executor.layers.quantization import QuantizationConfig
46
from vllm.model_executor.layers.rotary_embedding import get_rope
47
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
47
from vllm.model_executor.layers.vocab_parallel_embedding import (
48
ParallelLMHead, VocabParallelEmbedding)
49
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -494,7 +493,6 @@ class Qwen3MoeForCausalLM(nn.Module, SupportsPP):
493
if self.config.tie_word_embeddings:
494
self.lm_head.weight = self.model.embed_tokens.weight
495
self.logits_processor = LogitsProcessor(config.vocab_size)
497
- self.sampler = get_sampler()
496
self.make_empty_intermediate_tensors = (
497
self.model.make_empty_intermediate_tensors)
498
@@ -521,14 +519,6 @@ class Qwen3MoeForCausalLM(nn.Module, SupportsPP):
519
sampling_metadata)
520
return logits
521
524
- def sample(
525
- self,
526
- logits: Optional[torch.Tensor],
527
- sampling_metadata: SamplingMetadata,
528
- ) -> Optional[SamplerOutput]:
529
- next_tokens = self.sampler(logits, sampling_metadata)
530
- return next_tokens
531
-
522
def load_weights(self, weights: Iterable[Tuple[str,
523
torch.Tensor]]) -> Set[str]:
524
loader = AutoWeightsLoader(
vllm/model_executor/models/skyworkr1v.py
+1
-17
@@ -8,7 +8,6 @@
8
# --------------------------------------------------------
9
from abc import ABC, abstractmethod
10
from collections.abc import Iterable, Mapping, Sequence
11
-from functools import cached_property
11
from typing import Literal, Optional, Set, Tuple, TypedDict, TypeVar, Union
12
13
import torch
@@ -21,7 +20,6 @@ from vllm.config import VllmConfig
20
from vllm.model_executor.layers.linear import ReplicatedLinear
21
from vllm.model_executor.layers.quantization import QuantizationConfig
22
from vllm.model_executor.layers.quantization.awq import AWQConfig
24
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
23
from vllm.model_executor.models.intern_vit import (InternVisionModel,
24
InternVisionPatchModel)
25
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -699,13 +697,6 @@ class SkyworkR1VChatModel(nn.Module, SupportsMultiModal, SupportsPP):
697
(llm_quant_config is not None):
698
quant_config.modules_to_not_convert.append("vision_model")
699
702
- @cached_property
703
- def sampler(self):
704
- if hasattr(self.language_model, "sampler"):
705
- return self.language_model.sampler
706
-
707
- return get_sampler()
708
-
700
def _init_vision_model(
701
self,
702
config: PretrainedConfig,
@@ -908,7 +899,7 @@ class SkyworkR1VChatModel(nn.Module, SupportsMultiModal, SupportsPP):
899
intermediate_tensors: Optional[IntermediateTensors] = None,
900
inputs_embeds: Optional[torch.Tensor] = None,
901
**kwargs: object,
911
- ) -> Union[SamplerOutput, IntermediateTensors]:
902
+ ) -> IntermediateTensors:
903
904
if intermediate_tensors is not None:
905
input_ids = None
@@ -946,13 +937,6 @@ class SkyworkR1VChatModel(nn.Module, SupportsMultiModal, SupportsPP):
937
return self.language_model.compute_logits(hidden_states,
938
sampling_metadata)
939
949
- def sample(
950
- self,
951
- logits: torch.Tensor,
952
- sampling_metadata: SamplingMetadata,
953
- ) -> Optional[SamplerOutput]:
954
- return self.language_model.sample(logits, sampling_metadata)
955
-
940
def load_weights(self, weights: Iterable[Tuple[str,
941
torch.Tensor]]) -> Set[str]:
942
skip_prefixes = [
vllm/model_executor/models/solar.py
-11
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
41
from vllm.model_executor.layers.logits_processor import LogitsProcessor
42
from vllm.model_executor.layers.quantization import QuantizationConfig
43
from vllm.model_executor.layers.rotary_embedding import get_rope
44
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
44
from vllm.model_executor.layers.vocab_parallel_embedding import (
45
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
46
from vllm.model_executor.model_loader.weight_utils import (
@@ -418,8 +417,6 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
417
else:
418
self.lm_head = PPMissingLayer()
419
421
- self.sampler = get_sampler()
422
-
420
self.make_empty_intermediate_tensors = (
421
self.model.make_empty_intermediate_tensors)
422
@@ -440,14 +437,6 @@ class SolarForCausalLM(nn.Module, SupportsLoRA, SupportsPP):
437
sampling_metadata)
438
return logits
439
443
- def sample(
444
- self,
445
- logits: torch.Tensor,
446
- sampling_metadata: SamplingMetadata,
447
- ) -> Optional[SamplerOutput]:
448
- next_tokens = self.sampler(logits, sampling_metadata)
449
- return next_tokens
450
-
440
def load_weights(self, weights: Iterable[Tuple[str,
441
torch.Tensor]]) -> Set[str]:
442
stacked_params_mapping = [
vllm/model_executor/models/stablelm.py
-10
@@ -36,7 +36,6 @@ from vllm.model_executor.layers.linear import (MergedColumnParallelLinear,
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
from vllm.model_executor.layers.rotary_embedding import get_rope
39
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
39
from vllm.model_executor.layers.vocab_parallel_embedding import (
40
ParallelLMHead, VocabParallelEmbedding)
41
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -310,7 +309,6 @@ class StablelmForCausalLM(nn.Module, SupportsPP):
309
if self.config.tie_word_embeddings:
310
self.lm_head.weight = self.model.embed_tokens.weight
311
self.logits_processor = LogitsProcessor(config.vocab_size)
313
- self.sampler = get_sampler()
312
self.make_empty_intermediate_tensors = (
313
self.model.make_empty_intermediate_tensors)
314
@@ -337,14 +335,6 @@ class StablelmForCausalLM(nn.Module, SupportsPP):
335
sampling_metadata)
336
return logits
337
340
- def sample(
341
- self,
342
- logits: torch.Tensor,
343
- sampling_metadata: SamplingMetadata,
344
- ) -> Optional[SamplerOutput]:
345
- next_tokens = self.sampler(logits, sampling_metadata)
346
- return next_tokens
347
-
338
def load_weights(self, weights: Iterable[Tuple[str,
339
torch.Tensor]]) -> Set[str]:
340
loader = AutoWeightsLoader(
vllm/model_executor/models/starcoder2.py
-10
@@ -36,7 +36,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
from vllm.model_executor.layers.rotary_embedding import get_rope
39
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
39
from vllm.model_executor.layers.vocab_parallel_embedding import (
40
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
41
from vllm.model_executor.model_loader.weight_utils import (
@@ -317,7 +316,6 @@ class Starcoder2ForCausalLM(nn.Module, SupportsPP):
316
)
317
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
318
config.vocab_size)
320
- self.sampler = get_sampler()
319
self.make_empty_intermediate_tensors = (
320
self.model.make_empty_intermediate_tensors)
321
@@ -344,14 +342,6 @@ class Starcoder2ForCausalLM(nn.Module, SupportsPP):
342
sampling_metadata)
343
return logits
344
347
- def sample(
348
- self,
349
- logits: Optional[torch.Tensor],
350
- sampling_metadata: SamplingMetadata,
351
- ) -> Optional[SamplerOutput]:
352
- next_tokens = self.sampler(logits, sampling_metadata)
353
- return next_tokens
354
-
345
def load_weights(self, weights: Iterable[Tuple[str,
346
torch.Tensor]]) -> Set[str]:
347
loader = AutoWeightsLoader(
vllm/model_executor/models/transformers.py
-9
@@ -35,7 +35,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
35
RowParallelLinear)
36
from vllm.model_executor.layers.logits_processor import LogitsProcessor
37
from vllm.model_executor.layers.quantization import QuantizationConfig
38
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
38
from vllm.model_executor.layers.vocab_parallel_embedding import (
39
ParallelLMHead, VocabParallelEmbedding)
40
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -396,8 +395,6 @@ class TransformersForCausalLM(nn.Module, SupportsQuant, SupportsLoRA,
395
else:
396
self.lm_head = PPMissingLayer()
397
399
- self.sampler = get_sampler()
400
-
398
self.make_empty_intermediate_tensors = (
399
self.model.make_empty_intermediate_tensors)
400
@@ -435,12 +432,6 @@ class TransformersForCausalLM(nn.Module, SupportsQuant, SupportsLoRA,
432
sampling_metadata)
433
return logits
434
438
- def sample(self, logits: torch.Tensor,
439
- sampling_metadata: SamplingMetadata) -> Optional[SamplerOutput]:
440
-
441
- next_tokens = self.sampler(logits, sampling_metadata)
442
- return next_tokens
443
-
435
def load_weights(self, weights: Iterable[tuple[str,
436
torch.Tensor]]) -> set[str]:
437
loader = AutoWeightsLoader(
vllm/model_executor/models/ultravox.py
-16
@@ -3,7 +3,6 @@
3
# Adapted from https://github.com/fixie-ai/ultravox/blob/ecd58c4041030bae2ad15aa6bcf04ab43199ea02/ultravox/model/ultravox_model.py
4
"""PyTorch Ultravox model."""
5
from collections.abc import Iterable, Mapping, Sequence
6
-from functools import cached_property
6
from typing import Any, Literal, Optional, Set, Tuple, TypedDict, Union
7
8
import torch
@@ -18,7 +17,6 @@ from vllm.config import VllmConfig
17
from vllm.forward_context import get_forward_context
18
from vllm.model_executor.layers.activation import MulAndSilu, get_act_fn
19
from vllm.model_executor.layers.layernorm import RMSNorm
21
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
20
from vllm.model_executor.model_loader.loader import DefaultModelLoader
21
from vllm.model_executor.models.module_mapping import MultiModelKeys
22
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -438,13 +436,6 @@ class UltravoxModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA):
436
self.make_empty_intermediate_tensors = (
437
self.language_model.make_empty_intermediate_tensors)
438
441
- @cached_property
442
- def sampler(self):
443
- if hasattr(self.language_model, "sampler"):
444
- return self.language_model.sampler
445
-
446
- return get_sampler()
447
-
439
def get_mm_mapping(self) -> MultiModelKeys:
440
"""
441
Get the module prefix in multimodal models
@@ -628,13 +619,6 @@ class UltravoxModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA):
619
return self.language_model.compute_logits(hidden_states,
620
sampling_metadata)
621
631
- def sample(
632
- self,
633
- logits: torch.Tensor,
634
- sampling_metadata: SamplingMetadata,
635
- ) -> Optional[SamplerOutput]:
636
- return self.language_model.sample(logits, sampling_metadata)
637
-
622
def load_weights(self, weights: Iterable[Tuple[str,
623
torch.Tensor]]) -> Set[str]:
624
vllm/model_executor/models/whisper.py
-10
@@ -21,7 +21,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
21
from vllm.model_executor.layers.logits_processor import LogitsProcessor
22
from vllm.model_executor.layers.quantization.base_config import (
23
QuantizationConfig)
24
-from vllm.model_executor.layers.sampler import Sampler, SamplerOutput
24
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
25
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
26
from vllm.model_executor.sampling_metadata import SamplingMetadata
@@ -669,7 +668,6 @@ class WhisperForConditionalGeneration(nn.Module, SupportsTranscription,
668
logit_scale = getattr(config, "logit_scale", 1.0)
669
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
670
config.vocab_size, logit_scale)
672
- self.sampler = Sampler()
671
672
def forward(
673
self,
@@ -724,14 +722,6 @@ class WhisperForConditionalGeneration(nn.Module, SupportsTranscription,
722
sampling_metadata)
723
return logits
724
727
- def sample(
728
- self,
729
- logits: torch.Tensor,
730
- sampling_metadata: SamplingMetadata,
731
- ) -> Optional[SamplerOutput]:
732
- next_tokens = self.sampler(logits, sampling_metadata)
733
- return next_tokens
734
-
725
def load_weights(self, weights: Iterable[Tuple[str,
726
torch.Tensor]]) -> Set[str]:
727
loader = AutoWeightsLoader(self, skip_prefixes=["proj_out."])
vllm/model_executor/models/zamba2.py
-19
@@ -31,7 +31,6 @@ from vllm.model_executor.layers.mamba.mamba_mixer2 import (
31
MambaMixer2, extra_groups_for_head_shards)
32
from vllm.model_executor.layers.quantization import QuantizationConfig
33
from vllm.model_executor.layers.rotary_embedding import get_rope
34
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
34
from vllm.model_executor.layers.vocab_parallel_embedding import (
35
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
36
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -870,7 +869,6 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsV0Only):
869
# Initialize logits processing and sampling
870
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
871
config.vocab_size)
873
- self.sampler = get_sampler()
872
873
def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor:
874
"""Convert input token IDs to embeddings.
@@ -1004,23 +1002,6 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid, SupportsV0Only):
1002
sampling_metadata)
1003
return logits
1004
1007
- def sample(
1008
- self,
1009
- logits: Optional[torch.Tensor],
1010
- sampling_metadata: SamplingMetadata,
1011
- ) -> Optional[SamplerOutput]:
1012
- """Sample next tokens from computed logits.
1013
-
1014
- Args:
1015
- logits: Computed logits for next token prediction
1016
- sampling_metadata: Metadata for sampling process
1017
-
1018
- Returns:
1019
- Sampled tokens and related sampling information
1020
- """
1021
- next_tokens = self.sampler(logits, sampling_metadata)
1022
- return next_tokens
1023
-
1005
def load_weights(self, weights: Iterable[Tuple[str,
1006
torch.Tensor]]) -> Set[str]:
1007
loader = AutoWeightsLoader(self)
vllm/spec_decode/draft_model_runner.py
+1
-1
@@ -295,7 +295,7 @@ class TP1DraftModelRunner(ModelRunnerWrapperBase):
295
if not self.is_driver_worker:
296
return []
297
# Sample the next token.
298
- output = self.model.sample(
298
+ output = self.model_runner.sampler(
299
logits=logits,
300
sampling_metadata=model_input.sampling_metadata,
301
)
vllm/spec_decode/multi_step_worker.py
+2
-3
@@ -50,11 +50,10 @@ class MultiStepWorker(ProposerWorkerBase, DelegateWorkerBase):
50
51
def set_include_gpu_probs_tensor(self) -> None:
52
# Need include_gpu_probs_tensor for MultiStepWorker
53
- self.model_runner.model.sampler.include_gpu_probs_tensor = True
53
+ self.model_runner.sampler.include_gpu_probs_tensor = True
54
55
def set_should_modify_greedy_probs_inplace(self) -> None:
56
- self.model_runner.model.sampler.should_modify_greedy_probs_inplace = (
57
- True)
56
+ self.model_runner.sampler.should_modify_greedy_probs_inplace = True
57
58
@torch.inference_mode()
59
def sampler_output(
vllm/spec_decode/spec_decode_worker.py
+2
-2
@@ -410,9 +410,9 @@ class SpecDecodeWorker(LoRANotSupportedWorkerBase):
410
NOTE(cade): This will require a special check if the proposer worker
411
does not have a sampler (e.g. ngram speculation).
412
"""
413
- (self.scorer_worker.model_runner.model.sampler.include_gpu_probs_tensor
413
+ (self.scorer_worker.model_runner.sampler.include_gpu_probs_tensor
414
) = True
415
- (self.scorer_worker.model_runner.model.sampler.
415
+ (self.scorer_worker.model_runner.sampler.
416
should_modify_greedy_probs_inplace) = True
417
self.proposer_worker.set_include_gpu_probs_tensor()
418
self.proposer_worker.set_should_modify_greedy_probs_inplace()
vllm/v1/worker/gpu_model_runner.py
+10
-6
@@ -38,6 +38,7 @@ from vllm.v1.outputs import (EMPTY_MODEL_RUNNER_OUTPUT, LogprobsTensors,
38
ModelRunnerOutput)
39
from vllm.v1.sample.metadata import SamplingMetadata
40
from vllm.v1.sample.rejection_sampler import RejectionSampler
41
+from vllm.v1.sample.sampler import Sampler
42
from vllm.v1.spec_decode.eagle import EagleProposer
43
from vllm.v1.spec_decode.metadata import SpecDecodeMetadata
44
from vllm.v1.spec_decode.ngram_proposer import NgramProposer
@@ -153,6 +154,9 @@ class GPUModelRunner(LoRAModelRunnerMixin):
154
self.max_num_encoder_input_tokens = encoder_compute_budget
155
self.encoder_cache_size = encoder_cache_size
156
157
+ # Sampler
158
+ self.sampler = Sampler()
159
+
160
# Lazy initialization
161
# self.model: nn.Module # Set after load_model
162
self.kv_caches: list[torch.Tensor] = []
@@ -1096,7 +1100,7 @@ class GPUModelRunner(LoRAModelRunnerMixin):
1100
# Sample the next token and get logprobs if needed.
1101
sampling_metadata = self.input_batch.sampling_metadata
1102
if spec_decode_metadata is None:
1099
- sampler_output = self.model.sample(
1103
+ sampler_output = self.sampler(
1104
logits=logits,
1105
sampling_metadata=sampling_metadata,
1106
)
@@ -1106,7 +1110,7 @@ class GPUModelRunner(LoRAModelRunnerMixin):
1110
# logits tensor. This means any in-place operations on bonus_logits
1111
# won't affect the original logits tensor.
1112
bonus_logits = logits[spec_decode_metadata.bonus_logits_indices]
1109
- sampler_output = self.model.sample(
1113
+ sampler_output = self.sampler(
1114
logits=bonus_logits,
1115
sampling_metadata=sampling_metadata,
1116
)
@@ -1383,8 +1387,8 @@ class GPUModelRunner(LoRAModelRunnerMixin):
1387
tgt_token_ids = prompt_token_ids[start_tok:start_tok + num_logits]
1388
1389
# Compute prompt logprobs.
1386
- logprobs = self.model.sampler.compute_logprobs(logits)
1387
- token_ids, logprobs, ranks = self.model.sampler.gather_logprobs(
1390
+ logprobs = self.sampler.compute_logprobs(logits)
1391
+ token_ids, logprobs, ranks = self.sampler.gather_logprobs(
1392
logprobs, num_prompt_logprobs, tgt_token_ids)
1393
1394
# Transfer GPU->CPU async.
@@ -1502,8 +1506,8 @@ class GPUModelRunner(LoRAModelRunnerMixin):
1506
bad_words_token_ids={},
1507
)
1508
try:
1505
- sampler_output = self.model.sample(
1506
- logits=logits, sampling_metadata=dummy_metadata)
1509
+ sampler_output = self.sampler(logits=logits,
1510
+ sampling_metadata=dummy_metadata)
1511
except RuntimeError as e:
1512
if 'out of memory' in str(e):
1513
raise RuntimeError(
vllm/worker/cpu_enc_dec_model_runner.py
+1
-1
@@ -316,7 +316,7 @@ class CPUEncoderDecoderModelRunner(
316
return []
317
318
# Sample the next token.
319
- output = self.model.sample(
319
+ output = self.sampler(
320
logits=logits,
321
sampling_metadata=model_input.sampling_metadata,
322
)
vllm/worker/cpu_model_runner.py
+3
-7
@@ -19,7 +19,7 @@ from vllm.lora.request import LoRARequest
19
from vllm.lora.worker_manager import LRUCacheWorkerLoRAManager
20
from vllm.model_executor import SamplingMetadata
21
from vllm.model_executor.layers.rotary_embedding import MRotaryEmbedding
22
-from vllm.model_executor.layers.sampler import SamplerOutput
22
+from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
23
from vllm.model_executor.model_loader import get_model
24
from vllm.model_executor.models import supports_lora, supports_multimodal
25
from vllm.multimodal import (MULTIMODAL_REGISTRY, BatchedTensorInputs,
@@ -490,6 +490,7 @@ class CPUModelRunnerBase(ModelRunnerBase[TModelInputForCPU]):
490
self.model: nn.Module # Set after init_Model
491
# Set after load_model.
492
self.lora_manager: Optional[LRUCacheWorkerLoRAManager] = None
493
+ self.sampler = get_sampler()
494
495
if hasattr(self, "_builder_cls"):
496
# multi-step model runner does not have `_builder_cls`
@@ -545,11 +546,6 @@ class CPUModelRunnerBase(ModelRunnerBase[TModelInputForCPU]):
546
547
return self.builder.build() # type: ignore
548
548
- # sampler property will be used by spec_decode_worker
549
- @property
550
- def sampler(self):
551
- return self.model.sampler
552
-
549
@property
550
def vocab_size(self) -> int:
551
return self.model_config.get_vocab_size()
@@ -677,7 +673,7 @@ class CPUModelRunner(CPUModelRunnerBase[ModelInputForCPUWithSamplingMetadata]):
673
return []
674
675
# Sample the next token.
680
- output = self.model.sample(
676
+ output = self.sampler(
677
logits=logits,
678
sampling_metadata=model_input.sampling_metadata,
679
)
vllm/worker/enc_dec_model_runner.py
+1
-1
@@ -205,7 +205,7 @@ class EncoderDecoderModelRunner(GPUModelRunnerBase[EncoderDecoderModelInput]):
205
model_input.async_callback()
206
207
# Sample the next token.
208
- output: SamplerOutput = self.model.sample(
208
+ output: SamplerOutput = self.sampler(
209
logits=logits,
210
sampling_metadata=model_input.sampling_metadata,
211
)
vllm/worker/hpu_model_runner.py
+4
-3
@@ -41,7 +41,7 @@ from vllm.lora.request import LoRARequest
41
from vllm.lora.worker_manager import LRUCacheWorkerLoRAManager
42
from vllm.model_executor import SamplingMetadata
43
from vllm.model_executor.layers.layernorm import RMSNorm
44
-from vllm.model_executor.layers.sampler import SamplerOutput
44
+from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
45
from vllm.model_executor.layers.vocab_parallel_embedding import (
46
VocabParallelEmbedding)
47
from vllm.model_executor.model_loader import get_model
@@ -316,6 +316,7 @@ class HpuModelAdapter:
316
317
def __init__(self, model, vllm_config):
318
self.model = model
319
+ self.sampler = get_sampler()
320
self.prefill_use_fusedsdpa = os.getenv('VLLM_PROMPT_USE_FUSEDSDPA',
321
'0').lower() in ['1', 'true']
322
self.vllm_config = vllm_config
@@ -454,7 +455,7 @@ class HpuModelAdapter:
455
return self.model.compute_logits(*args, **kwargs)
456
457
def sample(self, *args, **kwargs):
457
- return self.model.sample(*args, **kwargs)
458
+ return self.sampler(*args, **kwargs)
459
460
461
class PreparePromptMetadata(NamedTuple):
@@ -2167,7 +2168,7 @@ class HPUModelRunner(HPUModelRunnerBase[ModelInputForHPUWithSamplingMetadata]):
2168
# in case of multi-step scheduling
2169
# we only want to pythonize in the last step
2170
sampling_metadata.skip_sampler_cpu_output = True
2170
- self.model.model.sampler.include_gpu_probs_tensor = True
2171
+ self.model.sampler.include_gpu_probs_tensor = True
2172
cache_orig_output_tokens_len: List[Dict] = []
2173
2174
def try_revert_dummy_output_tokens():
vllm/worker/model_runner.py
+3
-2
@@ -35,7 +35,7 @@ from vllm.lora.request import LoRARequest
35
from vllm.lora.worker_manager import LRUCacheWorkerLoRAManager
36
from vllm.model_executor import SamplingMetadata, SamplingMetadataCache
37
from vllm.model_executor.layers.rotary_embedding import MRotaryEmbedding
38
-from vllm.model_executor.layers.sampler import SamplerOutput
38
+from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
39
from vllm.model_executor.model_loader import get_model
40
from vllm.model_executor.model_loader.tensorizer import TensorizerConfig
41
from vllm.model_executor.models import supports_lora, supports_multimodal
@@ -1094,6 +1094,7 @@ class GPUModelRunnerBase(ModelRunnerBase[TModelInputForGPU]):
1094
# Set after load_model.
1095
self.lora_manager: Optional[LRUCacheWorkerLoRAManager] = None
1096
self.prompt_adapter_manager: LRUCacheWorkerPromptAdapterManager = None
1097
+ self.sampler = get_sampler()
1098
1099
set_cpu_offload_max_bytes(
1100
int(self.cache_config.cpu_offload_gb * 1024**3))
@@ -1832,7 +1833,7 @@ class ModelRunner(GPUModelRunnerBase[ModelInputForGPUWithSamplingMetadata]):
1833
model_input.async_callback()
1834
1835
# Sample the next token.
1835
- output: SamplerOutput = self.model.sample(
1836
+ output: SamplerOutput = self.sampler(
1837
logits=logits,
1838
sampling_metadata=model_input.sampling_metadata,
1839
)
vllm/worker/multi_step_model_runner.py
+1
-2
@@ -488,8 +488,7 @@ class MultiStepModelRunner(GPUModelRunnerBase[StatefulModelInput]):
488
device="cpu",
489
pin_memory=True)
490
491
- self._base_model_runner.model.sampler.include_gpu_probs_tensor = (
492
- True)
491
+ self._base_model_runner.sampler.include_gpu_probs_tensor = True
492
if frozen_model_input.sampling_metadata:
493
frozen_model_input.sampling_metadata.skip_sampler_cpu_output = (
494
True)
vllm/worker/xpu_model_runner.py
+3
-2
@@ -18,7 +18,7 @@ from vllm.forward_context import set_forward_context
18
from vllm.inputs import INPUT_REGISTRY, InputRegistry
19
from vllm.logger import init_logger
20
from vllm.model_executor import SamplingMetadataCache
21
-from vllm.model_executor.layers.sampler import SamplerOutput
21
+from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
22
from vllm.model_executor.model_loader import get_model
23
from vllm.multimodal import (MULTIMODAL_REGISTRY, BatchedTensorInputs,
24
MultiModalKwargs, MultiModalPlaceholderMap,
@@ -410,6 +410,7 @@ class XPUModelRunner(ModelRunnerBase[ModelInputForXPUWithSamplingMetadata]):
410
411
# Lazy initialization.
412
self.model: nn.Module # Set after init_Model
413
+ self.sampler = get_sampler()
414
415
self.sampling_metadata_cache: SamplingMetadataCache = \
416
SamplingMetadataCache() \
@@ -596,7 +597,7 @@ class XPUModelRunner(ModelRunnerBase[ModelInputForXPUWithSamplingMetadata]):
597
model_input.async_callback()
598
599
# Sample the next token.
599
- output: SamplerOutput = self.model.sample(
600
+ output: SamplerOutput = self.sampler(
601
logits=logits,
602
sampling_metadata=model_input.sampling_metadata,
603
)