Операция .load()
по своей сути требует времени, особенно для чтения ввода-вывода, и больше времени для больших моделей.
Вы можете ускорить ввод-вывод, используя более быстрый том - например, SSD вместо вращающегося диска или тома удаленной сети.В некоторых случаях может помочь сохранение сжатой модели.(Но это помешает вашему mmap='r'
получить желаемый эффект, потому что сжатый массив на диске не может быть отображен в память. Обратите внимание, что отображение памяти может сохранить некоторую оперативную память, особеннов случае, когда несколько процессов загрузили один и тот же файл, но не могут в конечном итоге сэкономить время загрузки, в отличие от простой отсрочки времени загрузки до момента первого использования.)
Пока вы еще не сказалиразмер вашей модели или медленная загрузка, о которой вы даже упомянули, заставляет задуматься, настолько ли велика модель, а объем ОЗУ сравнительно небольшой, чтобы вызывать подкачку виртуальной памяти во время загрузки модели (и, следовательно, также накаждая последующая most_similar()
-подобная операция).С такими моделями вы никогда не захотите полагаться на виртуальную память - поэтому, если это так, то основным способом «ускорить процесс» будет работа в системе с большим объемом оперативной памяти.