模型推理运行时-Scikit-learn
type
status
date
slug
summary
tags
category
icon
password
网址
本示例将指导您如何使用
InferenceService
CRD 的 v1beta1
版本来部署 scikit-learn
模型。请注意,默认情况下,v1beta1
版本将通过与现有 V1 数据平面兼容的 API 暴露您的模型。本示例将向您展示如何通过 开放推理协议 来提供模型服务。训练模型
第一步是训练一个示例
scikit-learn
模型。请注意,该模型随后将被保存为 model.joblib
。本地测试模型
一旦您获得序列化的
model.joblib
,我们就可以使用 KServe Sklearn Server 来启动本地服务器。注意
此步骤是可选的,仅用于测试,您可以直接跳转到使用 InferenceService 部署。
使用 KServe SklearnServer
前提条件
首先,要在本地使用 KServe sklearn 服务器,您需要在本地环境中安装
sklearnserver
运行时包。- 克隆 KServe 仓库并进入目录。
- 安装
sklearnserver
运行时。KServe 使用 Poetry 作为依赖管理工具。请确保您已经安装了 poetry。
本地部署模型
sklearnserver
包接受两个参数。-model_dir
:存储模型的模型目录路径。
-model_name
:在模型服务器中部署的模型名称,默认值为model
。这是可选的。
在本地安装
sklearnserver
运行时包后,您现在应该可以按如下方式启动服务器:通过 InferenceService 部署带有 REST 端点的模型
最后,您将使用 KServe 将训练好的模型部署到 Kubernetes 上。为此,您只需要使用
InferenceService
CRD 的版本v1beta1
,并将protocolVersion
字段设置为v2
。Yaml
请注意,这里有以下假设:
- 您的模型权重(即
model.joblib
文件)已经上传到"模型仓库"(本例中为 GCS)中,并可通过gs://seldon-models/sklearn/iris
访问。
- 有可用的 K8s 集群,可通过
kubectl
访问。
- KServe 已经安装在您的集群中。
测试已部署的模型
现在您可以通过发送示例请求来测试已部署的模型。
请注意,此请求需要遵循开放推理协议。您可以在下面看到示例负载。使用示例输入创建一个名为
iris-input-v2.json
的文件。通过 InferenceService 部署带有 GRPC 端点的模型
使用以下 yaml 创建推理服务资源并暴露 gRPC 端口。
应用 InferenceService yaml 以获取 gRPC 端点
使用 grpcurl 测试已部署的模型
确定入口 IP 和端口并设置
INGRESS_HOST
和 INGRESS_PORT
。现在,您可以使用 curl
发送推理请求。gRPC API 遵循 KServe 预测 V2 协议/开放推理协议。例如,可以使用 ServerReady
API 检查服务器是否就绪:您可以通过使用以下负载发送示例请求来测试已部署的模型。请注意,输入格式与之前的
REST 端点
示例不同。在名为 iris-input-v2-grpc.json
的文件中准备推理输入。ModelInfer
API 接受遵循 grpc_predict_v2.proto
文件中定义的 ModelInferRequest
架构的输入。上一篇
模型推理运行时 - PyTorch
下一篇
模型推理运行时-XGBoost
Loading...