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

问题描述 投票:3回答:1

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

所以,我正在使用

model.infer_vector(sentence)

但是,问题是它花了太长时间,并没有采取任何论据,如“workers”。有没有办法通过线程或其他方式加快进程?我正在使用8gb ram的机器,当我使用时检查可用的核心

cores = multiprocessing.cpu_count()

它出来是8。

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

在此先感谢您的时间。

python gensim word2vec doc2vec
1个回答
1
投票

您可能会从多个线程调用infer_vector(),在需要推断向量的新数据的不同子集上获得轻微的加速。由于Python全局解释器锁('GIL'),仍然存在相当多的线程争用,阻止了所有内核的完全使用。

如果您的RAM足够大而无需交换,则可以将模型保存到磁盘,然后将其加载到8个单独的进程中,并且每个进程都对新数据的1/8进行推断。这是使所有CPU饱和的最佳方法。

任何更快的加速都需要对gensim中的infer_vector()实现进行优化 - 这是项目中的open issue,可以接受贡献的改进。

© www.soinside.com 2019 - 2024. All rights reserved.