使用更大的 spacy 模型加速测试运行的好方法是什么?
What is a good way to speed up test runs utilizing larger spacy models?
我已经构建了一些依赖于 en_core_web_md
模型的测试。该模型需要大约 15 秒才能加载到我计算机上的内存中,这使得测试变得很痛苦运行。
有什么聪明的方法可以加快速度吗?
v2.2.[0-5] md
模型有一个小错误,导致它们加载特别慢(参见 https://github.com/explosion/spaCy/pull/4990)。
您可以重新格式化模型包中的一个文件以缩短加载时间。
在模型包的 vocab
目录中(例如 lib/python3.7/site-packages/en_core_web_md/en_core_web_md-2.2.5/vocab
):
import srsly
orig_data = srsly.read_msgpack("key2row")
new_data = {}
for key, value in orig_data.items():
new_data[int(key)] = int(value)
srsly.write_msgpack("key2row", new_data)
在我的测试中,这几乎将加载时间减半(18 秒到 10 秒)。剩下的时间主要是为模型加载字符串和词位,此时更难进一步优化。所以这稍微改善了一些事情,但总体加载时间对于短测试来说仍然是相对繁重的。
我已经构建了一些依赖于 en_core_web_md
模型的测试。该模型需要大约 15 秒才能加载到我计算机上的内存中,这使得测试变得很痛苦运行。
有什么聪明的方法可以加快速度吗?
v2.2.[0-5] md
模型有一个小错误,导致它们加载特别慢(参见 https://github.com/explosion/spaCy/pull/4990)。
您可以重新格式化模型包中的一个文件以缩短加载时间。
在模型包的 vocab
目录中(例如 lib/python3.7/site-packages/en_core_web_md/en_core_web_md-2.2.5/vocab
):
import srsly
orig_data = srsly.read_msgpack("key2row")
new_data = {}
for key, value in orig_data.items():
new_data[int(key)] = int(value)
srsly.write_msgpack("key2row", new_data)
在我的测试中,这几乎将加载时间减半(18 秒到 10 秒)。剩下的时间主要是为模型加载字符串和词位,此时更难进一步优化。所以这稍微改善了一些事情,但总体加载时间对于短测试来说仍然是相对繁重的。