您必须配置自定义训练的模型,以便 Earth Engine 能够向托管在 Vertex AI 上的模型发送格式正确且可解释的推理请求。
支持的模型输入
执行推理时,Earth Engine 会代表您构建请求。使用 ee.Model.fromVertexAi
将模型连接器实例化时,指定 EE 将使用 payloadFormat
参数发送请求的载荷格式。
gRPC 预测载荷
所有托管的 TensorFlow 模型都可以通过 gRPC 协议发送预测结果。这是将托管的模型与 Earth Engine 相关联的首选方式,因为这样可以缩短预测延迟时间并提高可靠性。
GRPC_TF_TENSORS
使用 GRPC_TF_TENSORS
载荷格式将 gRPC 与 TensorFlow 模型搭配使用。
所有属性和/或频段都将编码为单个 PredictRequest
。此 PredictRequest
将转换为张量字典,供模型使用。
GRPC_SERIALIZED_TF_TENSORS
如果您想迁移之前已与 Earth Engine 集成的 Cloud AI Platform 模型,而无需修改该模型,请使用 GRPC_SERIALIZED_TF_TENSORS
格式。如果您未在 Vertex AI 中为模型设置 container_grpc_ports
,则需要重新上传并重新部署。
GRPC_SERIALIZED_TF_EXAMPLES
对于支持 tf.Example 协议缓冲区的模型,请使用 GRPC_SERAILZED_TF_EXAMPLES
。Earth Engine 将发送一个名为“input”的单个张量,其中包含 Example proto 的 UTF-8 编码 proto ByteString。
HTTP API 载荷
Vertex AI 支持连接到 HTTP 推理端点。Earth Engine 支持多种常见的 HTTP 载荷格式。默认情况下,所有 Vertex AI 自定义模型都支持 HTTP 推理 API。
SERIALIZED_TF_TENSORS
连接到 Vertex AI 中的托管模型时,这是默认的 payloadFormat
。在使用 TensorFlow 模型时,此载荷格式是所有 HTTP 载荷格式中最高效的。
Earth Engine 将按以下方式构建输入:对于推理请求所需的每个波段和属性,都会是发送到托管模型的 instances
对象中的单个键值对。
每个键都将是频段或属性名称,每个值都将是 Base64 编码的 TensorProto ByteString,以 string_val
的形式提供。
RAW_JSON
对于其他模型框架,我们可以发送的最灵活的格式是包含命名输入和值的 JSON 字典。默认情况下,此载荷格式可与 PyTorch 和 AutoML 模型搭配使用。
不过请注意,所有数值都会转换为 JSON 字符串。例如,如需表示数字 12.345,我们将其编码为字符串“12.345”。此载荷格式不支持大型推理载荷。
ND_ARRAYS
这与 RAW_JSON
载荷格式类似,但会省略键,只传入一个数字列表,其格式与对 NumPy ndarray 调用 to_list()
相同。此载荷格式与 PyTorch 原生搭配使用效果出色。