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 10, 11:30 UTC
[BugFix] Add spec-decode-incompatible request param validation (#31982)
Signed-off-by: Nick Hill <nickhill123@gmail.com>
Nick Hill committed
Jan 8, 2026 at 16:08 UTC
11cec296dd47bbb25c3bb4e40bcc11341d6a2fe2
2 files changed
+12
-3
tests/v1/distributed/test_eagle_dp.py
-1
@@ -51,7 +51,6 @@ async def test_run_eagle_dp(monkeypatch: pytest.MonkeyPatch):
51
# https://github.com/vllm-project/vllm/issues/31913
52
num_expected_tokens = 20
53
sampling_params = SamplingParams(
54
- min_tokens=num_expected_tokens,
54
max_tokens=num_expected_tokens,
55
ignore_eos=True,
56
output_kind=RequestOutputKind.FINAL_ONLY,
vllm/v1/engine/input_processor.py
+12
-2
@@ -19,7 +19,7 @@ from vllm.multimodal.parse import MultiModalDataParser
19
from vllm.multimodal.processing import EncDecMultiModalProcessor, set_request_id
20
from vllm.multimodal.utils import argsort_mm_positions
21
from vllm.pooling_params import PoolingParams
22
-from vllm.sampling_params import SamplingParams
22
+from vllm.sampling_params import _SAMPLING_EPS, SamplingParams
23
from vllm.tokenizers import TokenizerLike
24
from vllm.tokenizers.mistral import MistralTokenizer
25
from vllm.utils import length_from_prompt_token_ids_or_embeds, random_uuid
@@ -153,8 +153,18 @@ class InputProcessor:
153
# Logits processors not supported.
154
if params.logits_processors:
155
raise ValueError(
156
- "vLLM V1 does not support per request user provided logits processors."
156
+ "vLLM V1 does not support per request user-provided logits processors."
157
)
158
+
159
+ # Some sampling parameters are not yet compatible with spec decoding.
160
+ if self.vllm_config.speculative_config is not None and (
161
+ params.min_tokens > 1 or params.min_p > _SAMPLING_EPS or params.logit_bias
162
+ ):
163
+ raise ValueError(
164
+ "The min_tokens, min_p, and logit_bias sampling parameters "
165
+ "are not yet supported with speculative decoding."
166
+ )
167
+
168
# Async scheduling + spec decode currently incompatible with some
169
# sampling parameters.
170
if (