0

我无法将使用 BigQuery 创建的 AutoML 模型部署到 AI Platform 以进行在线预测。

我通过 SQL 使用标准过程在 BigQuery 中创建了一个 AutoML 模型:

CREATE OR REPLACE MODEL `model_name`
OPTIONS
  (model_type='automl_regressor', budget_hours=2.0,
    ... ) AS
SELECT ...)

这工作正常,我能够成功获得预测结果。我现在想将其部署为在线预测。为此,我通过Export ModelBigQuery Cloud Console 中的函数将模型导出到 GCS 存储桶。这为我提供了存储桶中的目录,其中包含以下内容:

assets/
saved_model.pb
variables/

然后,我转到 AI Platform 控制台并创建了一个模型,然后使用以下预构建的容器设置为该模型创建了一个版本:

  • Python版本:3.7
  • 框架:TensorFlow
  • 框架版本:2.3.1
  • 机器学习运行时版本:2.3

我已将存储桶的 Cloud Storage 路径设置为包含我上面列出的内容的目录,并继续为我的模型创建版本。这样做后,我会在一段时间后收到此错误:

Create Version failed. Bad model detected with error: "Failed to load model: Loading servable: {name: default version: 1} failed: Not found: Op type not registered 'DecodeProtoSparseV2' in binary running on localhost. Make sure the Op and Kernel are registered in the binary running in this process. Note that if you are loading a saved graph which used ops from tf.contrib, accessing (e.g.) `tf.contrib.resampler` should be done before importing the graph, as contrib ops are lazily registered when the module is first accessed.\n\n (Error code: 0)"

有点难过,因为我认为这是我可以利用 BigQuery 生成的 ML 模型的方式。这里的步骤有什么问题吗?目前甚至可以部署这样的模型进行在线预测吗?如果没有,有没有办法可以转换模型以便部署?任何帮助,将不胜感激!

4

2 回答 2

1

您还可以使用此处的文档使用 AutoML 容器/Docker 部署在 BigQuery 中训练的 AutoML 模型。这类似于您如何导出和部署使用 AutoML Tables 直接训练的模型。

于 2021-02-22T19:10:53.637 回答
1

据我了解,您已经automl_regressor在 BigQuery ML 中训练了一个模型,并打算将其用于 AI Platform 的在线预测。但是,根据文档,无法automl_regressor用于在线预测。

  • 模型类型 AUTOML_REGRESSOR 和 AUTOML_CLASSIFIER 的导出模型不支持用于在线预测的 AI Platform 部署。

根据您的需要,您可以从此处的 BigQuery ML 列表中选择另一个模型,该模型可以部署用于在线预测。

此外,您还可以直接使用 AutoML 训练您的模型,并将其部署并用于在线预测。不过,请注意 AutoML 模型用于特定的预测要求,例如此处所述。此外,您需要遵循文档来训练模型。

于 2021-02-22T09:37:41.483 回答