Каков наиболее эффективный способ встраивания предложений в распределенную систему Spark? - PullRequest
0 голосов
/ 04 января 2019

У меня есть файл со встраиванием слов (определяющий встраивание слов как векторное представление слова) в следующем формате:

a | [0.23, 0.04, ..., -0.22]
aaron | [0.21, 0.08, ..., -0.41]
... | ...
zebra | [0.97, 0.01, ..., -0.34]

Этот файл имеет размер около 2,5 ГБ.У меня также есть большое количество предложений, которые я хочу преобразовать в векторы, например:

Yes sir, today is a great day.
Would you want to buy that blue shirt?
...
Is there anything else I can help you with?

Моя стратегия встраивания предложений пока проста:

For each sentence:
  For each word:
    Obtain the vector representation of the word using the word embedding file.
  End
  Calculate the average of the word vectors of the sentence.
End

Я подумал, что так как яу меня есть большое количество предложений, которые я хочу вставить, я мог бы использовать Spark для этой задачи;хранение вложений слов в виде файла в HDFS и использование Spark SQL для запроса предложений из таблицы Hive, но, поскольку каждому узлу, вероятно, потребуется доступ ко всему файлу внедрения слов, что подразумевает сбор всего слова, внедряющего СДР, в каждыйузел, что делает связь между узлами очень дорогой.

Кто-нибудь имеет какие-либо идеи о том, как эта проблема может быть эффективно решена?Пожалуйста, дайте мне знать, если проблема не ясна или вы думаете, что я неправильно понял, как работает Spark.Я все еще учусь и буду очень признателен за вашу помощь!

Заранее спасибо.

1 Ответ

0 голосов
/ 04 января 2019

Прежде всего, вы word неизменны, и вы беспокоитесь о производительности сети, в вашем случае.Я думаю, что вы могли бы сделать word широковещательным параметром, поэтому word будет храниться в каждом узле локально, и вы только что передали все word только один раз (всего N раз, N - количество исполнителей).Тогда, если вы будете встраивать word и предложение одновременно, что означает необходимость передачи по сети, лучше выполнить локальное сокращение до окончательного агрегирования.

...