【问题标题】:How to train doc2vec on AWS cluster using spark如何使用 spark 在 AWS 集群上训练 doc2vec
【发布时间】:2017-05-30 05:06:58
【问题描述】:

我正在使用 python Gensim 来训练 doc2vec。是否有可能允许此代码在 AWS (s3) 上分发。 提前谢谢你

【问题讨论】:

    标签: python-2.7 amazon-s3 aws-lambda doc2vec


    【解决方案1】:

    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() 与如此大的数据集一起使用时,我会被卡住很长时间。我如何有效地做到这一点以及如何允许任意分布的计算。
    • 如上所述,gensim 的 Doc2Vec 不是为多机或多进程训练而设计的——所以你可能想退出 Spark,编写你将用于单机的所有文档——将训练处理到临时文件,在 Spark 外部进行训练,然后使(冻结的、只读的)训练模型可用于以后的 Spark 步骤。
    猜你喜欢
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多