首页 > 解决方案 > 没有 Tensorflow Serving 的 GCP 中的 TensorFlow 模型部署

问题描述

机器学习模型:基于 Tensorflow(1.9 版)和 Python 3.6 版

数据输入:来自 Bigquery

数据输出:至 Bigquery

生产预测频率:每月

我开发了一个基于 TensorFlow 的机器学习模型。我在本地对其进行了培训,并希望将其部署在 Google Cloud Platform 中进行预测。

该模型从 Google Bigquery 读取输入数据,输出预测必须用 Google Bigquery 编写。在运行模型预测之前,必须运行一些数据准备脚本。目前我无法在生产中使用 BigQuery ML,因为它处于 Beta 阶段。此外,由于它是批量预测,我认为 Tensorflow Serving 不是一个好的选择。

我尝试过的部署策略:

  1. 使用 Google ML Engine 进行预测:这种方法在 GCS 上创建输出部分文件。这些必须合并并写入 Google Bigquery。所以在这种方法中,我必须启动一个虚拟机来执行数据准备脚本和 ML 引擎输出到 Google Bigquery 脚本。这增加了 VM 的 24x7 成本,仅用于在一个月内运行两个脚本。

  2. 使用 Dataflow 与 Google ML Engine 一起执行数据准备脚本:Dataflow 使用 python 2.7,而模型是在 Tensorflow 版本 1.9 和 python 版本 3.6 中开发的。所以不能使用这种方法。

  3. Google App Engine:使用这种方法,必须开发一个完整的 Web 应用程序才能提供预测服务。由于预测是批量的,这种方法不适合。此外,flask/django 必须与代码集成才能使用它。

  4. Google Compute Engine:使用这种方法,VM 将 24x7 运行,仅用于运行每月预测并运行两个脚本。这将导致大量的成本开销。

我想知道 Tensorflow 模型的最佳部署方法是什么,它有一些预处理脚本和后处理脚本。

标签: python-3.xtensorflowdeploymentgoogle-cloud-platformgoogle-bigquery

解决方案


关于选项 3,Dataflow 可以在作业结束时从 BigQuery 读取并将准备好的数据存储在 BigQuery 中。

然后,您可以让 Tensorflow 用于BigQueryReaderBigQuery 中的数据。

您可以使用的另一个是Datalab,这是一个笔记本,您可以在其中准备数据,然后将其用于预测。


推荐阅读