From ad87fe8e1c5d0d12aa30130614124ae4ce016080 Mon Sep 17 00:00:00 2001 From: anakin87 Date: Thu, 27 Mar 2025 18:35:15 +0100 Subject: [PATCH 1/3] chore: use token in SASEvaluator and SentenceTransformersDiversityRanker --- haystack/components/evaluators/sas_evaluator.py | 9 +++------ .../rankers/sentence_transformers_diversity.py | 2 +- releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml | 5 +++++ .../rankers/test_sentence_transformers_diversity.py | 8 ++++---- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml diff --git a/haystack/components/evaluators/sas_evaluator.py b/haystack/components/evaluators/sas_evaluator.py index b9645a1ab9..fbc10230e5 100644 --- a/haystack/components/evaluators/sas_evaluator.py +++ b/haystack/components/evaluators/sas_evaluator.py @@ -120,7 +120,7 @@ def warm_up(self): return token = self._token.resolve_value() if self._token else None - config = AutoConfig.from_pretrained(self._model, use_auth_token=token) + config = AutoConfig.from_pretrained(self._model, token=token) cross_encoder_used = False if config.architectures: cross_encoder_used = any(arch.endswith("ForSequenceClassification") for arch in config.architectures) @@ -129,13 +129,10 @@ def warm_up(self): # Similarity computation changes for both approaches if cross_encoder_used: self._similarity_model = CrossEncoder( - self._model, - device=device, - tokenizer_args={"use_auth_token": token}, - automodel_args={"use_auth_token": token}, + self._model, device=device, tokenizer_args={"token": token}, automodel_args={"token": token} ) else: - self._similarity_model = SentenceTransformer(self._model, device=device, use_auth_token=token) + self._similarity_model = SentenceTransformer(self._model, device=device, token=token) @component.output_types(score=float, individual_scores=List[float]) def run(self, ground_truth_answers: List[str], predicted_answers: List[str]) -> Dict[str, Any]: diff --git a/haystack/components/rankers/sentence_transformers_diversity.py b/haystack/components/rankers/sentence_transformers_diversity.py index 41d897d908..246c19af78 100644 --- a/haystack/components/rankers/sentence_transformers_diversity.py +++ b/haystack/components/rankers/sentence_transformers_diversity.py @@ -199,7 +199,7 @@ def warm_up(self): self.model = SentenceTransformer( model_name_or_path=self.model_name_or_path, device=self.device.to_torch_str(), - use_auth_token=self.token.resolve_value() if self.token else None, + token=self.token.resolve_value() if self.token else None, model_kwargs=self.model_kwargs, tokenizer_kwargs=self.tokenizer_kwargs, config_kwargs=self.config_kwargs, diff --git a/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml b/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml new file mode 100644 index 0000000000..8448ae295b --- /dev/null +++ b/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml @@ -0,0 +1,5 @@ +--- +enhancements: + - | + Updated `SASEvaluator` and `SentenceTransformersDiversityRanker` to use the `token` parameter internally instead + of the deprecated `use_auth_token`. The public API of these components already utilizes `token`. diff --git a/test/components/rankers/test_sentence_transformers_diversity.py b/test/components/rankers/test_sentence_transformers_diversity.py index a819ee9bc4..fc00776fc9 100644 --- a/test/components/rankers/test_sentence_transformers_diversity.py +++ b/test/components/rankers/test_sentence_transformers_diversity.py @@ -290,7 +290,7 @@ def test_warm_up(self, similarity, monkeypatch): mock_model_class.assert_called_once_with( model_name_or_path="mock_model_name", device=ComponentDevice.resolve_device(None).to_torch_str(), - use_auth_token=None, + token=None, model_kwargs=None, tokenizer_kwargs=None, config_kwargs=None, @@ -740,7 +740,7 @@ def test_model_onnx_backend(self, mocked_sentence_transformer): mocked_sentence_transformer.assert_called_once_with( model_name_or_path="sentence-transformers/all-MiniLM-L6-v2", device="cpu", - use_auth_token=None, + token=None, model_kwargs={"file_name": "onnx/model.onnx"}, tokenizer_kwargs=None, config_kwargs=None, @@ -761,7 +761,7 @@ def test_model_openvino_backend(self, mocked_sentence_transformer): mocked_sentence_transformer.assert_called_once_with( model_name_or_path="sentence-transformers/all-MiniLM-L6-v2", device="cpu", - use_auth_token=None, + token=None, model_kwargs={"file_name": "openvino/openvino_model.xml"}, tokenizer_kwargs=None, config_kwargs=None, @@ -782,7 +782,7 @@ def test_dtype_on_gpu(self, mocked_sentence_transformer, model_kwargs): mocked_sentence_transformer.assert_called_once_with( model_name_or_path="sentence-transformers/all-MiniLM-L6-v2", device="cuda:0", - use_auth_token=None, + token=None, model_kwargs=model_kwargs, tokenizer_kwargs=None, config_kwargs=None, From 64e16ca41269573b45415b67780d4b619d2c3459 Mon Sep 17 00:00:00 2001 From: anakin87 Date: Fri, 28 Mar 2025 10:55:06 +0100 Subject: [PATCH 2/3] directly pass token to CrossEncoder --- haystack/components/evaluators/sas_evaluator.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/haystack/components/evaluators/sas_evaluator.py b/haystack/components/evaluators/sas_evaluator.py index fbc10230e5..1d1fb6d90e 100644 --- a/haystack/components/evaluators/sas_evaluator.py +++ b/haystack/components/evaluators/sas_evaluator.py @@ -128,9 +128,7 @@ def warm_up(self): # Based on the Model string we can load either Bi-Encoders or Cross Encoders. # Similarity computation changes for both approaches if cross_encoder_used: - self._similarity_model = CrossEncoder( - self._model, device=device, tokenizer_args={"token": token}, automodel_args={"token": token} - ) + self._similarity_model = CrossEncoder(self._model, device=device, token=token) else: self._similarity_model = SentenceTransformer(self._model, device=device, token=token) From b1dec57ba8fa40be2e12c97fd2b49c6c32695e83 Mon Sep 17 00:00:00 2001 From: anakin87 Date: Fri, 28 Mar 2025 11:30:48 +0100 Subject: [PATCH 3/3] restrict scope to SentenceTransformersDiversityRanker --- haystack/components/evaluators/sas_evaluator.py | 11 ++++++++--- .../diversity-ranker-hf-toke-8dcb6889ff625948.yaml | 5 +++++ releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml | 5 ----- 3 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 releasenotes/notes/diversity-ranker-hf-toke-8dcb6889ff625948.yaml delete mode 100644 releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml diff --git a/haystack/components/evaluators/sas_evaluator.py b/haystack/components/evaluators/sas_evaluator.py index 1d1fb6d90e..b9645a1ab9 100644 --- a/haystack/components/evaluators/sas_evaluator.py +++ b/haystack/components/evaluators/sas_evaluator.py @@ -120,7 +120,7 @@ def warm_up(self): return token = self._token.resolve_value() if self._token else None - config = AutoConfig.from_pretrained(self._model, token=token) + config = AutoConfig.from_pretrained(self._model, use_auth_token=token) cross_encoder_used = False if config.architectures: cross_encoder_used = any(arch.endswith("ForSequenceClassification") for arch in config.architectures) @@ -128,9 +128,14 @@ def warm_up(self): # Based on the Model string we can load either Bi-Encoders or Cross Encoders. # Similarity computation changes for both approaches if cross_encoder_used: - self._similarity_model = CrossEncoder(self._model, device=device, token=token) + self._similarity_model = CrossEncoder( + self._model, + device=device, + tokenizer_args={"use_auth_token": token}, + automodel_args={"use_auth_token": token}, + ) else: - self._similarity_model = SentenceTransformer(self._model, device=device, token=token) + self._similarity_model = SentenceTransformer(self._model, device=device, use_auth_token=token) @component.output_types(score=float, individual_scores=List[float]) def run(self, ground_truth_answers: List[str], predicted_answers: List[str]) -> Dict[str, Any]: diff --git a/releasenotes/notes/diversity-ranker-hf-toke-8dcb6889ff625948.yaml b/releasenotes/notes/diversity-ranker-hf-toke-8dcb6889ff625948.yaml new file mode 100644 index 0000000000..6e7c553245 --- /dev/null +++ b/releasenotes/notes/diversity-ranker-hf-toke-8dcb6889ff625948.yaml @@ -0,0 +1,5 @@ +--- +enhancements: + - | + Updated `SentenceTransformersDiversityRanker` to use the `token` parameter internally instead + of the deprecated `use_auth_token`. The public API of this component already utilizes `token`. diff --git a/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml b/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml deleted file mode 100644 index 8448ae295b..0000000000 --- a/releasenotes/notes/hf-token-62cabe53ecce8dbe.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -enhancements: - - | - Updated `SASEvaluator` and `SentenceTransformersDiversityRanker` to use the `token` parameter internally instead - of the deprecated `use_auth_token`. The public API of these components already utilizes `token`.