如要使用 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 中連線至模型,執行推論作業。