模型推理运行时-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 运行时包。
  1. 克隆 KServe 仓库并进入目录。
    1. 安装 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 访问。

      测试已部署的模型

      现在您可以通过发送示例请求来测试已部署的模型。
      请注意,此请求需要遵循开放推理协议。您可以在下面看到示例负载。使用示例输入创建一个名为 iris-input-v2.json 的文件。
      确定入口 IP 和端口并设置 INGRESS_HOSTINGRESS_PORT。现在,您可以使用 curl 发送推理请求:

      通过 InferenceService 部署带有 GRPC 端点的模型

      使用以下 yaml 创建推理服务资源并暴露 gRPC 端口。
      应用 InferenceService yaml 以获取 gRPC 端点

      使用 grpcurl 测试已部署的模型

      在 gRPC InferenceService 准备就绪后,可以使用 grpcurlInferenceService 发送 gRPC 请求。
      确定入口 IP 和端口并设置 INGRESS_HOSTINGRESS_PORT。现在,您可以使用 curl 发送推理请求。gRPC API 遵循 KServe 预测 V2 协议/开放推理协议。例如,可以使用 ServerReady API 检查服务器是否就绪:
      您可以通过使用以下负载发送示例请求来测试已部署的模型。请注意,输入格式与之前的 REST 端点 示例不同。在名为 iris-input-v2-grpc.json 的文件中准备推理输入。
      ModelInfer API 接受遵循 grpc_predict_v2.proto 文件中定义的 ModelInferRequest 架构的输入。
      上一篇
      模型推理运行时 - PyTorch
      下一篇
      模型推理运行时-XGBoost
      Loading...
      文章列表
      Kserve中文文档
      快速开始
      管理指南
      用户指南
      开发指南
      机器学习概念
      大模型周报