diff --git a/vllm/envs.py b/vllm/envs.py index 43c7aa8af85b2..705d858e71a66 100644 --- a/vllm/envs.py +++ b/vllm/envs.py @@ -62,6 +62,7 @@ VLLM_TORCH_PROFILER_DIR: Optional[str] = None VLLM_USE_TRITON_AWQ: bool = False VLLM_ALLOW_RUNTIME_LORA_UPDATING: bool = False + VLLM_ALLOW_DEPRECATED_BEAM_SEARCH: bool = False def get_default_cache_root(): @@ -195,6 +196,10 @@ def get_default_config_root(): lambda: (os.environ.get("VLLM_USE_TRITON_FLASH_ATTN", "True").lower() in ("true", "1")), + # If set, allowing the use of deprecated beam search implementation + "VLLM_ALLOW_DEPRECATED_BEAM_SEARCH": + lambda: os.environ.get("VLLM_ALLOW_DEPRECATED_BEAM_SEARCH", "0") == "1", + # Internal flag to enable Dynamo graph capture "VLLM_TEST_DYNAMO_GRAPH_CAPTURE": lambda: int(os.environ.get("VLLM_TEST_DYNAMO_GRAPH_CAPTURE", "0")), diff --git a/vllm/sampling_params.py b/vllm/sampling_params.py index 86e80ae5e224d..f9ba4b4777e4d 100644 --- a/vllm/sampling_params.py +++ b/vllm/sampling_params.py @@ -8,6 +8,7 @@ import torch from typing_extensions import Annotated +import vllm.envs as envs from vllm.logger import init_logger logger = init_logger(__name__) @@ -260,6 +261,10 @@ def __post_init__(self) -> None: self._verify_args() if self.use_beam_search: + if not envs.VLLM_ALLOW_DEPRECATED_BEAM_SEARCH: + raise ValueError( + "Using beam search as a sampling parameter is deprecated, and will be removed in the future release. Please use the `vllm.LLM.use_beam_search` method for dedicated beam search instead, or set the environment variable `VLLM_ALLOW_DEPRECATED_BEAM_SEARCH=1` to suppress this error. For more details, see https://github.com/vllm-project/vllm/issues/8306 ." # noqa + ) self._verify_beam_search() else: self._verify_non_beam_search()