技术指南

Kubernetes 上的 KServe 和模型服务

KServe 是一个标准化的 Kubernetes 原生平台,用于大规模服务机器学习模型。

阅读时间:2分钟最后更新

概述

It gives teams a single, declarative way to deploy models with autoscaling, canary rollouts, and scale-to-zero, abstracting away most of the Kubernetes plumbing.

深入探讨

KServe 以前称为 KFServing,诞生于 Kubeflow 项目,它定义了 InferenceService 自定义资源。您编写一个简短的 YAML 文件,指向存储在对象存储(S3、GCS、Azure Blob)中的模型,然后 KServe 处理其余的事情。它既支持预测推理,也支持越来越多的生成法学硕士服务。 KServe 为常见框架(TensorFlow Serving、TorchServe、Triton、scikit-learn、XGBoost、Hugging Face)提供预构建的“服务运行时”,并支持自定义容器。它构建在 Knative Serving 和网络层(Istio 或类似层)之上,提供请求驱动的自动缩放,包括真正的缩放到零,因此空闲模型不消耗计算。它还围绕开放推理协议标准化了预测 API,因此无论框架如何,客户端都以相同的方式与每个模型进行通信。

技术洞察

KServe 的自动扩展依赖于 Knative,它根据并发数或每秒请求数扩展副本数量,并且可以在流量停止时将副本数降至零,然后按需冷启动。 InferenceService 将完整的推理管道抽象为预测器、转换器(预处理/后处理)和解释器组件。模型通过“存储初始化程序”从对象存储加载,在启动时将工件拉入 Pod,从而将模型存储与服务容器映像解耦。

战略影响

成本与预算

多年来,架构决策决定着性能和运营成本。

更清晰的判决

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

质量控制

更好的工程选择可以减少生产中的可靠性事故。

KServe 的未来和 Kubernetes 上的模型服务

KServe 正在快速向生成式 AI 发展,添加了一个以 LLM 为中心的轨道,具有 KV 缓存感知路由、模型缓存以及针对大型语言模型的分解预填充/解码服务等功能。期望与 vLLM 等推理引擎进行更深入的集成,为对于一个 GPU 来说太大的模型提供更好的多节点服务,以及用于基于令牌的负载平衡的网关级路由。作为 CNCF 孵化项目,它正在成为将模型置于 Kubernetes 背后的事实上的开放标准,缩小研究工件和弹性生产端点之间的差距。

现实世界的实施

一家银行通过编写指向 S3 中模型的 10 行 InferenceService YAML 来部署信用评分模型,并使用 KServe 处理自动缩放和入口。

电子商务团队使用 KServe 金丝雀部署将 10% 的流量发送到新的推荐模型,然后在指标看起来正常时增加到 100%。

一个研究实验室为数十个很少使用的模型提供了缩放至零的服务,因此每个模型仅在请求到达时才会启动,并且在空闲时不消耗 GPU。

MLOps 团队使用 KServe 转换器组件在预测器运行 Triton 服务的视觉模型之前运行图像大小调整和标准化。

风险与防护栏

优化一项基准测试可以隐藏更广泛的系统弱点。

基础设施和维护成本常常被低估。

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

2

在实际负载和数据条件下进行基准测试。

3

仪器监控错误、漂移和用户影响。

4

在扩展之前准备回滚和事件响应路径。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the KServe and Model Serving on Kubernetes quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

代码模型的推测性编辑

常见问题

What is KServe and Model Serving on Kubernetes?

KServe 是一个标准化的 Kubernetes 原生平台,用于大规模服务机器学习模型。它为团队提供了一种单一的、声明性的方式来部署具有自动缩放、金丝雀部署和缩放到零的模型,抽象出大部分 Kubernetes 管道。

KServe 在成为独立项目之前的前身名称是什么?

KServe 最初是 Kubeflow 项目中的 KFServing,后来成为一个独立的平台。

您定义用于使用 KServe 部署模型的主要 Kubernetes 自定义资源是什么?

您可以声明 InferenceService 自定义资源(通常采用 YAML)来部署和配置服务模型。

哪种功能可以让空闲的 KServe 模型消耗零计算直到请求到达?

KServe 基于 Knative 构建,支持缩放至零、在没有流量时将副本数降至零以及按需冷启动。

哪个底层项目提供 KServe 的请求驱动的自动缩放?

KServe 建立在 Knative Serving 的基础上,Knative Serving 可根据并发或请求率扩展副本,并实现扩展到零。

KServe 通常如何在启动时将模型工件放入服务 Pod 中?

存储初始化器将模型工件从对象存储(例如 S3 或 GCS)下载到 Pod 中,从而将模型与图像解耦。