Языковые модели в пространстве НЛП. Время загрузки языковых моделей для встраивания слов
Я изучаю НЛП, используя Python и пакет НЛП Spacy.
Spacy предлагает 4 языковые модели для английского языка:
1) en_core_web_sm (маленький) 10 МБ
2) en_core_web_md (средний) 91 МБ 685 тыс. Ключей, 20 тыс. Уникальных векторов (300 измерений)
3) en_core_web_lg (большой) 788 МБ 685 тыс. Ключей, 685 тыс. Уникальных векторов (300 измерений)
4) en_vectors_web_lg (большой) 631 МБ, включая векторы,1070971 ключ,1070971 уникальных векторов (300 измерений)
Я думал, что создание документа класса NLP с использованием более крупной модели (больше МБ) займет больше времени. Но это не тот случай.
Я передаю роман "Дракула" объемом около 200 страниц в конструктор класса, используя 4 модели, и вычисляю время, необходимое для создания класса. Это код и время.
import spacy
start=time.time()
nlp_en =spacy.load('en')
doc_en = nlp_en(dracula_book)
end1 = time.time()
time1=end1-start
print('time to load en ',time1)
nlp_en_sm = spacy.load('en_core_web_sm')
doc_en_sm = nlp_en_sm(dracula_book)
end2 = time.time()
time2=end2-end1
print('time to load en_core_web_sm ',time2)
nlp_en_md = spacy.load('en_core_web_md')
doc_en_md = nlp_en_md(dracula_book)
end3= time.time()
time3=end3-end2
print('time to load en_core_web_md ',time3)
nlp_en_lg = spacy.load('en_core_web_lg')
doc_en_lg = nlp_en_lg(dracula_book)
end4= time.time()
time4=end4-end3
print('time to load en_core_web_lg ',time4)
nlp_en_vecs =spacy.load('en_vectors_web_lg')
doc_en_vecs = nlp_en_vecs(dracula_book)
end5= time.time()
time5=end5-end4
print('time to load en_vectors_web_lg ',time5)
Код загружает в основном модель и передает текст в класс.
Результаты во времени следующие (в секундах):
время для загрузки документа в классе EN 31,46
время для загрузки документа в классе en_core_web_sm 32.88
время загрузки документа в классе en_core_web_md 53,25
время загрузки документа в классе en_core_web_lg 45.04
время для загрузки документа в классе en_vectors_web_lg 16.61
Вопрос в том, что для загрузки модели требуется одно и то же время, почему я должен получить модель с меньшим количеством слов? меньший. Первая модель (я думаю, для того, чтобы она была маленькой) не содержит векторов слов. Опять же, зачем мне отказываться от векторов слов, если время создания классов еще больше, чем загрузка последней модели, которая идет с векторами.
Спасибо за ответ.