Earth Engine 支持的托管模型载荷格式

您必须配置自定义训练的模型,以便 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 原生搭配使用效果出色。