bus error upon existing the program after using spacy on mac M1

mlmc2os5  于 3个月前  发布在  Mac
关注(0)|答案(7)|浏览(98)

如何复现行为

在M1上,任何使用spaCy解析文档的代码都会出现问题(仅在我的笔记本电脑上测试过)。
在Linux机器上运行正常。
[1] 73089总线错误
退出时发生。在sm和trf模型上都出现这种情况。

你的环境

spaCy信息

  • spaCy版本: 3.7.2
  • 平台: macOS-14.1.2-arm64-arm-64bit
  • Python版本: 3.11.3
  • Pipelines: en_core_web_sm (3.7.0), en_core_web_md (3.7.1), en_core_web_trf (3.7.2), en_core_web_lg (3.7.0)
9rbhqvlz

9rbhqvlz1#

如果你也在新的虚拟环境中安装了sentencepiece?

kxxlusnw

kxxlusnw3#

一般来说,这似乎是一个与sentencepiece相关的已知问题,它在curated-tokenizers中提供。然而,我目前不确定在实践中需要满足哪些条件才能遇到这个问题。

hmae6n7t

hmae6n7t4#

我认为这与 google/sentencepiece#579 的问题相同。不过,我不确定为什么加载了句子片段库。我们静态链接了句子片段。
无论如何,错误来自销毁 absl::Flag 。然而,对于句子片段的库使用,absl:Flag 不是必需的,但它往往会作为依赖项重新出现。我会看看我们是否能在 curated-tokenizers 中删除它,以避免不同版本的句子片段之间的冲突。

pjngdqdw

pjngdqdw6#

感谢您的报告!
提供的信息使这个看起来特定于 trf 模型,尤其是 curated-tokenizers 。如果您有一分钟的时间,您能否创建一个新的虚拟环境,不安装 torch,只使用 en_core_web_sm 模型,看看您是否仍然会得到相同的错误?

nc1teljy

nc1teljy7#

是的,看起来你是对的。在只安装了spacy和en_core_web_sm的干净Python 3.11环境中,一切都运行正常。

Python 3.11 + spacy + en_core_web_sm

~ python -c 'import spacy; npl = spacy.load("en_core_web_sm"); npl("some text")'
~

Python 3.11 + pytorch等库

✗ python -c 'import spacy; npl = spacy.load("en_core_web_sm"); npl("some text")'
[1]    54694 bus error  python -c

然而,仅仅安装trf模型(它也安装了torch等库)并没有导致这个问题出现:

(python311_clean) ➜  ~ python -c 'import spacy; npl = spacy.load("en_core_web_sm"); npl("some text")'
(python311_clean) ➜  ~ python -c 'import spacy; npl = spacy.load("en_core_web_trf"); npl("some text")'
(python311_clean) ➜  ~

相关问题