模型推理运行时-XGBoost

type
status
date
slug
summary
tags
category
icon
password
网址
本示例将指导您如何使用KServe的InferenceService CRD部署xgboost模型。请注意,默认情况下,它通过与现有V1数据平面兼容的API公开您的模型。本示例将向您展示如何通过与开放推理协议兼容的API提供模型服务。

训练模型

第一步是训练一个示例xgboost模型。我们将把这个模型保存为model.bst

本地测试模型

一旦您将模型序列化为model.bst,我们就可以使用KServe XGBoost服务器来启动本地服务器。
注意
此步骤是可选的,仅用于测试,您可以直接跳转到使用InferenceService部署

前提条件

首先,要在本地使用kserve xgboost服务器,您需要在本地环境中安装xgbserver运行时包。
  1. 克隆Kserve仓库并进入目录。
    1. 安装xgbserver运行时。Kserve使用Poetry作为依赖管理工具。确保您已经安装了poetry

      本地部署模型

      xgbserver包接受三个参数。
      • -model_dir:存储模型的模型目录路径。
      • -model_name:模型服务器中部署的模型名称,默认值为model。这是可选的。
      • -nthread:LightGBM使用的线程数。这是可选的,默认值为1。
      在本地安装好xgbserver运行时包后,您现在应该可以按如下方式启动服务器:

      通过InferenceService部署带REST端点的模型

      最后,我们使用KServe在Kubernetes上部署我们训练好的模型。为此,我们使用InferenceService CRD并将protocolVersion字段设置为v2
      Yaml
      假设我们已经有一个可以通过kubectl访问且已安装KServe的集群,我们就可以部署我们的模型了:

      测试已部署的模型

      现在我们可以通过发送示例请求来测试已部署的模型。
      注意,此请求需要遵循开放推理协议。您可以在下面看到示例负载。创建一个名为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 APIs遵循KServe 预测V2协议/开放推理协议。例如,可以使用ServerReady API检查服务器是否就绪:
      您可以通过使用以下负载发送示例请求来测试已部署的模型。请注意,输入格式与之前的REST端点示例不同。在名为iris-input-v2-grpc.json的文件中准备推理输入。
      ModelInfer API采用遵循ModelInferRequest架构的输入
      上一篇
      模型推理运行时-Scikit-learn
      下一篇
      模型推理运行时-PMML
      Loading...
      文章列表
      Kserve中文文档
      快速开始
      管理指南
      用户指南
      开发指南
      机器学习概念
      大模型周报