6

У меня есть обучаемая модель Tensorflow, и я хочу использовать метод прогнозирования с помощью REST API. Я могу подумать о том, чтобы использовать Flask для создания простого REST API, который получает JSON в качестве входных данных, а затем вызывает метод прогнозирования в Tensorflow и затем возвращает прогнозируемый результат на стороне клиента.Подавать тренированную модель Tensorflow с REST API с использованием Flask?

Я хотел бы знать, есть ли какие-либо проблемы с этим, особенно в производственной среде?

Большое спасибо!

+0

У вас есть успех? Жду с нетерпением. –

ответ

2

Первой проблемой, которая приходит мне в голову, является производительность.

Команда TensorFlow, похоже, разработала использование сервера/клиента. Возможно, вы захотите изучить tensorflow serving. По умолчанию используется протокол gRPC для протокола связи.

+1

Я согласен, но знаете ли вы, сколько мы страдаем? Как только мы восстанавливаем модели и повторно используем их на сервере фляжек, возможно, это не повредит слишком много. –

+0

@SungKim Вы имеете в виду, что вы действительно предпочитаете использовать флягу? – user1515940

0

Мы используем Flask + TensorFlow, работающий на работе. Наша установка может быть не самым оптимальным способом обслуживания моделей, но она выполняет свою работу, и она до сих пор отлично подходит для нас.

Установка заключается в следующем:

  1. Поскольку tfserving принимает навсегда построить, мы построили Docker изображение (не поддержка GPU или что-нибудь, но это работает только служить моделью, и это быстрее и лучше, чем служить это непосредственно из огромного монолита Python/Flask). Изображение сервера модели можно найти здесь: https://hub.docker.com/r/epigramai/model-server/
  2. Затем Flask используется для настройки API. Чтобы отправлять запросы на сервер модели, нам нужен клиент прогнозирования grcp, поэтому мы построили его на Python, который мы можем импортировать непосредственно в API флешки, https://github.com/epigramai/tfserving_predict_client/.

Хорошо, что модель не обслуживается прикладной программой Flask API. Сервер модели изображения докеров можно легко заменить на сервер модели, работающий на графическом процессоре, скомпилированном для аппаратного обеспечения машин, а не в контейнере докеров.

+0

можете ли вы сказать что-нибудь о выводах, которые вы видите с помощью этой настройки? (а также то, что добавляет API-интерфейс фляжки) – Mark

+0

Для нашего случая использования он отлично работает, но мы не получаем тонны запросов, поэтому домены API до вывода не являются «обязательными» в нашем прецеденте. Я бы сказал, что эта настройка с накладными расходами при отправке запросов на сервер модели и т. Д. Примерно такая же скорость, как просто загрузка моделей в память с использованием тензорного потока и колбы в одном и том же монолите. Мы считаем эту настройку полезной, потому что мы можем удалить сложность тензорного потока из приложения python flask. Мы не проводили много испытаний и сравнивали время вывода, ключевым преимуществом для нас является разделение проблем. – stianlp

Смежные вопросы