多模型服务- ModelMesh 概览

type
status
date
slug
summary
tags
category
icon
password
网址
 

ModelMesh服务

ModelMesh的多模型服务是最近添加的一项alpha特性,旨在提高KServe的可扩展性。请注意,该接口可能会发生变更。

概述

 
notion image
ModelMesh Serving是一个基于Kubernetes的实时ML/DL模型服务平台,针对高容量/高密度用例进行了优化。通过基于模型使用情况的智能管理部署在Pod集群中的内存模型数据,最大限度地提高了可用系统资源的利用率。
利用现有的第三方模型服务器,系统开箱即用地支持多种标准ML/DL模型格式,未来还会支持更多:TensorFlow、PyTorch ScriptModule、ONNX、scikit-learn、XGBoost、LightGBM、OpenVINO IR。通过自定义运行时,还可以扩展支持任意模型格式。
该架构包括一个控制器Pod,用于编排一个或多个Kubernetes"模型运行时"部署(用于加载/服务模型),以及一个接收推理请求的服务。跨运行时pod的路由层确保模型在正确的时间加载到正确的位置,并处理这些请求的转发。
模型数据本身从一个或多个外部存储实例中拉取,这些实例必须在Secret中配置。目前我们仅支持基于S3的对象存储(自管理存储也是自定义运行时的一个选项),但很快会支持更多选项。
ModelMesh Serving使用两种核心Kubernetes自定义资源类型:
  • ServingRuntime - 可以服务一种或多种特定模型格式的Pod模板。有三个"内置"运行时覆盖开箱即用的模型类型,可以通过创建额外的自定义运行时来定义。
  • Predictor - 这代表使用特定模型进行预测服务的逻辑端点。Predictor规范指定模型类型、其所在的存储位置以及模型在该存储中的路径。相应的端点是"稳定的",当规范更新时,会在不同的模型版本或类型之间无缝过渡。
只有在有一个或多个已定义的Predictor需要时,才会启动对应特定ServingRuntime的Pod。
我们已经将KServe v2数据平面API标准化用于推理,所有内置模型类型都支持这一功能。在此版本的ModelMesh Serving中,仅支持该API的gRPC版本,REST支持即将推出。自定义运行时可以自由使用gRPC服务API进行推理,包括KSv2 API。
系统范围的配置参数可以通过创建ConfigMap来设置,名称为model-serving-config

组件

核心组件

  • ModelMesh - 用于编排模型部署和路由的ModelMesh容器

运行时适配器

  • modelmesh-runtime-adapter - 在每个模型服务pod中运行的容器,作为ModelMesh和第三方模型服务器容器之间的中介。它还包含负责从存储中检索模型的"拉取器"逻辑

模型服务运行时

KServe集成

请注意,KServe与ModelMesh的集成仍处于alpha阶段,在ModelMesh上部署时仍有一些功能(如解释器)尚不可用。
无论如何,ModelMesh Serving支持使用KServe的InferenceService接口部署模型。ModelMesh Serving还支持转换器用例,其中转换器和预测器分别由KServe和ModelMesh控制器部署。ModelMesh转换器的示例可以在这里找到。
虽然ModelMesh Serving可以同时处理其原始的Predictor CRD和KServe的InferenceService CRD,但目前正在进行工作,最终使KServe和ModelMesh都统一使用InferenceService CRD。
 
上一篇
多模型服务 - 可扩展性问题
下一篇
Transformer-Feast
Loading...
文章列表
Kserve中文文档
快速开始
管理指南
用户指南
开发指南
机器学习概念
大模型周报