我正在考虑在Web爬网转储上对大于10 TB +的大型大规模数据进行word2vec培训。
我个人训练c实施GoogleNews-2012转储(1.5gb)在我的iMac上花了大约3个小时来训练和生成向量(对速度印象深刻)。我没有尝试python实现虽然:(我读到某处,在300向量长度的wiki转储(11gb)上生成向量大约需要9天生成。
如何加速word2vec?我是否需要在2-3天内使用分布式模型或我需要哪种类型的硬件?我有8gb内存的iMac。
哪一个更快? Gensim python或C实现?
我看到word2vec实现不支持GPU培训。
答案 0 :(得分:32)
有大量机会可以大规模创建Word2Vec模型。正如您所指出的,候选解决方案是分布式(和/或多线程)或GPU。这不是一个详尽的清单,但希望你能得到一些关于如何进行的想法。
分布式/多线程选项:
存在许多Word2Vec GPU实现。鉴于数据集大小较大,GPU内存有限,您可能需要考虑群集策略。
Word2Vec还有许多其他CUDA实现,具有不同程度的成熟度和支持:
我相信SparkML团队最近开始采用基于cuBLAS的原型Word2Vec实现。您可能想要对此进行调查。