环球科创网

KServe一个健壮且可扩展的云原生模型服务器

更新时间:2022-04-14 08:59:01

导读 如果你熟悉Kubeflow,你会知道KFServing是平台的模型服务器和推理引擎。去年9月,KFServing项目进行了转型,变成了KServe。除了名字的改变

如果你熟悉Kubeflow,你会知道KFServing是平台的模型服务器和推理引擎。去年9月,KFServing项目进行了转型,变成了KServe。

除了名字的改变,KServe现在是一个独立的组件,从Kubeflow项目中毕业。这种分离允许KServe开发成一个独立的、云原生的推理引擎,并将其部署为独立的模型服务器。当然,它将继续与Kubeflow紧密集成,但它们将被视为独立的开源项目并进行维护。

KServe由Google、IBM、彭博、Nvidia和Seldon开发,是Kubernetes的开源云原生模型服务器。最新的0.8版本侧重于将模型服务器转换成一个独立的组件,并更改了分类和命名。

先来了解一下KServe的核心功能。

服务器用于机器学习模型,就像应用程序用于编写二进制代码一样。两者都为部署提供了运行时和执行上下文。作为模型服务器,KServer为机器学习和大规模学习模型提供了基础。

KServe可以部署为传统的Kubernetes部署或支持零扩展的无服务器部署。对于无服务器,它利用了面向无服务器的K原生服务的优点,并具有自动伸缩的功能。Istio被用作向API消费者公开服务端点的门户。Istio和Knative服务的组合支持令人兴奋的场景,例如模型的蓝/绿和淡黄色部署。

图片

Kserve架构图

RawDeployment模式允许您在不使用Knative服务的情况下使用KServe。它支持传统的缩放技术,如水平pod自动缩放(HPA),但不支持缩放到零。

KServe架构

KServe模型服务器有一个控制平面和一个数据平面。控制平面管理并协调负责推理的客户资源。在无服务器模式下,它管理与已知资源协调的自动扩展。

图片

KServe控制平面的核心是KServe控制器,负责管理推理服务的生命周期。它负责创建服务、门户资源、模型服务器容器、模型代理容器、记录请求/响应、批处理以及从模型存储中提取模型。模型存储是在模型服务器上注册的模型的存储库。它通常是一种对象存储服务,如亚马逊S3、谷歌云存储、Azure Storage或MinIO。

数据平面管理特定模型的请求/响应周期。它有一个预测器、转换器和解释器组件。

AI应用程序向预测器端点发送REST或gRPC请求。预测器充当调用转换器组件的推理管道,转换器组件可以预处理入站数据(请求)和后处理出站数据(响应)。或者,可能有一个解释器组件,它将AI解释能力带到托管模型中。KServe鼓励使用可互操作和可扩展的V2协议。

数据平面也有端点来检查模型的就绪性和健康状况。它还公开了用于检索模型元数据的API。

支持的框架和运行时

KServe支持广泛的机器学习和深度学习框架。深度学习框架和运行时与现有的服务基础设施(如TensorFlow Serving、TorchServe和Triton Reasoning Server)一起工作。KServe可以通过Triton托管TensorFlow、ONNX、PyTorch和TensorRT运行时。

XGBoost、Spark MLLib和LightGBM KServe基于SKLearn的经典机器学习模型依赖于Seldon的MLServer。

KServe的可扩展框架使它能够插入任何符合V2推理协议的运行时。

使用模型网格的多模式服务

KServe为每个推理部署一个模型,将平台的可伸缩性限制在可用的CPU和GPU上。当推理在GPU这种昂贵而稀缺的计算资源上运行时,这种局限性就变得很明显。

通过多模式服务,可以克服基础设施的限制:3354个计算资源,最大pod,最大IP地址。

由IBM开发的Meshserving是一个基于Kubernetes的平台,用于实时服务ML/DL模型,并针对高容量/密度用例进行了优化。与管理流程以充分利用可用资源的操作系统类似,ModelMesh优化部署的模型,以便在集群中高效运行。

图片

通过跨部署的pod集群智能地管理内存中的模型数据,并随着时间的推移使用这些模型,系统可以充分利用可用的集群资源。

Meshserving推理基于KServe v2数据平面API,这使得它可以部署为类似于NVIDIA Triton推理服务器的运行时。当一个请求到达KServe数据平面时,它被简单地委托给ModelMesh服务。

目前,meshserving和KServe的集成处于Alpha阶段。随着这两个项目的成熟,将会有更紧密的集成,这将使得混合和匹配两个平台的功能和能力成为可能。

随着模型服务成为MLOP的核心构件,像KServe这样的开源项目变得非常重要。KServe的可扩展性使它能够使用现有的和即将到来的运行时,从而成为一个独特的模型服务平台。

免责声明:本文由用户上传,如有侵权请联系删除!