Python:Spacy NER 和内存消耗

Python: Spacy NER and memory consumption

我使用 SPACY 进行命名实体识别。我在 en_core_web_md 上有自己的训练模型。我的模型大小是 223 兆字节。当模型加载到内存中时,它使用 800 兆字节。是否有可能出于 NER 目的不加载所有内容(lexemes.bin、string.json、key2row),而仅加载向量和模型(分别重 4 兆字节和 24 兆字节)以消耗更少的内存?或者是否需要为 NER 加载?

对于spacy v2.2,需要全部加载。 md 模型中有一个影响 key2row 的小错误:要改进版本 v2.2.0-v2.2.5md 模型中 key2row 的大小和加载时间,请参阅 .

如果您使用自己的自定义向量从头开始训练模型,则与 key2row 相关的错误已在 v2.2.4 中修复,但提供的 v2.2 md 模型仍将具有这个问题。

计划用于 v2.3:删除 lexemes.bin 仅按需创建词位。通过这些更改,md 模型在磁盘上的占用空间将减少约 50%,初始模型加载速度将加快约 50%。英文 md 模型在最初加载时看起来内存小了大约 300MB,但内存使用量会增加一点,因为它构建了一个词位缓存。参见:https://github.com/explosion/spaCy/pull/5238