Skip to content

HFLMConfig

dendron.configs.hflm_config.HFLMConfig dataclass

Source code in src/dendron/configs/hflm_config.py
@dataclass
class HFLMConfig:
    _model: Union[str, PreTrainedModel]
    _device: str
    _parallelize: bool
    _dtype: Union[str, torch.dtype]
    _load_in_4bit: bool
    _load_in_8bit: bool
    _add_bos_token: bool
    _offload_folder: Union[str, os.PathLike]

    def __init__(self, 
                 model: Union[str, PreTrainedModel], 
                 device: str = "cuda",
                 parallelize: bool = False, 
                 dtype: Union[str, torch.dtype] = torch.float16, 
                 load_in_4bit: bool = False, 
                 load_in_8bit: bool = False, 
                 add_bos_token: bool = False, 
                 offload_folder: Union[str, os.PathLike] = None):
        self._model = model
        self._device = device
        self._parallelize = parallelize
        self._dtype = dtype
        self._load_in_4bit = load_in_4bit
        self._load_in_8bit = load_in_8bit
        self._add_bos_token = add_bos_token
        self._offload_folder = offload_folder

    @property
    def model_name(self) -> str:
        if isinstance(self._model, str):
            return self._model
        elif isinstance(self._model, PreTrainedModel):
            return self._model.name_or_path

    @property
    def model(self) -> Union[str, PreTrainedModel]:
        return self._model

    @property
    def device(self) -> str:
        return self._device

    @property
    def parallelize(self) -> bool:
        return self._parallelize

    @property
    def dtype(self) -> Union[str, torch.dtype]:
        return self._dtype

    @property
    def load_in_4bit(self) -> bool:
        return self._load_in_4bit

    @property
    def load_in_8bit(self) -> bool:
        return self._load_in_8bit

    @property
    def add_bos_token(self) -> bool:
        return self._add_bos_token

    @property
    def offload_folder(self) -> Union[str, os.PathLike]:
        return self._offload_folder

    def to_dict(self) -> dict:
        return {
            "model_name": self.model_name,
            "device": self.device,
            "parallelize": self.parallelize,
            "dtype": self.dtype,
            "load_in_4bit": self.load_in_4bit,
            "load_in_8bit": self.load_in_8bit,
            "add_bos_token": self.add_bos_token,
            "offload_folder": self.offload_folder
        }   

model property

device property

parallelize property

dtype property

load_in_4bit property

load_in_8bit property

add_bos_token property

to_dict()

Source code in src/dendron/configs/hflm_config.py
def to_dict(self) -> dict:
    return {
        "model_name": self.model_name,
        "device": self.device,
        "parallelize": self.parallelize,
        "dtype": self.dtype,
        "load_in_4bit": self.load_in_4bit,
        "load_in_8bit": self.load_in_8bit,
        "add_bos_token": self.add_bos_token,
        "offload_folder": self.offload_folder
    }