diff --git a/sentence_transformers/SentenceTransformer.py b/sentence_transformers/SentenceTransformer.py index f6a48ae29..dfcc297c8 100644 --- a/sentence_transformers/SentenceTransformer.py +++ b/sentence_transformers/SentenceTransformer.py @@ -1004,12 +1004,11 @@ def save( modules_config = [] # Save some model info - if "__version__" not in self._model_config: - self._model_config["__version__"] = { - "sentence_transformers": __version__, - "transformers": transformers.__version__, - "pytorch": torch.__version__, - } + self._model_config["__version__"] = { + "sentence_transformers": __version__, + "transformers": transformers.__version__, + "pytorch": torch.__version__, + } with open(os.path.join(path, "config_sentence_transformers.json"), "w") as fOut: config = self._model_config.copy() diff --git a/tests/test_sentence_transformer.py b/tests/test_sentence_transformer.py index 233be3f8c..2d789dd4a 100644 --- a/tests/test_sentence_transformer.py +++ b/tests/test_sentence_transformer.py @@ -564,3 +564,14 @@ def test_similarity_score_save(stsb_bert_tiny_model: SentenceTransformer) -> Non assert loaded_model.similarity_fn_name == "euclidean" dot_scores = model.similarity(embeddings, embeddings) assert np.not_equal(cosine_scores, dot_scores).all() + + +def test_override_config_versions(stsb_bert_tiny_model: SentenceTransformer) -> None: + model = stsb_bert_tiny_model + + assert model._model_config["__version__"]["sentence_transformers"] == "2.2.2" + with tempfile.TemporaryDirectory() as tmp_folder: + model.save(tmp_folder) + loaded_model = SentenceTransformer(tmp_folder) + # Verify that the version has now been updated when saving the model again + assert loaded_model._model_config["__version__"]["sentence_transformers"] != "2.2.2"