Каков хороший способ ускорить тестовые прогоны с использованием более крупных пространственных моделей? - PullRequest
0 голосов
/ 04 марта 2020

Я построил несколько тестов, опираясь на модель en_core_web_md. Для загрузки в память на моем компьютере модели требуется ~ 15 сек c, что затрудняет выполнение тестов.

Существует ли разумный способ ускорить его?

1 Ответ

1 голос
/ 05 марта 2020

В моделях 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 с). Оставшееся время - это в основном загрузка строк и лексем для модели, которую на данный момент сложнее оптимизировать. Так что это немного улучшает ситуацию, но общее время загрузки все еще относительно обременительно для коротких тестов.

...