From 71cb32b70976c72f3d7303bfe3f58e29161a40b2 Mon Sep 17 00:00:00 2001 From: Tom Aarsen Date: Fri, 18 Oct 2024 14:34:44 +0200 Subject: [PATCH 1/3] Throw a warning if compute_metrics is set, as it's not used --- sentence_transformers/trainer.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/sentence_transformers/trainer.py b/sentence_transformers/trainer.py index 97b0f13df..934454fa8 100644 --- a/sentence_transformers/trainer.py +++ b/sentence_transformers/trainer.py @@ -2,7 +2,6 @@ import logging import os -import warnings from collections import OrderedDict from contextlib import nullcontext from typing import TYPE_CHECKING, Any, Callable @@ -156,14 +155,20 @@ def __init__( raise RuntimeError("`Trainer` requires either a `model` or `model_init` argument") else: if model_init is not None: - warnings.warn( + logger.warning( "`Trainer` requires either a `model` or `model_init` argument, but not both. `model_init` will" " overwrite your model when calling the `train` method. This will become a fatal error in the next" - " release.", - FutureWarning, + " release." ) self.model_init = model_init + if compute_metrics is not None: + logger.warning( + "`compute_metrics` is currently not compatible with the SentenceTransformerTrainer. Please use the " + "`evaluator` argument instead for detailed evaluation metrics, or the `eval_dataset` argument for " + "the evaluation loss.", + ) + # Get a dictionary of the default training arguments, so we can determine which arguments have been changed # for the model card default_args_dict = SentenceTransformerTrainingArguments(output_dir="unused").to_dict() From 3f94d4bd2351f14f89e984ec71ae83d4faf1f1c4 Mon Sep 17 00:00:00 2001 From: Tom Aarsen Date: Fri, 18 Oct 2024 14:36:04 +0200 Subject: [PATCH 2/3] Remove "this will become a fatal error" --- sentence_transformers/trainer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sentence_transformers/trainer.py b/sentence_transformers/trainer.py index 934454fa8..f3ffe0d9f 100644 --- a/sentence_transformers/trainer.py +++ b/sentence_transformers/trainer.py @@ -157,8 +157,7 @@ def __init__( if model_init is not None: logger.warning( "`Trainer` requires either a `model` or `model_init` argument, but not both. `model_init` will" - " overwrite your model when calling the `train` method. This will become a fatal error in the next" - " release." + " overwrite your model when calling the `train` method." ) self.model_init = model_init From 2d8682be8ebf0eb810f0d5d63bc3c9318c56978d Mon Sep 17 00:00:00 2001 From: Tom Aarsen Date: Fri, 18 Oct 2024 14:36:24 +0200 Subject: [PATCH 3/3] Remove unneeded comma --- sentence_transformers/trainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentence_transformers/trainer.py b/sentence_transformers/trainer.py index f3ffe0d9f..50115f6b5 100644 --- a/sentence_transformers/trainer.py +++ b/sentence_transformers/trainer.py @@ -165,7 +165,7 @@ def __init__( logger.warning( "`compute_metrics` is currently not compatible with the SentenceTransformerTrainer. Please use the " "`evaluator` argument instead for detailed evaluation metrics, or the `eval_dataset` argument for " - "the evaluation loss.", + "the evaluation loss." ) # Get a dictionary of the default training arguments, so we can determine which arguments have been changed