Bog'liq Цэй Ш., Байлесчи С., и др. - JаvaScript для глубокого обучения (Библиотека программиста) - 2021
Глава 12. Тестирование, оптимизация и развертывание моделей
503 Второй способ: преобразовать модель из TensorFlow.js в формат, допускающий
выдачу с помощью известной существующей серверной технологии, например
стандартной системы TensorFlow Serving. Цитата из документации по адресу
http://
www.tensorflow.org/tfx/guide/serving
:
«TensorFlow Serving — гибкая и высокопроизводи- тельная система выдачи для моделей машинного обучения, рассчитанная на среду промышленной эксплуатации. TensorFlow Serving упрощает развертывание новых алгоритмов и экспериментов с сохранением архитектуры и API сервера. Система TensorFlow Serving интегрируется “из коробки” с моделями TensorFlow, но ее легко можно расширить на другие типы моделей и данных». Пока что мы сериализовали все модели TensorFlow.js только в JavaScript
форматы. Система TensorFlow Serving ожидает модели в стандартном формате
TensorFlow — SavedModel. К счастью, благодаря проекту tfjsconverter преобразо
вание в требуемый формат не представляет трудностей.
В главе 5 (посвященной переносу обучения) мы показали, как использовать мо
дели в формате SavedModel, созданные с помощью Pythonреализации TensorFlow,
в TensorFlow.js. Для обратного сначала необходимо установить пакет tensorflowjs из
системы управления пакетами pip:
pip install tensorflowjs
Далее необходимо запустить исполняемый файл, указав входные данные:
tensorflowjs_converter \
--input_format=tfjs_layers_model \
--output_format=keras_saved_model \
/path/to/your/js/model.json \
/path/to/your/new/saved-model
В результате выполнения этой команды создается новый каталог
saved-model
с требуемой топологией и весовыми коэффициентами в понятном TensorFlow
Serving формате. После этого вы можете следовать инструкциям по созданию
сервера TensorFlow Serving и выполнять к работающей модели gRPCзапросы
на предсказание. Существуют и управляемые решения. Например, Google Cloud
Machine Learning Engine позволяет загружать сохраненные модели в Cloud
Storage и выполнять их как сервис, без необходимости поддержания работы
сервера или отдельной машины. Дополнительную информацию об этом можно
найти по адресу
https://cloud.google.com/ml-engine/docs/tensorflow/deploying-models
.
Преимущество работы модели в облачном сервисе — полный контроль над
ней: удобная телеметрия выполняемых запросов и быстрота обнаружения про
блем. При обнаружении непредвиденной проблемы в модели можно быстро ее
отключить или обновить без риска наличия ее копий на неподконтрольных вам
машинах. Недостатки: уже упоминавшиеся выше дополнительная задержка
и проблемы с защитой персональной информации. Работа с облачным серви
сом означает также дополнительные затраты — как в денежном выражении, так
и в смысле затрат труда на сопровождение, поскольку за конфигурацию системы
отвечаете вы.