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 14, 05:30 UTC
[Chore] Remove unused sampler in models (#25324)
Signed-off-by: Woosuk Kwon <woosuk.kwon@berkeley.edu>
Woosuk Kwon committed
Sep 20, 2025 at 19:53 UTC
572ddf83ce1fe8d52670e01a7a6cc0d8a99fa90c
5 files changed
-49
tests/lora/conftest.py
-3
@@ -17,7 +17,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
17
MergedColumnParallelLinear,
18
RowParallelLinear)
19
from vllm.model_executor.layers.logits_processor import LogitsProcessor
20
-from vllm.model_executor.layers.sampler import Sampler
20
from vllm.model_executor.layers.vocab_parallel_embedding import ParallelLMHead
21
from vllm.model_executor.models.interfaces import SupportsLoRA
22
from vllm.platforms import current_platform
@@ -97,7 +96,6 @@ def dummy_model() -> nn.Module:
96
# Special handling for lm_head & sampler
97
("lm_head", ParallelLMHead(512, 10)),
98
("logits_processor", LogitsProcessor(512)),
100
- ("sampler", Sampler())
99
]))
100
model.config = MagicMock()
101
model.embedding_modules = {"lm_head": "lm_head"}
@@ -125,7 +123,6 @@ def dummy_model_gate_up() -> nn.Module:
123
# Special handling for lm_head & sampler
124
("lm_head", ParallelLMHead(512, 10)),
125
("logits_processor", LogitsProcessor(512)),
128
- ("sampler", Sampler())
126
]))
127
model.config = MagicMock()
128
model.packed_modules_mapping = {
vllm/model_executor/models/ernie_mtp.py
-10
@@ -33,7 +33,6 @@ from vllm.config import CacheConfig, ModelConfig, VllmConfig
33
from vllm.model_executor.layers.layernorm import RMSNorm
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.sampler import SamplerOutput, get_sampler
36
from vllm.model_executor.layers.vocab_parallel_embedding import (
37
ParallelLMHead, VocabParallelEmbedding)
38
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -160,7 +159,6 @@ class ErnieMTP(nn.Module, SupportsPP):
159
self.lm_head = ParallelLMHead(self.config.vocab_size,
160
self.config.hidden_size,
161
prefix=maybe_prefix(prefix, "lm_head"))
163
- self.sampler = get_sampler()
162
163
if self.config.tie_word_embeddings:
164
self.lm_head.weight = self.model.embed_tokens.weight
@@ -188,14 +186,6 @@ class ErnieMTP(nn.Module, SupportsPP):
186
return self.model.compute_logits(hidden_states, self.lm_head,
187
sampling_metadata, spec_step_idx)
188
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
-
189
def load_weights(self, weights: Iterable[tuple[str,
190
torch.Tensor]]) -> set[str]:
191
stacked_params_mapping = [
vllm/model_executor/models/plamo2.py
-10
@@ -41,7 +41,6 @@ from vllm.model_executor.layers.mamba.ops.ssd_combined import (
41
mamba_chunk_scan_combined)
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 (
@@ -932,7 +931,6 @@ class Plamo2ForCausalLM(torch.nn.Module, HasInnerState, SupportsPP, IsHybrid):
931
932
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
933
self.config.vocab_size)
935
- self.sampler = get_sampler()
934
self.make_empty_intermediate_tensors = (
935
self.model.make_empty_intermediate_tensors)
936
@@ -1030,14 +1028,6 @@ class Plamo2ForCausalLM(torch.nn.Module, HasInnerState, SupportsPP, IsHybrid):
1028
sampling_metadata)
1029
return logits
1030
1033
- def sample(
1034
- self,
1035
- logits: Optional[torch.Tensor],
1036
- sampling_metadata: SamplingMetadata,
1037
- ) -> Optional[SamplerOutput]:
1038
- next_tokens = self.sampler(logits, sampling_metadata)
1039
- return next_tokens
1040
-
1031
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
1032
params_dict = dict(self.named_parameters())
1033
for name, loaded_weight in weights:
vllm/model_executor/models/step3_text.py
-10
@@ -26,7 +26,6 @@ from vllm.model_executor.layers.logits_processor import LogitsProcessor
26
from vllm.model_executor.layers.quantization.base_config import (
27
QuantizationConfig)
28
from vllm.model_executor.layers.rotary_embedding import get_rope
29
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
29
from vllm.model_executor.layers.vocab_parallel_embedding import (
30
DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding)
31
from vllm.model_executor.model_loader.weight_utils import default_weight_loader
@@ -391,7 +390,6 @@ class Step3TextForCausalLM(nn.Module, SupportsPP):
390
)
391
self.logits_processor = LogitsProcessor(self.unpadded_vocab_size,
392
config.vocab_size)
394
- self.sampler = get_sampler()
393
else:
394
self.lm_head = PPMissingLayer()
395
@@ -413,14 +411,6 @@ class Step3TextForCausalLM(nn.Module, SupportsPP):
411
sampling_metadata)
412
return logits
413
416
- def sample(
417
- self,
418
- logits: Optional[torch.Tensor],
419
- sampling_metadata: SamplingMetadata,
420
- ) -> Optional[SamplerOutput]:
421
- next_tokens = self.sampler(logits, sampling_metadata)
422
- return next_tokens
423
-
414
def load_weights(self, weights: Iterable[tuple[str,
415
torch.Tensor]]) -> set[str]:
416
qkv_params_mapping = [
vllm/model_executor/models/step3_vl.py
-16
@@ -2,7 +2,6 @@
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
import math
4
from collections.abc import Iterable, Mapping, Sequence
5
-from functools import cached_property
5
from itertools import product
6
from math import ceil, sqrt
7
from typing import Any, Literal, Optional, TypedDict, Union
@@ -24,7 +23,6 @@ from vllm.model_executor.layers.linear import (ColumnParallelLinear,
23
QKVParallelLinear,
24
RowParallelLinear)
25
from vllm.model_executor.layers.quantization import QuantizationConfig
27
-from vllm.model_executor.layers.sampler import SamplerOutput, get_sampler
26
from vllm.model_executor.sampling_metadata import SamplingMetadata
27
from vllm.multimodal import MULTIMODAL_REGISTRY
28
from vllm.multimodal.inputs import (MultiModalDataDict, MultiModalFieldConfig,
@@ -897,13 +895,6 @@ class Step3VLForConditionalGeneration(nn.Module, SupportsMultiModal,
895
self.make_empty_intermediate_tensors = (
896
self.language_model.make_empty_intermediate_tensors)
897
900
- @cached_property
901
- def sampler(self):
902
- if hasattr(self.language_model, "sampler"):
903
- return self.language_model.sampler
904
-
905
- return get_sampler()
906
-
898
@property
899
def device(self):
900
return next(self.parameters()).device
@@ -1069,13 +1060,6 @@ class Step3VLForConditionalGeneration(nn.Module, SupportsMultiModal,
1060
return self.language_model.compute_logits(hidden_states,
1061
sampling_metadata)
1062
1072
- def sample(
1073
- self,
1074
- logits: torch.Tensor,
1075
- sampling_metadata: SamplingMetadata,
1076
- ) -> Optional[SamplerOutput]:
1077
- return self.language_model.sample(logits, sampling_metadata)
1078
-
1063
def load_weights(self, weights: Iterable[tuple[str, torch.Tensor]]):
1064
1065
skip_prefixes = []