Является ли универсальный кодировщик предложений Tensorflow_Hub потокобезопасным? - PullRequest
0 голосов
/ 29 мая 2020

Я хочу использовать сервер Django для реализации поиска на естественном языке с универсальным кодировщиком предложений (USE) и базой данных на основе Annoy. Загрузка USE выполняется очень медленно:

 import tensorflow as tf
 import tensorflow_hub as hub
 module_url = "https://tfhub.dev/google/universal-sentence-encoder/4"
 model = hub.load(module_url)

Невозможно загружать предварительно обученное внедрение USE для каждого запроса браузера.

Планируется создать экземпляр USE как глобальный объект и сохранить в сессии. Каждый запрос использует объект в сеансе для доступа к объекту USE для встраивания предложения запроса.

Вопрос:

Является ли Tensorflow_hub потокобезопасным USE при получении вложений для запросов, поскольку существует только 1 глобальный USE объект?

Если запущен сервер Django на производстве Nginx, будет настроено несколько рабочих. Если Tensorflow настроен на использование графического процессора, это означает, что только 1 рабочий может быть настроен для Nginx?

Если он не безопасен для потоков, какой хороший шаблон проектирования можно здесь использовать?

1 Ответ

0 голосов
/ 17 июня 2020

Я думаю, что для решения вашей проблемы вы можете изучить TF Serving для ваших нужд обслуживания, и он позаботится о графическом процессоре, нескольких рабочих и всех проблемах с нагрузкой. Из вашего Django приложения вы можете просто вызвать TF Serving API.

...