From 437cb702dd23adc1538e293a312a8ca1597848bd Mon Sep 17 00:00:00 2001 From: Akshith Ambekar Date: Tue, 23 Sep 2025 19:54:33 -0400 Subject: [PATCH] nn to device failure fix --- tueri/output_scanners/factual_consistency.py | 6 +++++- tueri/output_scanners/relevance.py | 7 ++++++- tueri/transformers_helpers.py | 12 ++++++++++-- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/tueri/output_scanners/factual_consistency.py b/tueri/output_scanners/factual_consistency.py index 1cb7bb63..e3f6e726 100644 --- a/tueri/output_scanners/factual_consistency.py +++ b/tueri/output_scanners/factual_consistency.py @@ -50,7 +50,11 @@ def __init__( use_onnx=use_onnx, ) if not use_onnx: - self._model = self._model.to(device()) + # Handle meta device properly - use to_empty() when moving from meta device + if hasattr(self._model, 'device') and str(self._model.device) == 'meta': + self._model = self._model.to_empty(device=device()) + else: + self._model = self._model.to(device()) self._model.eval() def scan(self, prompt: str, output: str) -> tuple[str, bool, float]: diff --git a/tueri/output_scanners/relevance.py b/tueri/output_scanners/relevance.py index c5715a37..402da9c9 100644 --- a/tueri/output_scanners/relevance.py +++ b/tueri/output_scanners/relevance.py @@ -110,7 +110,12 @@ def __init__( subfolder=model.subfolder, revision=model.revision, **model.kwargs, - ).to(device()) + ) + # Handle meta device properly - use to_empty() when moving from meta device + if hasattr(self._model, 'device') and str(self._model.device) == 'meta': + self._model = self._model.to_empty(device=device()) + else: + self._model = self._model.to(device()) LOGGER.debug("Initialized model", model=model, device=device()) self._model.eval() diff --git a/tueri/transformers_helpers.py b/tueri/transformers_helpers.py index 8fa34edb..1cf58632 100644 --- a/tueri/transformers_helpers.py +++ b/tueri/transformers_helpers.py @@ -93,7 +93,11 @@ def get_tokenizer_and_model_for_classification( low_cpu_mem_usage=False, **model.kwargs, ) - tf_model = tf_model.to(device()) + # Handle meta device properly - use to_empty() when moving from meta device + if hasattr(tf_model, 'device') and str(tf_model.device) == 'meta': + tf_model = tf_model.to_empty(device=device()) + else: + tf_model = tf_model.to(device()) LOGGER.debug("Initialized classification model", model=model, device=device()) return tf_tokenizer, tf_model @@ -131,7 +135,11 @@ def get_tokenizer_and_model_for_ner( low_cpu_mem_usage=False, **model.kwargs, ) - tf_model = tf_model.to(device()) + # Handle meta device properly - use to_empty() when moving from meta device + if hasattr(tf_model, 'device') and str(tf_model.device) == 'meta': + tf_model = tf_model.to_empty(device=device()) + else: + tf_model = tf_model.to(device()) LOGGER.debug("Initialized NER model", model=model, device=device()) return tf_tokenizer, tf_model