Python 如何在非常大的数据集上训练Word2vec?
我正在考虑在web爬网转储上培训word2vec,使其能够处理超过10 TB的海量数据 我在iMac上亲自培训了c实现GoogleNews-2012 dump(1.5gb),花了大约3个小时来训练和生成向量(速度令人印象深刻)。但我并没有尝试python实现:(我在某处读到,在wiki dump(11gb)上生成300个向量长度的向量大约需要9天Python 如何在非常大的数据集上训练Word2vec?,python,c,machine-learning,word2vec,Python,C,Machine Learning,Word2vec,我正在考虑在web爬网转储上培训word2vec,使其能够处理超过10 TB的海量数据 我在iMac上亲自培训了c实现GoogleNews-2012 dump(1.5gb),花了大约3个小时来训练和生成向量(速度令人印象深刻)。但我并没有尝试python实现:(我在某处读到,在wiki dump(11gb)上生成300个向量长度的向量大约需要9天 如何提高word2vec的速度?我是否需要使用分布式模型,或者需要什么类型的硬件才能在2-3天内完成?我有配备8gb ram的iMac 哪个更快?Ge
我发现word2vec实现不支持GPU培训。有很多机会可以大规模创建word2vec模型。正如您所指出的,候选解决方案是分布式(和/或多线程)或GPU。这不是一个详尽的列表,但希望您能对如何进行有所了解 分布式/多线程选项:
- 在重要的地方使用Cython,等于或不等于 比C实现慢得多。Gensim的多线程工作 嗯,而且使用一台内存充足、有大量内存的机器 cores显著减少向量生成时间。您可能希望 使用AmazonEC2 16或32个核心实例进行调查
- 可以利用gensim和Spark在集群中分布gensim工作负载。Deepdist也有一些聪明的SGD 跨节点同步渐变的优化。如果使用 多核机器作为节点,您可以同时利用这两个功能 集群和多线程
多个Word2VEC GPU实现,考虑到大数据集的大小和有限的GPU内存,你可能需要考虑一个聚类策略。
- 显然是非常快的(但是缺少文档,并且承认我一直在努力让它工作)
- 有一个Word2Vec实现,但是团队还没有实现cuBLAS gemm,而且相对于CPU来说速度相对较慢
- 是一个利用Theano的Python深度学习框架。虽然它本身没有实现word2vec,但它实现了一个嵌入层,可以用来创建和查询单词向量
- [内存管理看起来不错,但关于如何创建数据集的文档并不存在]
- [超级快速,但大型数据集上的GPU内存问题]