【问题标题】:Is the Word2Vec Spark implementation distributed?Word2Vec Spark 实现是分布式的吗?
【发布时间】:2020-12-17 13:21:03
【问题描述】:

我对 Spark 比较陌生,在理解 Spark ML 方面有些困难。

我的问题是我有 3TB 的文本,我想在上面训练 Word2Vec 模型。我正在运行的服务器有大约 1TB 的内存,所以我暂时无法保存文件。

文件保存为我导入 Spark 的镶木地板。我的问题是 Spark ML 库是否分发 Word2Vec 培训?如果是这样,在处理这么大的文本文件时我需要担心什么吗?如果没有,是否有在训练 Word2Vec 时流式传输这些数据?

【问题讨论】:

  • 大概训练是分布式的。你为什么要担心这个呢?
  • @mck 我担心如果没有分发培训,那么它会将文件保存在本地而不是从 RDD 访问它。

标签: python pyspark nlp apache-spark-mllib word2vec


【解决方案1】:

从这个 https://github.com/apache/spark/pull/1719 已经在 2014 年,您可以了解到并行处理是可能的 - 每个分区。

引用:

为了使我们的实现更具可扩展性,我们训练每个分区 并在每次迭代后合并每个分区的模型。 为了使模型更准确,可能需要多次迭代。

但你必须有分区数据。

【讨论】:

  • 这是一个很好的答案。对于其他感兴趣的人,我意识到我做错了什么。基本上,如果你想在一个非常大的语料库上训练一个词嵌入,你希望看到 Spark 中的 numPartitions 大于 1。到目前为止,我一直在训练 1。
  • 你知道如何确定最佳分区数吗?到目前为止,我一直在训练 1 个分区和 1 个迭代器。您知道确定最佳数量的任何原则吗?
  • 这是禅宗问题。无论如何高于 1 并且需要考虑在给定时间点您有多少执行者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
  • 2018-03-18
  • 2016-11-01
  • 2018-12-04
  • 2015-11-17
  • 2012-10-07
  • 2021-02-26
相关资源
最近更新 更多