gpt4 book ai didi

python - 如何在非常大的数据集上训练 Word2vec?

转载 作者:IT老高 更新时间:2023-10-28 20:59:49 34 4
gpt4 key购买 nike

我正在考虑在网络爬虫转储中使用超过 10 TB+ 的大规模数据训练 word2vec。

我在 iMac 上亲自训练了 c 实现 GoogleNews-2012 dump (1.5gb) 花了大约 3 个小时来训练和生成 vector (对速度印象深刻)。虽然我没有尝试 python 实现 :( 我在某处读到在 wiki dump (11gb) 上生成 300 个 vector 长度的 vector 大约需要 9 天。

  1. 如何加速word2vec?我需要使用分布式模型或需要在 2-3 天内完成的硬件类型吗?我有 8gb 内存的 iMac。

  2. 哪个更快? Gensim python 还是 C 实现?

我看到 word2vec 实现不支持 GPU 训练。

最佳答案

有很多机会可以大规模创建 Word2Vec 模型。正如您所指出的,候选解决方案是分布式(和/或多线程)或 GPU。这不是一份详尽的 list ,但希望您对如何继续有所了解。

分布式/多线程选项:

  • Gensim在重要的地方使用 Cython,等于或不等于比 C 实现慢得多。 Gensim的多线程作品好吧,并且使用具有充足内存和大量核心显着减少 vector 生成时间。你可能想要使用 Amazon EC2 16 或 32 核实例进行调查。
  • Deepdist可以利用 gensim 和 Spark 在集群中分配 gensim 工作负载。 Deepdist 也有一些聪明的 SGD跨节点同步梯度的优化。如果你使用多核机器作为节点,你可以利用两者集群和多线程。

存在许多 Word2Vec GPU 实现。鉴于数据集的大小和有限的 GPU 内存,您可能必须考虑集群策略。

  • Bidmach显然非常快(但是缺乏文档,而且我承认我一直在努力让它工作)。
  • DL4J有一个 Word2Vec 实现,但该团队尚未实现 cuBLAS gemm,而且它与 CPU 相比相对较慢。
  • Keras是一个利用 Theano 的 Python 深度学习框架。虽然它本身没有实现 word2vec,但它确实实现了嵌入层,可用于创建和查询词 vector 。

Word2Vec 还有许多其他 CUDA 实现,它们的成熟度和支持程度各不相同:

我相信 SparkML 团队最近开始着手基于 cuBLAS 的原型(prototype) Word2Vec 实现。您可能需要对此进行调查。

关于python - 如何在非常大的数据集上训练 Word2vec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573873/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com