【发布时间】:2019-03-08 08:45:06
【问题描述】:
机器学习模型:基于 Tensorflow(1.9 版)和 Python 3.6 版
数据输入:来自 Bigquery
数据输出:至 Bigquery
生产预测频率:每月
我开发了一个基于 TensorFlow 的机器学习模型。我已经在本地对其进行了培训,并希望将其部署在 Google Cloud Platform 中进行预测。
模型从 Google Bigquery 读取输入数据,输出预测必须用 Google Bigquery 编写。在运行模型预测之前,必须运行一些数据准备脚本。目前我无法在生产中使用 BigQuery ML,因为它处于 Beta 阶段。此外,由于它是批量预测,我认为 Tensorflow Serving 不是一个好的选择。
我尝试过的部署策略:
-
使用 Google ML Engine 进行预测:这种方法在 GCS 上创建输出部分文件。这些必须合并并写入 Google Bigquery。所以在这种方法中,我必须启动一个虚拟机来执行数据准备脚本和 ML 引擎输出到 Google Bigquery 脚本。这增加了 24x7 的 VM 成本,仅在一个月内运行两个脚本。
-
使用 Dataflow 与 Google ML Engine 一起执行数据准备脚本:Dataflow 使用 python 2.7,而模型是在 Tensorflow 1.9 版和 python 3.6 版中开发的。所以不能用这种方法。
-
Google App Engine:使用这种方法,必须开发一个完整的网络应用程序才能提供预测服务。由于预测是批量的,这种方法不适合。此外,flask/django 必须与代码集成才能使用它。
-
Google Compute Engine:使用这种方法,VM 将 24x7 全天候运行,仅用于运行每月预测并运行两个脚本。这将导致大量成本开销。
我想知道什么是 Tensorflow 模型的最佳部署方法,它有一些预处理和后处理脚本。
【问题讨论】:
标签: python-3.x tensorflow deployment google-cloud-platform google-bigquery