@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 754b699cbe
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, 11:00 UTC

[Bug]: Fix S3 model/tokenizer path resolution (#18083)

Signed-off-by: Jon Gill <jon@yurts.ai>

Jon Gill committed May 13, 2025 at 19:34 UTC 754b699cbe5eded4525c0eb3e301a17b06d50162
1 file changed +24 -17
vllm/config.py
+24 -17
@@ -611,28 +611,35 @@ class ModelConfig:
611
612 def maybe_pull_model_tokenizer_for_s3(self, model: str,
613 tokenizer: str) -> None:
614 + """Pull model/tokenizer from S3 to temporary directory when needed.
615 +
616 + Args:
617 + model: Model name or path
618 + tokenizer: Tokenizer name or path
619 """
615 - Pull the model config or tokenizer to a temporary
616 - directory in case of S3.
620 + if not (is_s3(model) or is_s3(tokenizer)):
621 + return
622
618 - Args:
619 - model: The model name or path.
620 - tokenizer: The tokenizer name or path.
623 + if is_s3(model):
624 + s3_model = S3Model()
625 + s3_model.pull_files(model,
626 + allow_pattern=["*.model", "*.py", "*.json"])
627 + self.model_weights = model
628 + self.model = s3_model.dir
629
622 - """
623 - if is_s3(model) or is_s3(tokenizer):
624 - if is_s3(model):
625 - s3_model = S3Model()
630 + # If tokenizer is same as model, download to same directory
631 + if model == tokenizer:
632 s3_model.pull_files(
627 - model, allow_pattern=["*.model", "*.py", "*.json"])
628 - self.model_weights = self.model
629 - self.model = s3_model.dir
630 -
631 - if is_s3(tokenizer):
632 - s3_tokenizer = S3Model()
633 - s3_tokenizer.pull_files(
633 model, ignore_pattern=["*.pt", "*.safetensors", "*.bin"])
635 - self.tokenizer = s3_tokenizer.dir
634 + self.tokenizer = s3_model.dir
635 + return
636 +
637 + # Only download tokenizer if needed and not already handled
638 + if is_s3(tokenizer):
639 + s3_tokenizer = S3Model()
640 + s3_tokenizer.pull_files(
641 + model, ignore_pattern=["*.pt", "*.safetensors", "*.bin"])
642 + self.tokenizer = s3_tokenizer.dir
643
644 def _init_multimodal_config(self) -> Optional["MultiModalConfig"]:
645 if self.registry.is_multimodal_model(self.architectures):