【发布时间】:2019-11-15 18:52:37
【问题描述】:
我正在使用 Gensim 的 LDAMulticore 来执行 LDA。我有大约 2800 万个小文档(每个大约 100 个字符)。
我已将 workers 参数设为 20,但顶部显示它仅使用 4 个进程。围绕它有一些讨论,它在阅读语料库时可能会很慢,例如: gensim LdaMulticore not multiprocessing? https://github.com/piskvorky/gensim/issues/288
但他们都使用 MmCorpus 。虽然我的语料库完全在记忆中。我的机器具有非常大的 RAM(250 GB),将语料库加载到内存中大约需要 40 GB。但即使在那之后,LDAMulticore 也只使用了 4 个进程。我将语料库创建为:
corpus = [dictionary.doc2bow(text) for text in texts]
我无法理解这里的限制因素是什么?
【问题讨论】:
-
我也有同样的问题。记录器在“在此节点上使用串行 LDA 版本”行之后变得静默
-
我在使用 vecLib 的 Mac 上运行时遇到了类似的问题。我使用 OpenBLAS 解决了这个问题。不确定它是否与此相关(BLAS 库和多线程在您的平台上的工作方式)。
标签: python lda gensim topic-modeling