適用於 Earth Engine 的託管自訂模型

如要使用 TensorFlow 或 PyTorch 等機器學習架構,透過自訂訓練模型執行推論,就必須將模型儲存並上傳至 Vertex AI,建立預測端點,並部署模型,以便在建立的端點上提供流量。

模型輸入

將模型儲存並上傳至 Vertex AI 前,請確認模型接受的資料格式為 Earth Engine 支援的酬載格式。詳情請參閱「酬載格式」頁面。

模型構件

下一步是將模型儲存為可在 Vertex AI 中代管的格式。

TensorFlow

以 TensorFlow 為基礎的模型可儲存為多種格式,但 Vertex AI 需要 SavedModel 格式。以 Keras 為基礎的模型必須使用 tf.keras.Model.export() 匯出為 SavedModel。其他 TensorFlow 模型則需要使用較原始的 tf.saved_model.save()。詳情請參閱 SavedModel 格式的說明文件。

PyTorch

PyTorch 模型準備模型構件以供預測服務的方式稍有不同。如果要建立自訂訓練模型,請先儲存模型。基於效能考量,建議您將 PyTorch 模型轉換為 TorchScript,並使用以下方式儲存模型檔案:

model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save

儲存模型檔案後,您必須封存檔案,才能部署至 Vertex AI。使用預先建構的容器時,模型名稱必須為「model」。如要封存模型,必須執行 torch-model-archiver,包括模型所需的任何自訂處理常式和其他檔案。以下是這類情況的範例:

torch-model-archiver -f \
  --model-name model \
  --version 1.0  \
  --serialized-file $model_file \
  --handler $hander_file \
  --extra-files $index_to_name_file \
  --export-path $model_path

將模型部署至 Vertex AI

儲存模型檔案後,下一步就是將模型上傳至 Vertex AI。如果模型構件尚未儲存在 Google Cloud Storage 中,請先使用 gsutil cp $model_path gs://${your-bucket}/models/model 等指令將模型封存檔案複製到該處。

複製完成後,您可以使用 Vertex AI 的 Model Registry 上傳模型,也可以使用 gcloud 指令列執行以下指令:

gcloud ai models upload \
  --artifact-uri=gs://{your-bucket}/models/model \
  --display-name=${display-name} \
  --container-image-uri=${model-container} \
  --container-grpc-ports=8500

提示:如要達到最佳效能,請使用 container-grpc-ports 標記啟用 gRPC 預測功能。如要進一步瞭解 gRPC 預測功能,請參閱酬載格式說明文件。您只能使用 gcloud 指令列工具指定這個標記。

模擬端點管理

模型上傳至 Vertex AI 後,請透過線上預測頁面建立新的端點,或使用 gcloud 指令列搭配 endpoints createendpoints deploy-model 指令,建立端點並部署模型。例如:

建立模型:

gcloud ai endpoints create \
  --display-name=${endpoint-name}

部署模型

gcloud ai endpoints deploy-model {endpoint-id} \
  --model=${model-id} \
  --traffic-split=0=100 \
  --display-name=${model-display-name} \
  --min-replica-count=${min-replica-count} \
  --max-replica-count=${max-replica-count}

模型部署完成後,您就可以在 Earth Engine 中連線至模型,執行推論作業。