0

我在 python 中有一个训练有素的机器学习模型来获得回归输出,这个模型是用 scikit-learn 训练的

我想将此预测插入到 Firestore 中,我将使用云功能每天使用云调度程序进行调度。

我的问题是我必须在哪里存储这个训练有素的机器学习模型?

  • 我可以将它存储到谷歌存储中并在我的云函数中调用它来获取预测吗?
  • 或者我应该将它存储到人工智能平台中?

  • 如果答案是人工智能平台,为什么?存入AI平台有什么优势?我可以用那里的新数据训练模型吗?

我一直在读到这是可能的,但我不知道为什么更好以及如何去做

4

1 回答 1

2

你的问题有几个答案。

你想构建一个单体还是 2 个微服务:

  • Monolith,我的意思是相同的服务(函数或容器)由调度程序触发,加载模型,执行预测并将其保存到 firestore
  • 微服务:
    • 1 服务由调度程序触发,请求预测并将结果存储到 Firestore
    • 1个服务加载模型并回答预测查询。

在单体应用中,不推荐使用 AI 平台。在微服务中,您可以将预测服务托管在 AI Platform 上,而将另一个托管在 Cloud Functions 上

对于 tensorflow,我还提出了另一种托管模型的解决方案:在 Cloud Run 中。我为此写了一篇文章。我对 SciKit 的了解还不够多,无法告诉您同样的事情是可能的,但它是一个不错的选择。

关于将训练好的模型存储在哪里?绝对在云存储上。即使您使用我的文章中描述的容器构建 Cloud Run 服务,我在其中下载模型并将其加载到容器中(因此模型不会在运行时从 Storage 下载,仅在构建时),Cloud Storage是不可变对象的最佳位置。

最后,关于 AI Platform 的最后一个问题。同一个名字,几个服务。您可以托管您的模型并执行在线预测,并且您可以训练您的模型。它不是相同的内部服务,不同的用法,不同的 API。如果您在 AI Platform 上托管在线预测,则在训练新模型时没有区别/优势

于 2019-10-28T12:49:09.723 回答