在"顶点AI预测"上指定签名名称



我已经使用TFX管道在顶点AI平台中部署了一个tensorflow模型。该模型有自定义的服务签名,但我在预测时很难指定签名。

我在GCP AI平台中部署了完全相同的模型,我可以指定它。

根据顶点文档,我们必须传递一个包含Instances(List(和Parameters(Dict(值的字典。

我已经向这个函数提交了这些论点:

instances: [{"argument_n": "value"}]
parameters: {"signature_name": "name_of_signature"}

不起作用,它仍然获得模型的默认签名。

在GCP AI平台中,我已经能够预测直接在请求主体中指定签名名称:

response = service.projects().predict(
name=name,
body={"instances": instances,
"signature_name": "name_of_signature"},
).execute()

@编辑我发现使用gcloud的rawPredict方法可以工作。

这里有一个例子:

!gcloud ai endpoints raw-predict {endpoint} --region=us-central1 
--request='{"signature_name":"name_of_the_signature", 
"instances": [{"instance_0": ["value_0"], "instance_1": ["value_1"]}]}'

不幸的是,看看谷歌api模型代码,它只有predict方法,而没有raw_predict。所以我不知道它现在是否可以通过python sdk使用。

Vertex AI是一个更新的平台,其局限性将随着时间的推移而得到改进。"signature_name"可以添加到RawPredictRequest中的HTTP JSON Payload中,也可以像您所做的那样从gcloud中添加,但目前这在常规预测请求中不可用。

使用HTTP JSON负载:

示例:

input.json:

{
"instances": [
["male", 29.8811345124283, 26.0, 1, "S", "New York, NY", 0, 0],
["female", 48.0, 39.6, 1, "C", "London / Paris", 0, 1]],

"signature_name": <string>
}
curl 
-X POST 
-H "Authorization: Bearer $(gcloud auth print-access-token)" 
-H "Content-Type: application/json" 
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/endpoints/${ENDPOINT_ID}:rawPredict 
-d "@input.json"

相关内容

  • 没有找到相关文章

最新更新