Signed-off-by: jinzhen.ljz <jinzhen.ljz@antgroup.com> Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: Codex <noreply@openai.com> Co-authored-by: mgoin <mgoin64@gmail.com>
109 lines
5.3 KiB
Python
109 lines
5.3 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""Lazy facade for the optional ``humming`` package.
|
|
|
|
vLLM code should import humming symbols from here so that ``import humming``
|
|
(which has import-time side effects) is deferred until first use. Add new
|
|
symbols to both the ``TYPE_CHECKING`` imports and ``_EXPORTS``, using
|
|
``"module.path:attr"`` or ``"module.path"`` for a whole-module re-export.
|
|
"""
|
|
|
|
import importlib
|
|
from typing import TYPE_CHECKING, Any
|
|
|
|
if TYPE_CHECKING:
|
|
from humming import dtypes as dtypes
|
|
from humming.config import GemmType as GemmType
|
|
from humming.config import InputQuantizationMode as InputQuantizationMode
|
|
from humming.config import LayerConfig as LayerConfig
|
|
from humming.config import MmaType as MmaType
|
|
from humming.config import WeightScale2Type as WeightScale2Type
|
|
from humming.config import WeightScaleType as WeightScaleType
|
|
from humming.dtypes import DataType as DataType
|
|
from humming.forward import humming_forward as humming_forward
|
|
from humming.forward import may_process_input as may_process_input
|
|
from humming.forward import may_quant_input as may_quant_input
|
|
from humming.ops import process_input as process_input
|
|
from humming.schema import AWQWeightSchema as AWQWeightSchema
|
|
from humming.schema import BaseInputSchema as BaseInputSchema
|
|
from humming.schema import BaseWeightSchema as BaseWeightSchema
|
|
from humming.schema import BitnetWeightSchema as BitnetWeightSchema
|
|
from humming.schema import (
|
|
CompressedTensorsInputSchema as CompressedTensorsInputSchema,
|
|
)
|
|
from humming.schema import (
|
|
CompressedTensorsWeightSchema as CompressedTensorsWeightSchema,
|
|
)
|
|
from humming.schema import Fp8InputSchema as Fp8InputSchema
|
|
from humming.schema import GptOssMxfp4WeightSchema as GptOssMxfp4WeightSchema
|
|
from humming.schema import GPTQWeightSchema as GPTQWeightSchema
|
|
from humming.schema import HummingInputSchema as HummingInputSchema
|
|
from humming.schema import HummingWeightSchema as HummingWeightSchema
|
|
from humming.schema import Mxfp4WeightSchema as Mxfp4WeightSchema
|
|
from humming.schema.fp8 import Fp8WeightSchema as Fp8WeightSchema
|
|
from humming.schema.modelopt import (
|
|
ModeloptMxfp8WeightSchema as ModeloptMxfp8WeightSchema,
|
|
)
|
|
from humming.schema.modelopt import (
|
|
ModeloptNvfp4InputSchema as ModeloptNvfp4InputSchema,
|
|
)
|
|
from humming.schema.modelopt import (
|
|
ModeloptNvfp4WeightSchema as ModeloptNvfp4WeightSchema,
|
|
)
|
|
from humming.transform import prepare_layer_config as prepare_layer_config
|
|
from humming.transform import transform_humming_tensors as transform_humming_tensors
|
|
from humming.tune import get_heuristics_config as get_heuristics_config
|
|
from humming.utils.weight import quantize_weight as quantize_weight
|
|
|
|
_EXPORTS: dict[str, str] = {
|
|
"dtypes": "humming.dtypes",
|
|
"DataType": "humming.dtypes:DataType",
|
|
"GemmType": "humming.config:GemmType",
|
|
"LayerConfig": "humming.config:LayerConfig",
|
|
"WeightScaleType": "humming.config:WeightScaleType",
|
|
"WeightScale2Type": "humming.config:WeightScale2Type",
|
|
"InputQuantizationMode": "humming.config:InputQuantizationMode",
|
|
"MmaType": "humming.config:MmaType",
|
|
"humming_forward": "humming.forward:humming_forward",
|
|
"may_process_input": "humming.forward:may_process_input",
|
|
"process_input": "humming.ops:process_input",
|
|
"may_quant_input": "humming.forward:may_quant_input",
|
|
"prepare_layer_config": "humming.transform:prepare_layer_config",
|
|
"transform_humming_tensors": "humming.transform:transform_humming_tensors",
|
|
"get_heuristics_config": "humming.tune:get_heuristics_config",
|
|
"BaseInputSchema": "humming.schema:BaseInputSchema",
|
|
"BaseWeightSchema": "humming.schema:BaseWeightSchema",
|
|
"HummingInputSchema": "humming.schema:HummingInputSchema",
|
|
"HummingWeightSchema": "humming.schema:HummingWeightSchema",
|
|
"quantize_weight": "humming.utils.weight:quantize_weight",
|
|
"AWQWeightSchema": "humming.schema:AWQWeightSchema",
|
|
"BitnetWeightSchema": "humming.schema:BitnetWeightSchema",
|
|
"ModeloptMxfp8WeightSchema": "humming.schema.modelopt:ModeloptMxfp8WeightSchema",
|
|
"ModeloptNvfp4InputSchema": "humming.schema.modelopt:ModeloptNvfp4InputSchema",
|
|
"ModeloptNvfp4WeightSchema": "humming.schema.modelopt:ModeloptNvfp4WeightSchema",
|
|
"CompressedTensorsInputSchema": "humming.schema:CompressedTensorsInputSchema",
|
|
"CompressedTensorsWeightSchema": "humming.schema:CompressedTensorsWeightSchema",
|
|
"Fp8InputSchema": "humming.schema:Fp8InputSchema",
|
|
"Fp8WeightSchema": "humming.schema.fp8:Fp8WeightSchema",
|
|
"Mxfp4WeightSchema": "humming.schema:Mxfp4WeightSchema",
|
|
"GptOssMxfp4WeightSchema": "humming.schema:GptOssMxfp4WeightSchema",
|
|
"GPTQWeightSchema": "humming.schema:GPTQWeightSchema",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str) -> Any:
|
|
spec = _EXPORTS.get(name)
|
|
if spec is None:
|
|
raise AttributeError(f"module 'vllm.utils.humming' has no attribute {name!r}")
|
|
if ":" in spec:
|
|
mod_path, attr = spec.split(":", 1)
|
|
obj = getattr(importlib.import_module(mod_path), attr)
|
|
else:
|
|
obj = importlib.import_module(spec)
|
|
globals()[name] = obj
|
|
return obj
|
|
|
|
|
|
def __dir__() -> list[str]:
|
|
return sorted({*globals(), *_EXPORTS})
|