@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 87c41c26ad
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 14, 05:30 UTC

[Bugfix] Fix processor initialization for model from modelscope instead of HF (#27461)

Signed-off-by: rongfu.leng <rongfu.leng@daocloud.io> Co-authored-by: Isotr0py <mozf@mail2.sysu.edu.cn>

rongfu.leng committed Oct 26, 2025 at 15:44 UTC 87c41c26ad5bae18da8e393cd7e82f708816fd1e
2 files changed +16 -1
vllm/transformers_utils/processor.py
+5 -1
@@ -16,6 +16,7 @@ from transformers.processing_utils import ProcessorMixin
16 from transformers.video_processing_utils import BaseVideoProcessor
17 from typing_extensions import TypeVar
18
19 +from vllm.transformers_utils.utils import convert_model_repo_to_path
20 from vllm.utils.func_utils import get_allowed_kwarg_only_overrides
21
22 if TYPE_CHECKING:
@@ -94,8 +95,8 @@ def get_processor(
95 """Load a processor for the given model name via HuggingFace."""
96 if revision is None:
97 revision = "main"
97 -
98 try:
99 + processor_name = convert_model_repo_to_path(processor_name)
100 if isinstance(processor_cls, tuple) or processor_cls == ProcessorMixin:
101 processor = AutoProcessor.from_pretrained(
102 processor_name,
@@ -168,6 +169,7 @@ def get_feature_extractor(
169 """Load an audio feature extractor for the given model name
170 via HuggingFace."""
171 try:
172 + processor_name = convert_model_repo_to_path(processor_name)
173 feature_extractor = AutoFeatureExtractor.from_pretrained(
174 processor_name,
175 *args,
@@ -217,6 +219,7 @@ def get_image_processor(
219 ):
220 """Load an image processor for the given model name via HuggingFace."""
221 try:
222 + processor_name = convert_model_repo_to_path(processor_name)
223 processor = AutoImageProcessor.from_pretrained(
224 processor_name,
225 *args,
@@ -268,6 +271,7 @@ def get_video_processor(
271 ):
272 """Load a video processor for the given model name via HuggingFace."""
273 try:
274 + processor_name = convert_model_repo_to_path(processor_name)
275 processor_cls = processor_cls_overrides or AutoVideoProcessor
276 processor = processor_cls.from_pretrained(
277 processor_name,
vllm/transformers_utils/utils.py
+11
@@ -2,6 +2,7 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 import json
5 +import os
6 import struct
7 from functools import cache
8 from os import PathLike
@@ -109,3 +110,13 @@ def parse_safetensors_file_metadata(path: str | PathLike) -> dict[str, Any]:
110 length_of_metadata = struct.unpack("<Q", f.read(8))[0]
111 metadata = json.loads(f.read(length_of_metadata).decode("utf-8"))
112 return metadata
113 +
114 +
115 +def convert_model_repo_to_path(model_repo: str) -> str:
116 + """When VLLM_USE_MODELSCOPE is True convert a model
117 + repository string to a Path str."""
118 + if not envs.VLLM_USE_MODELSCOPE or Path(model_repo).exists():
119 + return model_repo
120 + from modelscope.utils.file_utils import get_model_cache_root
121 +
122 + return os.path.join(get_model_cache_root(), model_repo)