【问题标题】:Python: Spacy NER and memory consumptionPython:Spacy NER 和内存消耗
【发布时间】:2020-08-15 21:11:55
【问题描述】:

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

【问题讨论】:

    标签: python memory spacy named-entity-recognition


    【解决方案1】:

    对于 spacy v2.2,需要加载所有内容。有一个小错误会影响md 模型中的key2row:在md 版本v2.2.0-v2.2.5 中改进key2row 的大小和加载时间,请参阅https://stackoverflow.com/a/60541041/461847

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      相关资源
      最近更新 更多