|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from peft.import_utils import is_bnb_4bit_available, is_bnb_available, is_eetq_available |
|
|
|
from .config import EvaConfig, LoftQConfig, LoraConfig, LoraRuntimeConfig |
|
from .eva import get_eva_state_dict, initialize_lora_eva_weights |
|
from .gptq import QuantLinear |
|
from .layer import Conv2d, Conv3d, Embedding, Linear, LoraLayer |
|
from .model import LoraModel |
|
|
|
|
|
__all__ = [ |
|
"LoraConfig", |
|
"LoraRuntimeConfig", |
|
"LoftQConfig", |
|
"EvaConfig", |
|
"Conv2d", |
|
"Conv3d", |
|
"Embedding", |
|
"LoraLayer", |
|
"Linear", |
|
"LoraModel", |
|
"QuantLinear", |
|
"get_eva_state_dict", |
|
"initialize_lora_eva_weights", |
|
] |
|
|
|
|
|
def __getattr__(name): |
|
if (name == "Linear8bitLt") and is_bnb_available(): |
|
from .bnb import Linear8bitLt |
|
|
|
return Linear8bitLt |
|
|
|
if (name == "Linear4bit") and is_bnb_4bit_available(): |
|
from .bnb import Linear4bit |
|
|
|
return Linear4bit |
|
|
|
if (name == "EetqLoraLinear") and is_eetq_available(): |
|
from .eetq import EetqLoraLinear |
|
|
|
return EetqLoraLinear |
|
|
|
raise AttributeError(f"module {__name__} has no attribute {name}") |
|
|