Горячая загрузка моделей в контейнер с тензорным потоком - PullRequest
1 голос
/ 15 апреля 2019

Я знаю, как загрузить модель в контейнер, а также знаю, что мы можем создать статический конфигурационный файл, и когда мы запускаем обслуживающий контейнер тензорного потока, передаем его в контейнер, а затем используем одну из моделей внутри этих конфигурационных файлов, но я Вы хотите узнать, есть ли способ загрузить полностью новую модель (не более новую версию предыдущей модели) в работающий контейнер обслуживания тензорного потока. Я имею в виду, что мы запускаем контейнер с моделью-A, а затем загружаем модель-B в контейнер и используем его, можем ли мы сделать это? Если да, то как?

1 Ответ

3 голосов
/ 17 апреля 2019

Вы можете.

Сначала вам нужно скопировать файлы новой модели в model_base_path, который вы указали при запуске tf serve, чтобы сервер мог видеть новую модель.Макет каталога обычно таков: $ MODEL_BASE_PATH / $ model_a / $ version_a / * и $ MODEL_BASE_PATH / $ model_b / $ version_b / *

Затем вам нужно обновить tf serve с новым model_config_file, который включает в себя записьдля новой модели.См. здесь о том, как добавить записи в файл конфигурации модели .Чтобы сервер принял новую конфигурацию, есть два способа сделать это:

  1. сохранить новый файл конфигурации и перезапустить tf serve.
  2. перезагрузить конфигурацию новой модели на лету, не перезапуская tf serve.Этот сервис определен в model_service.proto как HandleReloadConfigRequest, но REST api сервиса, похоже, не поддерживает его, поэтому вам нужно полагаться на API gRPC.К сожалению, клиент Python для gRPC кажется нереализованным.Мне удалось сгенерировать клиентский код Java из файлов protobuf, но он довольно сложный.Пример здесь объясняет, как сгенерировать код клиента Java для выполнения логического вывода gRPC, и выполнение handleReloadConfigRequest () очень похоже.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...