当托管用于预测的tensorflow模型时,谷歌应用程序引擎和谷歌ML引擎之间的主要区别是什么



我有一个本地训练的tensorflow模型,它需要托管在云服务上,这样我就可以在我的flutter应用程序中调用它来对输入数据进行预测。

在寻找解决方案时,我发现人们通过使用ML引擎(通过firebase函数调用模型预测(和App引擎(使用RESTneneneba API从托管模型中获得预测(

如果两者都达到了相同的结果,为什么要有两种服务?一个比另一个快吗?还是更便宜?除了有一个前置应用程序之外,这两种服务是相同的吗?

要使用Tensorflow Serving为模型提供服务,您需要。。。tensorflow服务,一个安装在您的环境中的二进制程序。

因此,使用App Engine标准,您不能安装任何二进制文件,只能定义要使用的依赖项。

使用App Engine Flexible,您可以设置自定义的运行时环境,并提供Dockerfile进行自定义。这一次,您无法在App Engine flex上安装TensorFlow Serving并为您的模型提供服务。

注意:应用程序引擎标准缩放到0,当你不处理任何请求时,你不会付款。应用程序引擎灵活扩展到1,因此,无论流量与否,您至少要支付1个实例的全职费用


在AI平台侧,您有两种类型的机器类型。传统的MLS1,其行为和定价非常接近应用程序引擎标准(可扩展到0,因此,如果创建了实例,则至少要支付15分钟的运行时间,…(,但安装了tensorflow服务,因此,您可以使用它来提供预测。

然而,MLS1类型支持高达500Mb的型号,它不适合您。

N1型是AI platform在线预测服务的新平台(在这种类型的机器上不可能批量(。更多的CPU,GPU,内存,型号高达2Gb,。。。但是,与App Engine Flexible一样,该平台的规模为1,因此即使你不提供流量,你也要付费。

注意:AI平台服务机器针对预测和tensorflow进行了优化。应用程序引擎针对一般用途进行了优化,尤其是网络服务


我去年做了一次关于差异的演讲


从那时起,我对这些解决方案并不满意。我找到了第三种为模特服务的方式,这次是Cloud Run。我写了一篇文章,其中模型已经打包在容器中(容器启动时间更长(冷启动(,但请求处理效率更高(,另一篇文章是在每个请求上加载模型(处理时间更长,但可用于不同类型的模型(。

在最后一篇文章中,我发布了一个开源解决方案。如果需要,我可以根据您的要求进行更新。


最后一点:也许可以在应用引擎标准上使用TensorflowJS模型和NodeJS运行时环境来提供tensorflow模型。我从未测试过(我既不是数据科学家,也不是NodeJS开发人员(

最新更新