Как я могу развернуть искру AlsModel в микросервисе весенней загрузки

Я хочу создать микросервис с использованием весенней загрузки, который может предоставлять рекомендации, сделанные с помощью ранее обученного AlsModel. (совместная фильтрация с помощью apache spark mllib) AlsModel обучается в совершенно отдельной среде, которая не подходит для производственных сценариев использования. У нас есть методы для передачи файлов или данных, хранящихся в hdfs, на наш сервисный уровень (в виде файла или передачи данных в базу данных sql). Я знаю, что могу просто сохранить кадры данных о пользователях и элементах, передать их, а затем самостоятельно рассчитать прогнозы, но я хочу иметь более простое решение, которое хорошо обрабатывает регулярные обновления. На мой взгляд, процесс следующий:

  • Обучите модель внутри искрового кластера
  • Сохраните модель в файл (формат pmml ??)
  • Перенесите файл на сервисный уровень
  • Микросервис весенней загрузки просто загружает файл с помощью некоторой структуры (которая не использует искровые зависимости)
  • Наслаждайтесь волшебством spring-boot, упрощая все ;-)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
669
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если вы не хотите включать искровую библиотеку в приложение весенней загрузки.

Вы можете попробовать прыжок.

Deploying machine learning data pipelines and algorithms should not be a time-consuming or difficult task. MLeap allows data scientists and engineers to deploy machine learning pipelines from Spark and Scikit-learn to a portable format and execution engine.

Таким образом, вы можете использовать mleap для чтения искровой модели и использовать ее в своем весеннем загрузочном приложении.

Для большего количества вариантов использования вы можете увидеть этот проект sagemaker-sparkml-обслуживающий-контейнер. Amazon SageMaker также разработал полностью основанную на Java настройку обслуживания на базе mleap-runtime.

Спасибо. Взгляд на sagemaker действительно помог понять, как использовать mleap!

Kaojo 10.06.2019 20:59

У вас есть два возможных решения:

1) Используйте загрузочное приложение Spring и создайте микросервис, а внутри микросервиса используйте шаблон отдыха и позвоните в Apache Livy.

2) Вариант 2: вы можете создать приложение Springboot и внутренне использовать apache spark и запускать свои задания, но здесь у вас может быть несколько ограничений.

Спасибо за ваш ответ. Поскольку мы попробовали вариант 2, мы обнаружили, что запуск собственного искра в нашем приложении имеет слишком большую задержку для нашего варианта использования. Вариант 1, кажется, имеет еще большие накладные расходы во время выполнения. Есть ли у вас опыт, чего ожидать от задержки?

Kaojo 13.10.2019 21:46

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

vaquar khan 13.10.2019 21:56

Другие вопросы по теме