机器学习模型:基于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 Engine输出到Google Bigquery脚本。仅在一个月内运行两个脚本,这会增加24x7的VM成本。
使用Dataflow和Google ML Engine一起执行数据准备脚本:当模型在Tensorflow 1.9版和python 3.6版中开发时,Dataflow使用python 2.7。因此无法使用这种方法。
Google App Engine :使用这种方法,必须开发完整的Web应用程序才能提供预测。由于预测是成批的,因此此方法不适合。另外,flask / django必须与代码集成在一起才能使用。
Google Compute Engine :使用这种方法,该VM将运行24x7全天候运行,仅用于运行每月预测并运行两个脚本。这将导致大量的成本开销。
我想知道对于Tensorflow模型最好的部署方法是什么,它具有一些预处理和后期处理脚本。
答案 0 :(得分:1)
我也没有发现此流程容易或直观。有两个新更新可能对您的项目有帮助:
答案 1 :(得分:0)
关于选项3,数据流可以在工作结束时从BigQuery读取并将准备好的数据存储在BigQuery中。
然后,您可以让Tensorflow使用programmatically not possible从BigQuery中获取数据。
另一个可以使用的是BigQueryReader
,这是一个笔记本,您可以在其中准备数据,然后将其用于预测。