Прежде всего, вам нужно разбить вашу модель на несколько этапов.Из вашего вопроса я вижу шаги предварительной обработки и вывода модели.Ваша предварительная обработка включает в себя такие зависимости, как FFTW.Вы не указали, какая у вас модель, но я предполагаю, что она также требует некоторой среды и / или зависимостей.
Сказав это, вам нужно реализовать 2 сервисаза каждый шаг.Лучше упаковать их в образы докеров, чтобы сохранить каждый контейнер изолированным, и вы сможете легко их развертывать.
Масштабируемость на рычаге докера может быть достигнута путем развертывания в облачных провайдерах и оркестровки докеров с помощью AWS ECS илиKubernetes.
Существует проект с открытым исходным кодом гидро-обслуживание , который может помочь вам в этой задаче.
В этом случае вам просто нужно сосредоточиться на самих моделях,hydro-serving
заботится об инфраструктуре.
Если этап предварительной обработки реализован в виде сценария Python - мы можем развернуть его со всеми deps из requirements.txt
в отдельных контейнерах.То же самое верно и для модели - она имеет встроенные модели Tensorflow и Spark.В противном случае легко адаптировать существующий механизм для удовлетворения ваших требований (другой язык / инструментарий)
Затем, предполагая, что у вас уже есть экземпляр hydro-serving
, вы загружаете свои шаги с помощью hs upload --host $HOST --port $PORT
и составляете конвейер приложения.с вашими моделями.Вы можете получить доступ к своему приложению через HTTP API, GRPC API или Kafka. * Было бы здорово, если бы вы указали, какие файлы вы пытаетесь отправить в REST API.Возможно, вам нужно будет как-то их кодировать, чтобы отправить их через REST API.С другой стороны, вы можете просто отправить их как есть через GRPC API.
Раскрытие информации: я являюсь разработчиком hydro-Обслуживание