Gensim LdaMulticore不能正确地进行多处理(仅使用4个工人)

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

我正在使用Gensim的LDAMulticore执行LDA。我有大约2千8百万个小文档(每个约100个字符)。

我给工人的参数是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]

我无法理解这里的限制因素是什么?

python lda gensim topic-modeling
1个回答
0
投票

我会检查您使用的批次大小

我发现在批处理X n_workers文档数量 更大]的情况下,我无法利用我拥有的所有可用工人。这是有道理的,因为您每遍都给每个工作人员提供许多文档。如果不考虑批次值,您可能会“饿死”其中一些。

我不确定它是否可以解决您的特定问题,但这确实是很多人提到多核无法按预期在多处理方面“起作用”的原因

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