问题描述
我正在尝试使用 spacy 来训练命名实体识别器,但它似乎只使用了一个线程。我做了一些研究,它似乎是一个 Cython 和 GIL 问题,可以通过一种方法来更改位于“管道”方法中的线程数。我还发现这篇非常有用的文章:https://explosion.ai/blog/multithreading-with-cython
问题是这是为 spacy v2 和 v3.0 编写的,使用配置文件等完全改变了它们的格式。我在一台有 8 个线程的机器上使用 Linux。如何使用 spacy v3.0 成功实现多线程?
解决方法
从 spacy v2 开始不支持多线程。当前的替代方法是使用 ray 与包 spacy-ray
一起进行分布式训练:https://spacy.io/usage/training#parallel-training