如何解决在托管用于预测的 tensorflow 模型时,Google 应用引擎和 Google ML 引擎之间的主要区别是什么?
我有一个经过本地训练的 tensorflow 模型,需要托管在云服务上,以便我可以从我的 Flutter 应用程序中调用它来对输入数据进行预测。
在寻找解决方案时,我发现人们通过使用 ML 引擎(通过 firebase 函数调用模型预测)和应用引擎(使用 REST API 从托管模型获取预测)实现了上述目标
如果两者都达到相同的结果,为什么要有两个服务?一个比另一个快吗?或者更便宜?除了有一个前置应用之外,这两种服务是否相同?
解决方法
要使用 Tensorflow Serving 为模型提供服务,您需要... tensorflow 服务,要在您的环境中安装的二进制文件。
因此,对于 App Engine 标准,您不能安装任何二进制文件,您只能定义要使用的依赖项。
借助 App Engine Flexible,您可以设置 custom runtime environment 并提供 Dockerfile 以对其进行自定义。这次您无法安装 TensorFlow Serving 并在 App Engine flex 上提供您的模型。
注意:App Engine Standard 缩放为 0,如果您不处理任何请求,则无需付费。 App Engine 灵活扩展为 1,因此,无论是否有流量,您至少需要为 1 个实例全职付费。
在 AI Platform 方面,您有 2 types of machine type。旧版 MLS1
的行为和定价非常接近 App Engine 标准(缩放到 0,如果创建实例,则至少支付 15 分钟的运行时间,...)但安装了 tensorflow 服务,因此,您可以使用它来提供预测服务。
但是,MLS1
类型支持高达 500Mb 的模型,它应该不适合您。
N1
类型是 AI PLatform 在线预测服务的新平台(无法在此类机器上批量处理)。更多 CPU、GPU、内存、高达 2Gb 的模型……但是,与 App Engine Flexible 一样,平台可扩展到 1,因此即使您不提供流量,您也需要付费。
注意:AI Platform 服务机器针对预测和 tensorflow 进行了优化。 App Engine 针对通用目的进行了优化,尤其是网络服务。
我执行了talk about the differences last year
从那时起,我对这些解决方案并不满意。我找到了第三种提供模型的方法,这次是使用 Cloud Run。 I wrote an article with the model already package in the container(更长的容器启动(冷启动)但处理请求的效率更高)和 another one to load the model on each request(更长的处理时间,但可重复用于不同类型的模型)。
在最后一个中,我发布了一个开源解决方案。如果需要,我可以根据您的要求更新它。
最后一点:也许可以在 App Engine Standard 上使用 TensorflowJS 模型和 NodeJS 运行时环境提供 tensorflow 模型。我从未测试过(我既不是数据科学家也不是 NodeJS 开发人员)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。