概述
TensorFlow Serving 是 Google 开发的开源库,有助于为生产用例部署机器学习模型。它充当训练模型和生产环境之间的桥梁,实现 TensorFlow 模型的无缝部署和服务。
TensorFlow Serving 提供了一个可扩展且高效的架构,用于管理、更新和监控生产中的机器学习模型。它解决了处理并发请求、扩展以服务高流量以及允许无缝更新而不导致停机的挑战。
在本文中,我们将详细探讨 TensorFlow Serving。我们将介绍其架构、设置步骤,以及如何在实际机器学习应用程序中使用 TensorFlow Serving.nent 部署和管理 TensorFlow 模型。
TensorFlow 服务架构
TensorFlow Serving 的架构被设计为可扩展、模块化和可扩展。它遵循客户端-服务器范例,其中客户端发送包含输入数据的请求,服务器以模型的预测进行响应。让我们仔细看看 TensorFlow Serving 架构的关键组件:
-
客户:
客户端负责向 TensorFlow Serving 服务器发送预测请求。它可以是需要根据已部署模型进行预测的任何应用程序,例如 Web 服务或移动应用程序。
-
模型服务器:
模型服务器是TensorFlow Serving的核心组件。它管理模型的加载和卸载、提供预测服务并处理各种模型版本。它公开了一个定义良好的 API,客户端可以使用该 API 来请求预测。
-
服务内容:
servable 是 TensorFlow 模型的可加载单元。它可以代表同一模型的不同版本或多个模型。模型服务器可以同时处理多个服务,从而实现模型版本控制和 A/B 测试。
-
装载机:
加载器负责将服务加载到内存中。TensorFlow Serving 使用延迟加载方法,这意味着仅当预测请求到达时模型才会加载到内存中。
设置 TensorFlow 服务
在使用 TensorFlow Serving 部署模型之前,您需要在系统上进行设置。TensorFlow Serving 可以使用 Docker 或作为系统包安装。我们将概述使用 Docker 设置 TensorFlow Serving 的步骤:
-
安装 Docker:
如果您尚未安装 Docker,请按照 Docker 官方网站上针对您的操作系统的说明进行操作。
-
拉取 TensorFlow 服务图像:
使用以下命令拉取 TensorFlow Serving Docker 镜像:
docker pull tensorflow/serving
输出:
-
运行 TensorFlow 服务:
拉取映像后,通过指定模型的位置来启动具有所需模型的 TensorFlow Serving 容器。例如:
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata" docker run -t --rm -p 8501:8501 \ -v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \ -e MODEL_NAME=half_plus_two \ tensorflow/serving &
输出:
在这里,将/path/to/model/directory替换为包含已保存的 TensorFlow 模型的目录的路径,并将model_name 替换为模型的名称。
-
测试部署:
TensorFlow Serving 启动并运行后,您可以发送测试请求以确保一切正常工作。使用以下命令发送测试请求:
curl -d '{"instances": [1.0, 2.0, 5.0]}' \ -X POST http://localhost:8501/v1/models/half_plus_two:predict
输出:
{ "predictions": [2.5, 3.0, 4.5] }
将input_data替换为您想要获取预测的测试数据。
设置完 TensorFlow Serving 后,让我们继续讨论使用 TensorFlow Serving 提供 TensorFlow 模型的步骤。
使用 TensorFlow Serving 为 TensorFlow 模型提供服务
为了使用 Tensorflow 服务部署模型,我们需要执行以下步骤:
- 步骤 1.安装依赖项。
- 步骤 2.构建模型。
- 步骤 3.预处理输入。
- 步骤 4.对预测进行后处理。
- 步骤 5.保存模型。
- 步骤 6.检查训练后的模型。
- 步骤 7.导出模型。
- 步骤 8.使用 Tensorflow 服务部署模型。
现在我们将了解如何使用 MobileNet 预训练模型来使用 Tensorflow 服务来部署模型。