"tests/vscode:/vscode.git/clone" did not exist on "ebcce2cd36a75effd10556942f0467f5f670a080"
Unverified Commit 2ff297dc authored by Woosuk Kwon's avatar Woosuk Kwon Committed by GitHub
Browse files

[BugFix] Set default random seed to 0 for V1 (#17929)


Signed-off-by: default avatarWoosuk Kwon <woosuk.kwon@berkeley.edu>
parent 8dd0671b
...@@ -261,7 +261,8 @@ class ModelConfig: ...@@ -261,7 +261,8 @@ class ModelConfig:
- "float" is shorthand for FP32 precision.\n - "float" is shorthand for FP32 precision.\n
- "float32" for FP32 precision.""" - "float32" for FP32 precision."""
seed: Optional[int] = None seed: Optional[int] = None
"""Random seed for reproducibility.""" """Random seed for reproducibility. Initialized to None in V0, but
initialized to 0 in V1."""
hf_config_path: Optional[str] = None hf_config_path: Optional[str] = None
"""Name or path of the Hugging Face config to use. If unspecified, model """Name or path of the Hugging Face config to use. If unspecified, model
name or path will be used.""" name or path will be used."""
...@@ -441,6 +442,24 @@ class ModelConfig: ...@@ -441,6 +442,24 @@ class ModelConfig:
return hashlib.sha256(str(factors).encode()).hexdigest() return hashlib.sha256(str(factors).encode()).hexdigest()
def __post_init__(self) -> None: def __post_init__(self) -> None:
# Set the default seed to 0 in V1.
# NOTE(woosuk): In V0, we set the default seed to None because the
# driver worker shares the same process as the user process, and thus
# setting a seed affects the user process as well.
# In V1, we use separate processes for workers (unless
# VLLM_ENABLE_V1_MULTIPROCESSING=0), so setting a seed here
# doesn't affect the user process. However, without a consistent seed,
# different tensor parallel workers would sample different tokens,
# leading to inconsistent results.
if envs.VLLM_USE_V1 and self.seed is None:
self.seed = 0
if not envs.VLLM_ENABLE_V1_MULTIPROCESSING:
logger.warning(
"The global random seed is set to %d. Since "
"VLLM_ENABLE_V1_MULTIPROCESSING is set to False, this may "
"affect the random state of the Python process that "
"launched vLLM.", self.seed)
self.model = maybe_model_redirect(self.model) self.model = maybe_model_redirect(self.model)
# The tokenizer is consistent with the model by default. # The tokenizer is consistent with the model by default.
if self.tokenizer is None: if self.tokenizer is None:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment