浅析云原生模型推理服务框架KServe

简介

KServe 提供 一个 Kubernetes 自定义资源定义,用于在任意框架上提供机器学习 (ML) 模型服务。 它旨在通过为常见的 ML 框架(如:Tensorflow、XGBoost、Scikit-Learn、PyTorch 和 ONNX)提供高性能、高度抽象的接口来解决生产模型服务场景。

它封装了自动缩放、网络、健康检查和服务配置的复杂性,为您的 ML 部署带来了尖端的服务功能,如:GPU 自动缩放、归零缩放和金丝雀发布等。 它为 Production ML Serving 提供了一个简单、可插拔且完整的故事(story),包括预测、预处理、后处理和可解释性。

由于 0.7 版本 Kfserving 更名为 KServe ,我们仍然支持之前的KFServing 0.5.x0.6.x 版本发布,请参考相应的发布分支获取文档。

image.png

为什么选择 KServe

  • KServe 是 Kubernetes 上的标准模型推理平台,专为高度可扩展的场景而构建。
  • 跨 ML 框架提供高性能、标准化的推理协议。
  • 通过自动缩放(包括:GPU 上的缩放为零)支持现代 serverless 推理工作负载。
  • 使用 ModelMesh 提供高可扩展性density packing智能路由
  • 用于生产 ML 服务(包括预测、前/后处理、监控和可解释性)的简单且可插拔的生产服务。
  • 具备金丝雀发布、实验、集成和转换器等高级部署。

KServe 基本概念

模型服务控制平面(Model Serving Control Plane)

KServe Control Plane:负责协调 InferenceService 自定义资源。 它为预测器、转换器、解释器创建了 Knative serverless 部署,以根据传入的请求工作负载启用自动缩放,包括在没有收到流量时缩小到零。启用原始部署模式后,控制平面会创建 Kubernetes 的 deployment, service, ingress、HPA 资源。

image.png

控制平面组件

  • KServe 控制器:负责创建 service, ingress 资源、模型服务器容器和模型代理容器,用于请求/响应日志记录、批处理和模型拉取。
  • Ingress Gateway:用于路由外部或内部请求的网关。

在 Serverless 模式下:

  • Knative Serving 控制器:负责服务修订管理、创建网络路由资源、带有队列代理的 serverless 容器以暴露流量指标并强制执行并发限制。
  • Knative Activator:恢复缩放到零的 Pod 并转发请求。
  • Knative Autoscaler (KPA):监视流向应用程序的流量,并根据配置的指标向上或向下扩展副本。

模型服务数据平面(Model Serving Data Plane)

InferenceService 数据平面架构由一个静态组件图组成,这些组件协调单个模型的请求。 集成、A/B 测试和多臂老虎机(Multi-Arm-Bandits)等高级功能应该共同组成 InferenceServices

image.png

基本概念

组件:每个端点由多个组件组成:“预测器”、“解释器”和“转换器”。唯一需要的组件是预测器,它是系统的核心。随着 KServe 的发展,我们计划增加支持的组件的数量,以支持异常值检测等场景。

预测器:预测器是InferenceService的主力。它只是一个模型和一个模型服务器,使其在网络端点可用。

解释器:解释器启用了一个可选的备用数据平面,除了预测之外还提供模型解释。用户可以定义自己的解释器容器,其中配置了相关的环境变量,如预测端点。对于常见的场景,KServe 提供了像 Alibi 这样的开箱即用的解释器。

转换器(Transformer):转换器使用户能够在预测和解释工作流之前定义预处理和后处理步骤。和解释器一样,它也配置了相关的环境变量。对于常见的场景,KServe 提供了开箱即用的转换器,例如:Feast。

数据平面 (V1)

KServe 具有跨所有模型框架的标准化的预测工作流。

APIVerbPathPayload
ReadinessGET/v1/models/Response:{"name": , "ready": true/false}
PredictPOST/v1/models/:predictRequest:{"instances": []} Response:{"predictions": []}
ExplainPOST/v1/models/:explainRequest:{"instances": []} Response:{"predictions": [], "explainations": []}
Predict

所有 InferenceServices 都使用 Tensorflow V1 HTTP API

注意:只有 TensorFlow 模型支持signature_nameinputs字段。

Explain

与解释器一起部署的所有InferenceServices都支持标准化的解释API。该接口与Tensorflow V1 HTTP API 相同,只是添加了一个:explain verb。

数据平面 (V2)

数据平面协议的第二个版本解决了 V1 数据平面协议发现的几个问题,包括跨大量模型框架和服务的性能和通用性。

Predict

The V2 protocol proposes both HTTP/REST and GRPC APIs. See the complete specification for more information.

V2 协议提出了 HTTP/REST 和 GRPC API。 有关详细信息,请参阅完整规范

KServe 主要组件

单一模型服务

在 CPU/GPU 上为常见的 ML 框架(Scikit-Learn、XGBoost、Tensorflow、PyTorch)以及可插拔的自定义模型运行提供单模型推理的 Serverless 部署。

image.png

模型网格(ModelMesh)

ModelMesh 专为大规模、高密度和频繁变化的模型场景而设计。 ModelMesh 智能地在内存中加载和卸载 AI 模型,以对用户的响应和计算占用空间之间进行智能权衡。

image.png

模型可解释性

提供 ML 模型检阅(inspection)和解释,KServe 集成了 AlibiAI Explainability 360Captum 来帮助解释预测结果并衡量这些预测的置信度。

image.png

模型监控

支持有效载荷记录、异常值、对抗性和漂移检测,KServe 集成了 Alibi-detectAI Fairness 360Adversarial Robustness Toolbox (ART),以帮助监控生产中的 ML 模型。

image.png

高级部署

支持金丝雀发布、模型实验/集成和特征转换器,包括 Feast 以及自定义前/后处理。

image.png

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃果冻不吐果冻皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值