from typing import Any from transformers import AutoConfig, PretrainedConfig class EmbedderConfig(PretrainedConfig): model_type = "embedder" def __init__( self, base_model_name: str = "nomic-ai/nomic-embed-text-v1.5", num_blocks: int = 2, dropout: float = 0.0, encoder_only: bool = False, **kwargs: Any, ): super().__init__(**kwargs) self.base_model_name = base_model_name self.num_blocks = num_blocks self.dropout = dropout self.encoder_only = encoder_only self.encoder_config = AutoConfig.from_pretrained( base_model_name, trust_remote_code=True, ) self.auto_map = { "AutoConfig": "configuration_embedder.EmbedderConfig", "AutoModel": "modeling_embedder.EmbedderModel", } def __getattr__(self, name: str) -> Any: if name != "encoder_config" and hasattr(self.encoder_config, name): return getattr(self.encoder_config, name) raise AttributeError(name) EmbedderConfig.register_for_auto_class()