在加载BERT模型时,我如何调试Python中的分段错误?



我正在尝试测试这个KeyBERT模型。我是Python的新手(在R方面有很多经验)。由于错误消息如此之短,我不确定如何调试此问题。我的问题是,我如何调试这与这么少的信息?从哪里开始呢?

我有一个新的Anaconda与Python 3.9.13安装:

Python 3.9.13 (main, Aug 25 2022, 18:29:29) [Clang 12.0.0 ] :: Anaconda, Inc. on darwin

当尝试初始化KeyBERT模型时,我得到一个分割错误。我不确定接下来的步骤将是调试这个。我精通R,但对Python还是新手,所以我没有调试步骤的工具箱。有什么想法吗,从哪里开始?

>>> from keybert import KeyBERT
>>> kw_model = KeyBERT()
zsh: segmentation fault  python

我在Jupyter笔记本上运行了它,得到了相同的结果。我第一次使用它时,下载了模型(我希望成功?)但是当尝试初始化模型时,我得到了这个段错误。

编辑添加,我使用faulthandler来得到这个输出:

(base) user@place ~ % python -q -X faulthandler
>>> from keybert import KeyBERT
>>> kw_model = KeyBERT()
Fatal Python error: Fatal Python error: Segmentation fault
Segmentation faultThread 0x
00000002054742c0 (most recent call first):
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1568 in _load_from_state_dict
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 469 in load
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 473 in load
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 473 in load
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 475 in _load_state_dict_into_model
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 2517 in _load_pretrained_model
File "/Users/user/opt/anaconda3/lib/python3.9/site-packages/transformers/modeling_utils.py", line 2326 in from_pretrained
zsh: segmentation fault  python -q -X faulthandler

我已经解决了这个问题步骤

  1. 使用conda重新安装PyTorch
  2. 我先进口torch,再进口KeyBERT

运行成功,无错误,输出与预期一致。感谢所有阅读本文的人。

最新更新