google-cloud-platform - 在 Google Cloud Vertex AI 上使用客户处理程序进行部署
问题描述
我正在尝试在 Google Vertex AI 平台上部署一个 TorchServe 实例,但根据他们的文档(https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#response_requirements),它需要响应具有以下形状:
{
"predictions": PREDICTIONS
}
其中PREDICTIONS是一个 JSON 值数组,表示您的容器生成的预测。
不幸的是,当我尝试在postprocess()
自定义处理程序的方法中返回这样的形状时,如下所示:
def postprocess(self, data):
return {
"predictions": data
}
TorchServe 返回:
{
"code": 503,
"type": "InternalServerException",
"message": "Invalid model predict output"
}
请注意,这data
是一个列表列表,例如:[[1, 2, 1], [2, 3, 3]]。(基本上,我是从句子中生成嵌入)
现在,如果我只是简单地返回data
(而不是 Python 字典),它可以与 TorchServe 一起使用,但是当我在 Vertex AI 上部署容器时,它会返回以下错误: ModelNotFoundException
. 我假设 Vertex AI 抛出此错误,因为返回形状与预期不匹配(参见文档)。
是否有人成功地在 Vertex AI 上使用自定义处理程序部署了 TorchServe 实例?
解决方案
实际上,确保 TorchServe 正确处理输入字典(实例)解决了这个问题。似乎文章上的内容对我不起作用。
推荐阅读
- python - 使用 selenium 在 python 中处理多个选项卡时出现 IndexError
- amazon-web-services - 如何使用生命周期策略使文件而不是 S3 存储桶中的目录过期?
- javascript - 为什么我的 if 语句将我的整数 I 保持在 2
- python - 如何修复缓冲区 dtype 不匹配,预期为“float32_t”但得到“双”
- php - 子菜单不复制 WordPress 下拉菜单中的样式
- python - Pandas:如何绘制 imdb 电影总预算与 pandas 中的单独类型?
- c# - 是否可以允许在派生类中实现抽象方法,但只能在基类中调用?
- javascript - JS 模块模式中的 AJAX
- c# - 如何复制数组?
- c# - 在 RouteAttribute 上访问自定义属性 DescriptionAttribute