По сути, я просто хочу использовать конвейер трансформеров() для классификации данных, но независимо от того, какую модель я пытаюсь использовать, он возвращает одну и ту же ошибку, заявляя, что Numpy недоступен.
Код, который я запускаю:
pipe = pipeline("text-classification", model = "AdamLucek/roberta-llama3.1405B-twitter-sentiment")
sentiment_pipeline('Today is a great day!')
# other model i've tried:
sentiment_pipeline = pipeline(model = "cardiffnlp/twitter-roberta-base-sentiment-latest", tokenizer = "cardiffnlp/twitter-roberta-base-sentiment-latest")
sentiment_pipeline('Today is a great day!')
Ошибка, которую я получаю:
RuntimeError Traceback (most recent call last)
Cell In[49], line 1
----> 1 sentiment_pipeline('Today is a great day!')
File ~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\transformers\pipelines\text_classification.py:156, in TextClassificationPipeline.__call__(self, inputs, **kwargs)
122 """
123 Classify the text(s) given as inputs.
124
(...)
153 If `top_k` is used, one such dictionary is returned per label.
154 """
155 inputs = (inputs,)
--> 156 result = super().__call__(*inputs, **kwargs)
157 # TODO try and retrieve it in a nicer way from _sanitize_parameters.
158 _legacy = "top_k" not in kwargs
File ~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\transformers\pipelines\base.py:1257, in Pipeline.__call__(self, inputs, num_workers, batch_size, *args, **kwargs)
1249 return next(
1250 iter(
1251 self.get_iterator(
(...)
1254 )
1255 )
1256 else:
-> 1257 return self.run_single(inputs, preprocess_params, forward_params, postprocess_params)
File ~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\transformers\pipelines\base.py:1265, in Pipeline.run_single(self, inputs, preprocess_params, forward_params, postprocess_params)
1263 model_inputs = self.preprocess(inputs, **preprocess_params)
1264 model_outputs = self.forward(model_inputs, **forward_params)
-> 1265 outputs = self.postprocess(model_outputs, **postprocess_params)
1266 return outputs
File ~\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\transformers\pipelines\text_classification.py:208, in TextClassificationPipeline.postprocess(self, model_outputs, function_to_apply, top_k, _legacy)
204 outputs = model_outputs["logits"][0]
206 if self.framework == "pt":
207 # To enable using fp16 and bf16
--> 208 outputs = outputs.float().numpy()
209 else:
210 outputs = outputs.numpy()
RuntimeError: Numpy is not available
Я уже пробовал просто удалить и переустановить трансформаторы и numpy, и для обеих установлены самые последние версии (и они должны быть совместимы).
У кого-нибудь есть идеи, как это решить?
Пытаться:
pip install "numpy<2"
затем перезапустите ядро.
Я попробовал и думаю, в этом корень проблемы. Хотя, даже если в моем активном ядре установлен numpy версии 1.26.4, я получаю это предупреждение при импорте конвейера: A module that was compiled using NumPy 1.x cannot be run inNumPy 2.0.0 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.
@Leo_Lighthouse Это предупреждение для numpy 2.0
. Вам нужно создать новую виртуальную среду и установить numpy 1.26.4
, а затем попробовать использовать трансформеры.
Это помогает? stackoverflow.com/questions/71689095/…