doc2vec - 如何更快地推断文档向量?

Dre*_*ams 5 python gensim word2vec doc2vec

我已经训练了大约 2300 个段落(每个段落在 2000-12000 个单词之间)的段落向量,每个段落的向量大小为 300。现在,我需要推断大约 100,000 个句子的段落向量,我将这些句子视为段落(每个句子大约 10-30 个)每个单词对应于之前已训练的 2300 个段落)。

所以,我正在使用

model.infer_vector(sentence)

但是,问题是它花费的时间太长,并且它不接受任何参数,例如“ workers”。!有没有办法可以通过线程或其他方式加速该过程?我使用的是带有 8GB 内存的机器,当我使用以下命令检查可用核心时

cores = multiprocessing.cpu_count()
Run Code Online (Sandbox Code Playgroud)

结果是8。

我需要这个来回答多项选择题。另外,是否还有其他库/模型doc2vec可以帮助完成此任务?

在此先感谢您的时间。

goj*_*omo 4

infer_vector()对于需要推断向量的新数据的不同子集,从多个线程调用可能会稍微加快速度。由于 Python 全局解释器锁 (\'GIL\'),仍然会出现相当多的线程争用,从而阻止所有核心的充分利用。

\n\n

如果您的 RAM 足够大,无需交换即可完成此操作,您可以将模型保存到磁盘,然后将其加载到 8 个单独的进程中,并让每个进程对 1/8 的新数据进行推理。这是让所有 CPU 饱和的最佳方式。

\n\n

任何更快的加速都需要对infer_vector()gensim \xe2\x80\x93 中的实现进行优化,这是项目上的一个开放问题,将接受贡献的改进。

\n