GCP 上的 Pytorch:此端点上的机器类型不可用

问题描述

我是 GCP 的新手,所以请原谅我在这里询问/遗漏了一些明显的东西。

我正在尝试使用自定义 pytorch 模型在 GCP 上部署和创建版本资源。直到现在,一切都运行良好,直到我尝试创建模型的新版本。然后我不断得到: INVALID_ARGUMENT:此端点上的机器类型不可用。

我试过在他们的列表 here 中的不同类型之间切换,但没有成功。我错过了什么?

这是我运行以部署的脚本:

MODEL_NAME='test_iris'
MODEL_VERSION='v1'
RUNTIME_VERSION='2.4'
MODEL_CLASS='model.PyTorchIrisClassifier'
PYTORCH_PACKAGE='gs://${BUCKET_NAME}/packages/torch-1.8.1+cpu-cp37-cp37m-linux_x86_64.whl'

disT_PACKAGE='gs://${BUCKET_NAME}/models/Test_model-0.1.tar.gz'
GCS_MODEL_DIR='models/'
REGION="europe-west1"


# Creating model on AI platform
gcloud alpha ai-platform models create ${MODEL_NAME}\
--region=europe-west1 --enable-logging \
--enable-console-logging

gcloud beta ai-platform versions create ${MODEL_VERSION} --model=${MODEL_NAME} \
    --origin=gs://${BUCKET_NAME}/${GCS_MODEL_DIR} \
    --python-version=3.7 \
    --machine-type=mls1-c4-m2\
    --runtime-version=${RUNTIME_VERSION} \
    --package-uris=${disT_PACKAGE},${PYTORCH_PACKAGE} \
    --prediction-class=${MODEL_CLASS}


谢谢!

解决方法

根据 documentation,当您的模型版本使用 legacy (MLS1) machine type 时,您只能部署自定义预测例程。但是,如 here,

所述,您不能在此类机器上使用区域端点
  • 区域端点仅支持 Compute Engine (N1) 机器类型。您不能在区域端点上使用旧版 (MLS1) 机器类型。

如我所见,您指定了一个带有 --region 标志的区域端点,它不支持您的用例所需的机器类型。因此,您需要将模型及其版本更改为全局端点,这样您就不会再遇到错误。

此外,当您在 gcloud create model --region 内指定区域端点时,您需要在创建模型的版本时指定相同的区域。另一方面,在全局端点 gcloud create model --regions 中创建模型时,您可以省略命令 gcloud ai-platform versions create 中的区域标志。 请注意,--regions 命令仅用于全局端点

最后,我必须指出,根据 documentation,在为全局端点选择区域时,在创建模型时使用 --regions 标志,您的预测节点在指定区域。不过,管理您的资源的 AI Platform 基础架构可能不一定在同一区域运行。