若要使用 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 中连接到模型以执行推理了。