Lazy loading to avoid importing all files (#29716)

Signed-off-by: Luke <yq0536@gmail.com>
This commit is contained in:
Luke 2025-12-06 23:13:14 -08:00 committed by GitHub
parent 17eb25e327
commit a49d813fa8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -10,46 +10,47 @@ Model configs may be defined in this directory for the following reasons:
deepseek-ai/DeepSeek-V3.2-Exp. deepseek-ai/DeepSeek-V3.2-Exp.
""" """
from transformers import DeepseekV3Config from __future__ import annotations
from vllm.transformers_utils.configs.afmoe import AfmoeConfig import importlib
from vllm.transformers_utils.configs.chatglm import ChatGLMConfig
from vllm.transformers_utils.configs.deepseek_vl2 import DeepseekVLV2Config
from vllm.transformers_utils.configs.dotsocr import DotsOCRConfig
from vllm.transformers_utils.configs.eagle import EAGLEConfig
_CLASS_TO_MODULE: dict[str, str] = {
"AfmoeConfig": "vllm.transformers_utils.configs.afmoe",
"ChatGLMConfig": "vllm.transformers_utils.configs.chatglm",
"DeepseekVLV2Config": "vllm.transformers_utils.configs.deepseek_vl2",
"DotsOCRConfig": "vllm.transformers_utils.configs.dotsocr",
"EAGLEConfig": "vllm.transformers_utils.configs.eagle",
"FlexOlmoConfig": "vllm.transformers_utils.configs.flex_olmo",
"HunYuanVLConfig": "vllm.transformers_utils.configs.hunyuan_vl",
"HunYuanVLTextConfig": "vllm.transformers_utils.configs.hunyuan_vl",
"HunYuanVLVisionConfig": "vllm.transformers_utils.configs.hunyuan_vl",
# RWConfig is for the original tiiuae/falcon-40b(-instruct) and # RWConfig is for the original tiiuae/falcon-40b(-instruct) and
# tiiuae/falcon-7b(-instruct) models. Newer Falcon models will use the # tiiuae/falcon-7b(-instruct) models. Newer Falcon models will use the
# `FalconConfig` class from the official HuggingFace transformers library. # `FalconConfig` class from the official HuggingFace transformers library.
from vllm.transformers_utils.configs.falcon import RWConfig "RWConfig": "vllm.transformers_utils.configs.falcon",
from vllm.transformers_utils.configs.flex_olmo import FlexOlmoConfig "JAISConfig": "vllm.transformers_utils.configs.jais",
from vllm.transformers_utils.configs.hunyuan_vl import ( "Lfm2MoeConfig": "vllm.transformers_utils.configs.lfm2_moe",
HunYuanVLConfig, "MedusaConfig": "vllm.transformers_utils.configs.medusa",
HunYuanVLTextConfig, "MiDashengLMConfig": "vllm.transformers_utils.configs.midashenglm",
HunYuanVLVisionConfig, "MLPSpeculatorConfig": "vllm.transformers_utils.configs.mlp_speculator",
) "MoonViTConfig": "vllm.transformers_utils.configs.moonvit",
from vllm.transformers_utils.configs.jais import JAISConfig "KimiLinearConfig": "vllm.transformers_utils.configs.kimi_linear",
from vllm.transformers_utils.configs.kimi_linear import KimiLinearConfig "KimiVLConfig": "vllm.transformers_utils.configs.kimi_vl",
from vllm.transformers_utils.configs.kimi_vl import KimiVLConfig "NemotronConfig": "vllm.transformers_utils.configs.nemotron",
from vllm.transformers_utils.configs.lfm2_moe import Lfm2MoeConfig "NemotronHConfig": "vllm.transformers_utils.configs.nemotron_h",
from vllm.transformers_utils.configs.medusa import MedusaConfig "Olmo3Config": "vllm.transformers_utils.configs.olmo3",
from vllm.transformers_utils.configs.midashenglm import MiDashengLMConfig "OvisConfig": "vllm.transformers_utils.configs.ovis",
from vllm.transformers_utils.configs.mlp_speculator import MLPSpeculatorConfig "RadioConfig": "vllm.transformers_utils.configs.radio",
from vllm.transformers_utils.configs.moonvit import MoonViTConfig "SpeculatorsConfig": "vllm.transformers_utils.configs.speculators.base",
from vllm.transformers_utils.configs.nemotron import NemotronConfig "UltravoxConfig": "vllm.transformers_utils.configs.ultravox",
from vllm.transformers_utils.configs.nemotron_h import NemotronHConfig "Step3VLConfig": "vllm.transformers_utils.configs.step3_vl",
from vllm.transformers_utils.configs.olmo3 import Olmo3Config "Step3VisionEncoderConfig": "vllm.transformers_utils.configs.step3_vl",
from vllm.transformers_utils.configs.ovis import OvisConfig "Step3TextConfig": "vllm.transformers_utils.configs.step3_vl",
from vllm.transformers_utils.configs.qwen3_next import Qwen3NextConfig "Qwen3NextConfig": "vllm.transformers_utils.configs.qwen3_next",
from vllm.transformers_utils.configs.radio import RadioConfig "Tarsier2Config": "vllm.transformers_utils.configs.tarsier2",
from vllm.transformers_utils.configs.speculators.base import SpeculatorsConfig # Special case: DeepseekV3Config is from HuggingFace Transformers
from vllm.transformers_utils.configs.step3_vl import ( "DeepseekV3Config": "transformers",
Step3TextConfig, }
Step3VisionEncoderConfig,
Step3VLConfig,
)
from vllm.transformers_utils.configs.tarsier2 import Tarsier2Config
from vllm.transformers_utils.configs.ultravox import UltravoxConfig
__all__ = [ __all__ = [
"AfmoeConfig", "AfmoeConfig",
@ -84,3 +85,16 @@ __all__ = [
"Qwen3NextConfig", "Qwen3NextConfig",
"Tarsier2Config", "Tarsier2Config",
] ]
def __getattr__(name: str):
if name in _CLASS_TO_MODULE:
module_name = _CLASS_TO_MODULE[name]
module = importlib.import_module(module_name)
return getattr(module, name)
raise AttributeError(f"module 'configs' has no attribute '{name}'")
def __dir__():
return sorted(list(__all__))