@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 313ae8c16a
Fork 0

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

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

Synced Nov 15, 02:15 UTC

[Deprecation] Remove everything scheduled for removal in v0.10.0 (#20979)

Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>

Harry Mellor committed Jul 15, 2025 at 16:57 UTC 313ae8c16a86a5e7922d17c9adf7b4aadbe28904
8 files changed +2 -120
docs/features/tool_calling.md
+1 -3
@@ -103,9 +103,7 @@ When tool_choice='required' is set, the model is guaranteed to generate one or m
103
104 vLLM supports the `tool_choice='none'` option in the chat completion API. When this option is set, the model will not generate any tool calls and will respond with regular text content only, even if tools are defined in the request.
105
106 -By default, when `tool_choice='none'` is specified, vLLM excludes tool definitions from the prompt to optimize context usage. To include tool definitions even with `tool_choice='none'`, use the `--expand-tools-even-if-tool-choice-none` option.
107 -
108 -Note: This behavior will change in v0.10.0, where tool definitions will be included by default even with `tool_choice='none'`.
106 +However, when `tool_choice='none'` is specified, vLLM includes tool definitions from the prompt.
107
108 ## Automatic Function Calling
109
vllm/config.py
+1 -34
@@ -26,7 +26,7 @@ from pydantic import (ConfigDict, SkipValidation, TypeAdapter, field_validator,
26 from pydantic.dataclasses import dataclass
27 from safetensors.torch import _TYPES as _SAFETENSORS_TO_TORCH_DTYPE
28 from torch.distributed import ProcessGroup, ReduceOp
29 -from typing_extensions import Self, deprecated, runtime_checkable
29 +from typing_extensions import Self, runtime_checkable
30
31 import vllm.envs as envs
32 from vllm import version
@@ -3659,18 +3659,6 @@ GuidedDecodingBackend = Literal[GuidedDecodingBackendV0,
3659 class DecodingConfig:
3660 """Dataclass which contains the decoding strategy of the engine."""
3661
3662 - @property
3663 - @deprecated(
3664 - "`guided_decoding_backend` is deprecated and has been renamed to "
3665 - "`backend`. This will be removed in v0.10.0. Please use the "
3666 - "`backend` argument instead.")
3667 - def guided_decoding_backend(self) -> GuidedDecodingBackend:
3668 - return self.backend
3669 -
3670 - @guided_decoding_backend.setter
3671 - def guided_decoding_backend(self, value: GuidedDecodingBackend):
3672 - self.backend = value
3673 -
3662 backend: GuidedDecodingBackend = "auto" if envs.VLLM_USE_V1 else "xgrammar"
3663 """Which engine will be used for guided decoding (JSON schema / regex etc)
3664 by default. With "auto", we will make opinionated choices based on request
@@ -3713,9 +3701,6 @@ class DecodingConfig:
3701 return hash_str
3702
3703 def __post_init__(self):
3716 - if ":" in self.backend:
3717 - self._extract_backend_options()
3718 -
3704 if envs.VLLM_USE_V1:
3705 valid_guided_backends = get_args(GuidedDecodingBackendV1)
3706 else:
@@ -3731,24 +3716,6 @@ class DecodingConfig:
3716 raise ValueError("disable_additional_properties is only supported "
3717 "for the guidance backend.")
3718
3734 - @deprecated(
3735 - "Passing guided decoding backend options inside backend in the format "
3736 - "'backend:...' is deprecated. This will be removed in v0.10.0. Please "
3737 - "use the dedicated arguments '--disable-fallback', "
3738 - "'--disable-any-whitespace' and '--disable-additional-properties' "
3739 - "instead.")
3740 - def _extract_backend_options(self):
3741 - """Extract backend options from the backend string."""
3742 - backend, options = self.backend.split(":")
3743 - self.backend = cast(GuidedDecodingBackend, backend)
3744 - options_set = set(options.strip().split(","))
3745 - if "no-fallback" in options_set:
3746 - self.disable_fallback = True
3747 - if "disable-any-whitespace" in options_set:
3748 - self.disable_any_whitespace = True
3749 - if "no-additional-properties" in options_set:
3750 - self.disable_additional_properties = True
3751 -
3719
3720 DetailedTraceModules = Literal["model", "worker", "all"]
3721
vllm/engine/arg_utils.py
-27
@@ -9,7 +9,6 @@ import functools
9 import json
10 import sys
11 import threading
12 -import warnings
12 from dataclasses import MISSING, dataclass, fields, is_dataclass
13 from itertools import permutations
14 from typing import (TYPE_CHECKING, Annotated, Any, Callable, Dict, List,
@@ -434,7 +433,6 @@ class EngineArgs:
433
434 speculative_config: Optional[Dict[str, Any]] = None
435
437 - qlora_adapter_name_or_path: Optional[str] = None
436 show_hidden_metrics_for_version: Optional[str] = \
437 ObservabilityConfig.show_hidden_metrics_for_version
438 otlp_traces_endpoint: Optional[str] = \
@@ -468,7 +466,6 @@ class EngineArgs:
466
467 additional_config: dict[str, Any] = \
468 get_field(VllmConfig, "additional_config")
471 - enable_reasoning: Optional[bool] = None # DEPRECATED
469 reasoning_parser: str = DecodingConfig.reasoning_backend
470
471 use_tqdm_on_load: bool = LoadConfig.use_tqdm_on_load
@@ -486,13 +483,6 @@ class EngineArgs:
483 if isinstance(self.compilation_config, (int, dict)):
484 self.compilation_config = CompilationConfig.from_cli(
485 str(self.compilation_config))
489 - if self.qlora_adapter_name_or_path is not None:
490 - warnings.warn(
491 - "The `qlora_adapter_name_or_path` is deprecated "
492 - "and will be removed in v0.10.0. ",
493 - DeprecationWarning,
494 - stacklevel=2,
495 - )
486 # Setup plugins
487 from vllm.plugins import load_general_plugins
488 load_general_plugins()
@@ -605,14 +595,6 @@ class EngineArgs:
595 **load_kwargs["ignore_patterns"])
596 load_group.add_argument("--use-tqdm-on-load",
597 **load_kwargs["use_tqdm_on_load"])
608 - load_group.add_argument(
609 - "--qlora-adapter-name-or-path",
610 - type=str,
611 - default=None,
612 - help="The `--qlora-adapter-name-or-path` has no effect, do not set"
613 - " it, and it will be removed in v0.10.0.",
614 - deprecated=True,
615 - )
598 load_group.add_argument('--pt-load-map-location',
599 **load_kwargs["pt_load_map_location"])
600
@@ -633,15 +615,6 @@ class EngineArgs:
615 guided_decoding_group.add_argument(
616 "--guided-decoding-disable-additional-properties",
617 **guided_decoding_kwargs["disable_additional_properties"])
636 - guided_decoding_group.add_argument(
637 - "--enable-reasoning",
638 - action=argparse.BooleanOptionalAction,
639 - deprecated=True,
640 - help="[DEPRECATED] The `--enable-reasoning` flag is deprecated as "
641 - "of v0.9.0. Use `--reasoning-parser` to specify the reasoning "
642 - "parser backend instead. This flag (`--enable-reasoning`) will be "
643 - "removed in v0.10.0. When `--reasoning-parser` is specified, "
644 - "reasoning mode is automatically enabled.")
618 guided_decoding_group.add_argument(
619 "--reasoning-parser",
620 # This choices is a special case because it's not static
vllm/entrypoints/openai/api_server.py
-4
@@ -1514,8 +1514,6 @@ async def init_app_state(
1514 chat_template_content_format=args.chat_template_content_format,
1515 return_tokens_as_token_ids=args.return_tokens_as_token_ids,
1516 enable_auto_tools=args.enable_auto_tool_choice,
1517 - expand_tools_even_if_tool_choice_none=args.
1518 - expand_tools_even_if_tool_choice_none,
1517 tool_parser=args.tool_call_parser,
1518 reasoning_parser=args.reasoning_parser,
1519 enable_prompt_tokens_details=args.enable_prompt_tokens_details,
@@ -1531,8 +1529,6 @@ async def init_app_state(
1529 chat_template_content_format=args.chat_template_content_format,
1530 return_tokens_as_token_ids=args.return_tokens_as_token_ids,
1531 enable_auto_tools=args.enable_auto_tool_choice,
1534 - expand_tools_even_if_tool_choice_none=args.
1535 - expand_tools_even_if_tool_choice_none,
1532 tool_parser=args.tool_call_parser,
1533 reasoning_parser=args.reasoning_parser,
1534 enable_prompt_tokens_details=args.enable_prompt_tokens_details,
vllm/entrypoints/openai/cli_args.py
-12
@@ -182,13 +182,6 @@ schema. Example: `[{"type": "text", "text": "Hello world!"}]`"""
182 """If set to True, enable tracking server_load_metrics in the app state."""
183 enable_force_include_usage: bool = False
184 """If set to True, including usage on every request."""
185 - expand_tools_even_if_tool_choice_none: bool = False
186 - """Include tool definitions in prompts even when `tool_choice='none'`.
187 -
188 - This is a transitional option that will be removed in v0.10.0. In
189 - v0.10.0, tool definitions will always be included regardless of
190 - `tool_choice` setting. Use this flag to test the upcoming behavior
191 - before the breaking change."""
185
186 @staticmethod
187 def add_cli_args(parser: FlexibleArgumentParser) -> FlexibleArgumentParser:
@@ -225,11 +218,6 @@ schema. Example: `[{"type": "text", "text": "Hello world!"}]`"""
218 valid_tool_parsers = list(ToolParserManager.tool_parsers.keys())
219 frontend_kwargs["tool_call_parser"]["choices"] = valid_tool_parsers
220
228 - # Special case for expand-tools-even-if-tool-choice-none because of
229 - # the deprecation field
230 - frontend_kwargs["expand_tools_even_if_tool_choice_none"]\
231 - ["deprecated"] = True
232 -
221 frontend_group = parser.add_argument_group(
222 title="Frontend",
223 description=FrontendArgs.__doc__,
vllm/entrypoints/openai/serving_chat.py
-17
@@ -63,7 +63,6 @@ class OpenAIServingChat(OpenAIServing):
63 return_tokens_as_token_ids: bool = False,
64 reasoning_parser: str = "",
65 enable_auto_tools: bool = False,
66 - expand_tools_even_if_tool_choice_none: bool = False,
66 tool_parser: Optional[str] = None,
67 enable_prompt_tokens_details: bool = False,
68 enable_force_include_usage: bool = False,
@@ -112,8 +111,6 @@ class OpenAIServingChat(OpenAIServing):
111 raise TypeError("Error: --enable-auto-tool-choice requires "
112 f"tool_parser:'{tool_parser}' which has not "
113 "been registered") from e
115 - self.expand_tools_even_if_tool_choice_none = (
116 - expand_tools_even_if_tool_choice_none)
114
115 self.enable_prompt_tokens_details = enable_prompt_tokens_details
116 self.enable_force_include_usage = enable_force_include_usage
@@ -182,20 +179,6 @@ class OpenAIServingChat(OpenAIServing):
179
180 if request.tools is None:
181 tool_dicts = None
185 - elif (request.tool_choice == "none"
186 - and not self.expand_tools_even_if_tool_choice_none):
187 - if len(request.tools) > 0:
188 - logger.warning_once(
189 - "Tools are specified but tool_choice is set to 'none' "
190 - "and --expand-tools-even-if-tool-choice-none is not "
191 - "enabled. Tool definitions will be excluded from the "
192 - "prompt. This behavior will change in vLLM v0.10 where "
193 - "tool definitions will be included by default even "
194 - "with tool_choice='none'. To adopt the new behavior "
195 - "now, use --expand-tools-even-if-tool-choice-none. "
196 - "To suppress this warning, either remove tools from "
197 - "the request or set tool_choice to a different value.")
198 - tool_dicts = None
182 else:
183 tool_dicts = [tool.model_dump() for tool in request.tools]
184
vllm/entrypoints/openai/serving_responses.py
-1
@@ -51,7 +51,6 @@ class OpenAIServingResponses(OpenAIServing):
51 return_tokens_as_token_ids: bool = False,
52 reasoning_parser: str = "",
53 enable_auto_tools: bool = False,
54 - expand_tools_even_if_tool_choice_none: bool = False,
54 tool_parser: Optional[str] = None,
55 enable_prompt_tokens_details: bool = False,
56 enable_force_include_usage: bool = False,
vllm/sampling_params.py
-22
@@ -9,7 +9,6 @@ from typing import Annotated, Any, Optional, Union
9
10 import msgspec
11 from pydantic import BaseModel
12 -from typing_extensions import deprecated
12
13 from vllm.logger import init_logger
14 from vllm.logits_process import LogitsProcessor
@@ -84,27 +83,6 @@ class GuidedDecodingParams:
83 "You can only use one kind of guided decoding but multiple are "
84 f"specified: {self.__dict__}")
85
87 - if self.backend is not None and ":" in self.backend:
88 - self._extract_backend_options()
89 -
90 - @deprecated(
91 - "Passing guided decoding backend options inside backend in the format "
92 - "'backend:...' is deprecated. This will be removed in v0.10.0. Please "
93 - "use the dedicated arguments '--disable-fallback', "
94 - "'--disable-any-whitespace' and '--disable-additional-properties' "
95 - "instead.")
96 - def _extract_backend_options(self):
97 - """Extract backend options from the backend string."""
98 - assert isinstance(self.backend, str)
99 - self.backend, options = self.backend.split(":")
100 - options_set = set(options.strip().split(","))
101 - if "no-fallback" in options_set:
102 - self.disable_fallback = True
103 - if "disable-any-whitespace" in options_set:
104 - self.disable_any_whitespace = True
105 - if "no-additional-properties" in options_set:
106 - self.disable_additional_properties = True
107 -
86
87 class RequestOutputKind(Enum):
88 # Return entire output so far in every RequestOutput