Кеширование промежуточных результатов в конвейере Spark ML

В последнее время я планирую перенести мой автономный код Python ML для запуска. Трубопровод ML вspark.ml оказывается довольно удобным, с оптимизированным API для цепочки этапов алгоритма и поиска по сетке гиперпараметров.

Тем не менее, я нашел поддержку одной важной функции в существующих документах:кеширование промежуточных результатов, Важность этой функции возникает, когда конвейер включает в себя интенсивные этапы вычислений.

Например, в моем случае я использую огромную разреженную матрицу для выполнения нескольких скользящих средних для данных временных рядов с целью формирования входных объектов. Структура матрицы определяется некоторым гиперпараметром. Этот шаг оказывается узким местом для всего конвейера, потому что я должен построить матрицу во время выполнения.

Во время поиска параметров у меня обычно есть другие параметры для проверки, кроме этого «параметра структуры». Так что, если я смогу повторно использовать огромную матрицу, когда «структурный параметр» не изменится, я смогу сэкономить массу времени. По этой причине я намеренно сформировал свой код для кеширования и повторного использования этих промежуточных результатов.

Итак, мой вопрос:может ли конвейер ML Spark автоматически обрабатывать промежуточное кэширование? Или я должен вручную сформировать код для этого? Если это так, есть ли лучшая практика, чтобы учиться?

Постскриптум Я изучил официальный документ и некоторые другие материалы, но, похоже, никто из них не обсуждал эту тему.

Ответы на вопрос(1)

Ваш ответ на вопрос