mirror of
https://git.datalinker.icu/vllm-project/vllm.git
synced 2025-12-10 20:35:01 +08:00
[Bugfix] Skip gs:// model paths for speculator detection (#27846)
Signed-off-by: Peter Schuurman <psch@google.com>
This commit is contained in:
parent
294c805f1d
commit
f7d2946e99
26
tests/transformers_utils/test_utils.py
Normal file
26
tests/transformers_utils/test_utils.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||||
|
|
||||||
|
|
||||||
|
from vllm.transformers_utils.utils import is_cloud_storage, is_gcs, is_s3
|
||||||
|
|
||||||
|
|
||||||
|
def test_is_gcs():
|
||||||
|
assert is_gcs("gs://model-path")
|
||||||
|
assert not is_gcs("s3://model-path/path-to-model")
|
||||||
|
assert not is_gcs("/unix/local/path")
|
||||||
|
assert not is_gcs("nfs://nfs-fqdn.local")
|
||||||
|
|
||||||
|
|
||||||
|
def test_is_s3():
|
||||||
|
assert is_s3("s3://model-path/path-to-model")
|
||||||
|
assert not is_s3("gs://model-path")
|
||||||
|
assert not is_s3("/unix/local/path")
|
||||||
|
assert not is_s3("nfs://nfs-fqdn.local")
|
||||||
|
|
||||||
|
|
||||||
|
def test_is_cloud_storage():
|
||||||
|
assert is_cloud_storage("gs://model-path")
|
||||||
|
assert is_cloud_storage("s3://model-path/path-to-model")
|
||||||
|
assert not is_cloud_storage("/unix/local/path")
|
||||||
|
assert not is_cloud_storage("nfs://nfs-fqdn.local")
|
||||||
@ -86,7 +86,7 @@ from vllm.transformers_utils.config import (
|
|||||||
is_interleaved,
|
is_interleaved,
|
||||||
maybe_override_with_speculators,
|
maybe_override_with_speculators,
|
||||||
)
|
)
|
||||||
from vllm.transformers_utils.utils import check_gguf_file, is_s3
|
from vllm.transformers_utils.utils import check_gguf_file, is_cloud_storage
|
||||||
from vllm.utils.argparse_utils import FlexibleArgumentParser
|
from vllm.utils.argparse_utils import FlexibleArgumentParser
|
||||||
from vllm.utils.mem_constants import GiB_bytes
|
from vllm.utils.mem_constants import GiB_bytes
|
||||||
from vllm.utils.network_utils import get_ip
|
from vllm.utils.network_utils import get_ip
|
||||||
@ -1310,10 +1310,10 @@ class EngineArgs:
|
|||||||
|
|
||||||
# Check if the model is a speculator and override model/tokenizer/config
|
# Check if the model is a speculator and override model/tokenizer/config
|
||||||
# BEFORE creating ModelConfig, so the config is created with the target model
|
# BEFORE creating ModelConfig, so the config is created with the target model
|
||||||
# Skip speculator detection for S3 models since HuggingFace cannot load
|
# Skip speculator detection for cloud storage models (eg: S3, GCS) since
|
||||||
# configs directly from S3 URLs. S3 models can still use speculators with
|
# HuggingFace cannot load configs directly from S3 URLs. S3 models can still
|
||||||
# explicit --speculative-config.
|
# use speculators with explicit --speculative-config.
|
||||||
if not is_s3(self.model):
|
if not is_cloud_storage(self.model):
|
||||||
(self.model, self.tokenizer, self.speculative_config) = (
|
(self.model, self.tokenizer, self.speculative_config) = (
|
||||||
maybe_override_with_speculators(
|
maybe_override_with_speculators(
|
||||||
model=self.model,
|
model=self.model,
|
||||||
|
|||||||
@ -19,6 +19,14 @@ def is_s3(model_or_path: str) -> bool:
|
|||||||
return model_or_path.lower().startswith("s3://")
|
return model_or_path.lower().startswith("s3://")
|
||||||
|
|
||||||
|
|
||||||
|
def is_gcs(model_or_path: str) -> bool:
|
||||||
|
return model_or_path.lower().startswith("gs://")
|
||||||
|
|
||||||
|
|
||||||
|
def is_cloud_storage(model_or_path: str) -> bool:
|
||||||
|
return is_s3(model_or_path) or is_gcs(model_or_path)
|
||||||
|
|
||||||
|
|
||||||
def check_gguf_file(model: str | PathLike) -> bool:
|
def check_gguf_file(model: str | PathLike) -> bool:
|
||||||
"""Check if the file is a GGUF model."""
|
"""Check if the file is a GGUF model."""
|
||||||
model = Path(model)
|
model = Path(model)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user