@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 11cec296dd
Fork 0

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

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

Synced Nov 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 (