適用於 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 create 和 endpoints 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 中連結模型,執行推論。