Transformer和Predictor的协同部署

type
status
date
slug
summary
tags
category
icon
password
网址
 
默认情况下,KServe将Transformer和Predictor部署为独立的服务,允许您在不同的设备上部署它们并独立进行扩展。
然而,在某些情况下,您可能更倾向于将transformer和predictor部署在同一个pod中。以下是一些场景:
  1. 如果您的transformer与predictor紧密耦合,并且希望一起执行金丝雀部署。
  1. 如果您想减少sidecar资源消耗。
  1. 如果您想减少网络延迟。

开始之前

  1. 您的~/.kube/config应指向已安装KServe的集群。
  1. 您集群的Istio入口网关必须是网络可访问的
  1. 您可以在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关于多端口的讨论

检查推理服务状态

预期输出
注意
如果您的DNS包含 svc.cluster.local,则 Inferenceservice 不会通过Ingress暴露。您需要配置DNS使用自定义域名来暴露 isvc

运行预测

准备推理请求的输入。将以下Json复制到名为 input.json 的文件中。
现在,确定入口IP和端口并设置 INGRESS_HOSTINGRESS_PORT
您可以使用 curl 发送推理请求:
预期输出
上一篇
自定义Transformer推理
下一篇
推理图-概念
Loading...
文章列表
Kserve中文文档
快速开始
管理指南
用户指南
开发指南
机器学习概念
大模型周报