Transformer和Predictor的协同部署
type
status
date
slug
summary
tags
category
icon
password
网址
默认情况下,KServe将Transformer和Predictor部署为独立的服务,允许您在不同的设备上部署它们并独立进行扩展。
然而,在某些情况下,您可能更倾向于将transformer和predictor部署在同一个pod中。以下是一些场景:
- 如果您的transformer与predictor紧密耦合,并且希望一起执行金丝雀部署。
- 如果您想减少sidecar资源消耗。
- 如果您想减少网络延迟。
开始之前
- 您的~/.kube/config应指向已安装KServe的集群。
- 您集群的Istio入口网关必须是网络可访问的。
- 您可以在kserve代码库中找到代码示例。
部署推理服务
由于predictor和transformer在同一个pod中,它们需要监听不同的端口以避免冲突。
Transformer
配置为监听8080端口(REST)和8081端口(GRPC),而Predictor
监听8085端口(REST)。Transformer
通过本地socket在8085端口调用Predictor
。使用以下命令部署Inferenceservice
。预期输出
警告:transformer容器名称必须设置为
transformer-container
。否则,模型卷将无法挂载到transformer容器中,这可能导致错误。警告:predictor容器名称必须设置为
kserve-container
。KServe在内部使用此名称来识别predictor。storage uri只能在此容器中指定。如果在transformer容器中指定,isvc创建将失败。注意:目前,协同部署仅支持kserve模型容器的自定义容器规范。
注意:在Serverless模式下,为predictor指定端口将导致isvc创建失败,因为knative不支持指定多个端口。由于此限制,predictor无法暴露给集群外部。更多信息请参见knative关于多端口的讨论。
检查推理服务状态
预期输出
注意
运行预测
准备推理请求的输入。将以下Json复制到名为
input.json
的文件中。您可以使用
curl
发送推理请求:预期输出
上一篇
自定义Transformer推理
下一篇
推理图-概念
Loading...