Привет, чат!
Тут в почту прилетела приглашалка для early bird регистрации на Spark+AI Summit 2018 (можно сэкономить 200 зеленых рублей)
https://databricks.com/sparkaisummit/north-americaНо самое интересное в другом. Вот, что в слогане “THE WORLD'S LARGEST EVENT FOR THE APACHE SPARK COMMUNITY — NOW WITH AI”. Ну, короче, мы взяли старый-добрый Spark Summit и вкрячили туда AI для вящего хайпа, подумал я. Но интерес, все же, возобладал, да и написать что-то в канальчик пора. Тут, отвлекусь, и напомню, что, обычно, машинку на Spark делают по известному сценарию. Отмолотить датасет на спарке, засэмплировать часть на драйвер, обучить модельку локально, заброадкастить модельку на экзекьюторы и предсказать распределенно. Конечно, учить модели можно и с помощью
Spark.ML, но он достаточно убог (что изменится в релизе 2.3 я уточню и напишу отдельным постом). Но вообще вся боль текущего
Spark.ML изложена в бенчмарке
https://github.com/rambler-digital-solutions/criteo-1tb-benchmark#algorithmsТак вот, полез я смотреть, что там с AI на Spark. У Databricks по этому поводу даже целый раздел документации
https://docs.databricks.com/applications/deep-learning/index.html. Там, впрочем, никакого распределенного обучения не нашлось. Неудивительно, ведь кто-то должен управлять ресурсами. Ни YARN, ни Mesos, ни спарковский планировщик в GPU не умеют. Поэтому классическая схема с локальным обучением и распределенным инференсом в деле.
Если у кого-то есть знания, про распределенное обучение сеток на спарке, кидайте в канальчик, обсудим!