【发布时间】:2017-05-30 05:06:58
【问题描述】:
我正在使用 python Gensim 来训练 doc2vec。是否有可能允许此代码在 AWS (s3) 上分发。 提前谢谢你
【问题讨论】:
标签: python-2.7 amazon-s3 aws-lambda doc2vec
我正在使用 python Gensim 来训练 doc2vec。是否有可能允许此代码在 AWS (s3) 上分发。 提前谢谢你
【问题讨论】:
标签: python-2.7 amazon-s3 aws-lambda doc2vec
Gensim 的 Doc2Vec 并非旨在将训练分布在多台机器上。调整其最初的批量培训来做到这一点将是一个重要而复杂的项目。
您确定您的数据集和目标需要这样的分布吗?您可以在具有多核和 128GB+ RAM 的单台机器上完成很多工作。
请注意,您还可以在较小的代表性数据集上训练 Doc2Vec 模型,然后在冻结模型上使用其 .infer_vector() 方法来计算任意数量的附加文本的 doc-vectors。那些冻结的模型可以在多台机器上旋转——允许任意分布的文档向量计算。 (这比分发初始培训要容易得多。)
【讨论】:
.infer_vector 并且很可能我需要这样做,因为我的数据非常大,并且每次都在新数据进入系统时训练 doc2vec 是不切实际的。问题是我的数据以 pyspark.sql.dataframe.DataFrame 的形式出现,并且为了允许推理,我需要 TaggedDocument 格式才能使用 .infer_vector()。当我将df.select("text").rdd.flatMap(lambda r: r).collect() 与如此大的数据集一起使用时,我会被卡住很长时间。我如何有效地做到这一点以及如何允许任意分布的计算。