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

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: KServe 提供 一个 Kubernetes 自定义资源定义,用于在任意框架上提供机器学习 (ML) 模型服务。 它旨在通过为常见的 ML 框架(如:Tensorflow、XGBoost、Scikit-Learn、PyTorch 和 ONNX)提供高性能、高度抽象的接口来解决生产模型服务场景。

简介

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 版本发布,请参考相应的发布分支获取文档。

网络异常,图片无法展示
|


为什么选择 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 资源。

网络异常,图片无法展示
|


控制平面组件

  • 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

网络异常,图片无法展示
|


基本概念

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

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

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

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

数据平面 (V1)

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

API Verb Path Payload
Readiness GET /v1/models/ Response:{"name": , "ready": true/false}
Predict POST /v1/models/:predict Request:{"instances": []} Response:{"predictions": []}
Explain POST /v1/models/:explain Request:{"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 部署。

网络异常,图片无法展示
|


模型网格(ModelMesh)

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

网络异常,图片无法展示
|


模型可解释性

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

网络异常,图片无法展示
|


模型监控

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

网络异常,图片无法展示
|


高级部署

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

网络异常,图片无法展示
|



相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
打赏
0
0
0
0
7
分享
相关文章
PAI 重磅发布模型权重服务,大幅降低模型推理冷启动与扩容时长
阿里云人工智能平台PAI 平台推出模型权重服务,通过分布式缓存架构、RDMA高速传输、智能分片等技术,显著提升大语言模型部署效率,解决模型加载耗时过长的业界难题。实测显示,Qwen3-32B冷启动时间从953秒降至82秒(降幅91.4%),扩容时间缩短98.2%。
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
实力见证!数据管理服务DMS、云原生多模数据库Lindorm荣获“2024技术卓越奖”
113 1
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
云原生之运维监控实践:使用 taosKeeper 与 TDinsight 实现对 时序数据库TDengine 服务的监测告警
在数字化转型的过程中,监控与告警功能的优化对保障系统的稳定运行至关重要。本篇文章是“2024,我想和 TDengine 谈谈”征文活动的三等奖作品之一,详细介绍了如何利用 TDengine、taosKeeper 和 TDinsight 实现对 TDengine 服务的状态监控与告警功能。作者通过容器化安装 TDengine 和 Grafana,演示了如何配置 Grafana 数据源、导入 TDinsight 仪表板、以及如何设置告警规则和通知策略。欢迎大家阅读。
235 0
为何这款轻量级框架正悄然改变云原生应用开发格局?——探索Micronaut带来的新编程体验
【9月更文挑战第5天】随着云计算的发展,企业纷纷转向云原生应用开发。Micronaut是一款轻量级、高性能的Java框架,专为微服务架构设计,支持JVM和GraalVM,是构建云原生应用的理想选择。本文介绍Micronaut的基本概念并通过示例展示如何快速搭建云原生应用。使用Micronaut CLI可以轻松创建项目并添加REST接口,其注解驱动的API让开发变得简单直接。Micronaut还提供了健康检查、指标收集等高级功能,支持AOT编译,优化应用性能。对于追求高效开发的团队而言,Micronaut提供了一种全新的解决方案。
189 6
.NET云原生应用实践(一):从搭建项目框架结构开始
.NET云原生应用实践(一):从搭建项目框架结构开始
一文读懂云原生 go-zero 微服务框架
一文读懂云原生 go-zero 微服务框架
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
73 2

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问