def update_config(self, **kwargs) -> None:
        """
        Updates the configuration of the trainer, but the parameters depend on the trainer.subclass.
        """
        self.model_kwargs.update(filter_allowed_args(self._trainer_cls.__init__, **kwargs))
        self.trainer_kwargs.update(filter_allowed_args(self._trainer_cls.fit, **kwargs))

        if "batch_size" in kwargs:
            self.data_kwargs["batch_size"] = kwargs.pop("batch_size")

        # These parameters are allowed, but for simplicity
        # they are passed as self._model as positional argument to avoid errors
        # between Cross-Encoder/Bi-encoder.
        if "model_name_or_path" in kwargs:
            self._model = self.model_kwargs.pop("model_name_or_path")
        if "model_name" in kwargs:
            self._model = self.model_kwargs.pop("model_name")

        if "loss_cls" in kwargs:
            self._loss_cls = kwargs.pop("loss_cls")

        if "evaluator" in kwargs:
            self._set_evaluator(evaluator_cls=kwargs.pop("evaluator"))

        Updates the configuration of the trainer, but the parameters depend on the trainer.subclass.
        
argilla-v1/src/argilla_v1/client/feedback/training/frameworks/sentence_transformers.py