def __init__(self, device: Optional[str] = None, model_properties: Optional[dict] = None,
                 model_auth: Optional[ModelAuth] = None):
        """Instantiate the abstract CLIP model.

        Args:
            device (str): The device to load the model on, typically 'cpu' or 'cuda'.
            model_properties (dict): A dictionary containing additional properties or configurations
                specific to the model. Defaults to an empty dictionary if not provided.
            model_auth (ModelAuth): The authentication information for the model. Defaults to `None` if not provided
        """

        super().__init__(model_properties=model_properties, device=device, model_auth=model_auth)

        self.model = None
        self.tokenizer = None
        self.preprocessor = None # The overall preprocessor used by the model that wraps the tokenizer and image preprocessor
        self.image_preprocessor = None # The image preprocessor used by the model
Instantiate the abstract CLIP model.

        Args:
            device (str): The device to load the model on, typically 'cpu' or 'cuda'.
            model_properties (dict): A dictionary containing additional properties or configurations
                specific to the model. Defaults to an empty dictionary if not provided.
            model_auth (ModelAuth): The authentication information for the model. Defaults to `None` if not provided
        
src/marqo/inference/native_inference/embedding_models/abstract_clip_model.py