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):