Skip to content

Commit 52fbcb0

Browse files
committed
Lazy loading to avoid importing all files
Signed-off-by: yongming-qin <yq0536@gmail.com>
1 parent c625d7b commit 52fbcb0

File tree

1 file changed

+47
-37
lines changed

1 file changed

+47
-37
lines changed

vllm/transformers_utils/configs/__init__.py

Lines changed: 47 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -10,45 +10,44 @@
1010
deepseek-ai/DeepSeek-V3.2-Exp.
1111
"""
1212

13-
from transformers import DeepseekV3Config
13+
from __future__ import annotations
14+
import importlib
15+
from typing import Dict
1416

15-
from vllm.transformers_utils.configs.afmoe import AfmoeConfig
16-
from vllm.transformers_utils.configs.chatglm import ChatGLMConfig
17-
from vllm.transformers_utils.configs.deepseek_vl2 import DeepseekVLV2Config
18-
from vllm.transformers_utils.configs.dotsocr import DotsOCRConfig
19-
from vllm.transformers_utils.configs.eagle import EAGLEConfig
17+
_CLASS_TO_MODULE: Dict[str, str] = {
18+
"AfmoeConfig": "vllm.transformers_utils.configs.afmoe",
19+
"ChatGLMConfig": "vllm.transformers_utils.configs.chatglm",
20+
"DeepseekVLV2Config": "vllm.transformers_utils.configs.deepseek_vl2",
21+
"DotsOCRConfig": "vllm.transformers_utils.configs.dotsocr",
22+
"EAGLEConfig": "vllm.transformers_utils.configs.eagle",
23+
"FlexOlmoConfig": "vllm.transformers_utils.configs.flex_olmo",
24+
# RWConfig is for the original tiiuae/falcon-40b(-instruct) and
25+
# tiiuae/falcon-7b(-instruct) models. Newer Falcon models will use the
26+
# `FalconConfig` class from the official HuggingFace transformers library.
27+
"RWConfig": "vllm.transformers_utils.configs.falcon",
28+
"JAISConfig": "vllm.transformers_utils.configs.jais",
29+
"Lfm2MoeConfig": "vllm.transformers_utils.configs.lfm2_moe",
30+
"MedusaConfig": "vllm.transformers_utils.configs.medusa",
31+
"MiDashengLMConfig": "vllm.transformers_utils.configs.midashenglm",
32+
"MLPSpeculatorConfig": "vllm.transformers_utils.configs.mlp_speculator",
33+
"MoonViTConfig": "vllm.transformers_utils.configs.moonvit",
34+
"KimiLinearConfig": "vllm.transformers_utils.configs.kimi_linear",
35+
"KimiVLConfig": "vllm.transformers_utils.configs.kimi_vl",
36+
"NemotronConfig": "vllm.transformers_utils.configs.nemotron",
37+
"NemotronHConfig": "vllm.transformers_utils.configs.nemotron_h",
38+
"Olmo3Config": "vllm.transformers_utils.configs.olmo3",
39+
"OvisConfig": "vllm.transformers_utils.configs.ovis",
40+
"RadioConfig": "vllm.transformers_utils.configs.radio",
41+
"SpeculatorsConfig": "vllm.transformers_utils.configs.speculators.base",
42+
"UltravoxConfig": "vllm.transformers_utils.configs.ultravox",
43+
"Step3VLConfig": "vllm.transformers_utils.configs.step3_vl",
44+
"Step3VisionEncoderConfig": "vllm.transformers_utils.configs.step3_vl",
45+
"Step3TextConfig": "vllm.transformers_utils.configs.step3_vl",
46+
"Qwen3NextConfig": "vllm.transformers_utils.configs.qwen3_next",
2047

21-
# RWConfig is for the original tiiuae/falcon-40b(-instruct) and
22-
# tiiuae/falcon-7b(-instruct) models. Newer Falcon models will use the
23-
# `FalconConfig` class from the official HuggingFace transformers library.
24-
from vllm.transformers_utils.configs.falcon import RWConfig
25-
from vllm.transformers_utils.configs.flex_olmo import FlexOlmoConfig
26-
from vllm.transformers_utils.configs.hunyuan_vl import (
27-
HunYuanVLConfig,
28-
HunYuanVLTextConfig,
29-
HunYuanVLVisionConfig,
30-
)
31-
from vllm.transformers_utils.configs.jais import JAISConfig
32-
from vllm.transformers_utils.configs.kimi_linear import KimiLinearConfig
33-
from vllm.transformers_utils.configs.kimi_vl import KimiVLConfig
34-
from vllm.transformers_utils.configs.lfm2_moe import Lfm2MoeConfig
35-
from vllm.transformers_utils.configs.medusa import MedusaConfig
36-
from vllm.transformers_utils.configs.midashenglm import MiDashengLMConfig
37-
from vllm.transformers_utils.configs.mlp_speculator import MLPSpeculatorConfig
38-
from vllm.transformers_utils.configs.moonvit import MoonViTConfig
39-
from vllm.transformers_utils.configs.nemotron import NemotronConfig
40-
from vllm.transformers_utils.configs.nemotron_h import NemotronHConfig
41-
from vllm.transformers_utils.configs.olmo3 import Olmo3Config
42-
from vllm.transformers_utils.configs.ovis import OvisConfig
43-
from vllm.transformers_utils.configs.qwen3_next import Qwen3NextConfig
44-
from vllm.transformers_utils.configs.radio import RadioConfig
45-
from vllm.transformers_utils.configs.speculators.base import SpeculatorsConfig
46-
from vllm.transformers_utils.configs.step3_vl import (
47-
Step3TextConfig,
48-
Step3VisionEncoderConfig,
49-
Step3VLConfig,
50-
)
51-
from vllm.transformers_utils.configs.ultravox import UltravoxConfig
48+
# Special case: DeepseekV3Config is from HuggingFace Transformers
49+
"DeepseekV3Config": "transformers",
50+
}
5251

5352
__all__ = [
5453
"AfmoeConfig",
@@ -82,3 +81,14 @@
8281
"Step3TextConfig",
8382
"Qwen3NextConfig",
8483
]
84+
85+
def __getattr__(name: str):
86+
if name in _CLASS_TO_MODULE:
87+
module_name = _CLASS_TO_MODULE[name]
88+
module = importlib.import_module(module_name)
89+
return getattr(module, name)
90+
91+
raise AttributeError(f"module 'configs' has no attribute '{name}'")
92+
93+
def __dir__():
94+
return sorted(list(__all__))

0 commit comments

Comments
 (0)