AI模型推理(3)——ModelMesh使用

参考:

ModelMesh installation - KServe Documentation Website

ModelMesh Overview - KServe Documentation Website

前言

Kserve提供了“Serverless”和“ModelMesh”两种安装模式。其中Serverless是通过Knative组件实现动态扩缩容等功能。而ModelMesh则是另一种资源开销较小的模式。

意义

按照通常的 AI 部署方案,不同的模型需要运行在不同的模型运行时(runtime)下,多模型部署需要维护大量不同模型运行时 起的服务。

 而使用ModelMesh模式,让可以在一个模型运行时运行的模型,部署在一个Pod上,不用造成Pod、IP资源的浪费。

ModelMesh架构

从上图可以看到ModelMesh 主要由三个模块构成:

  1. ModelMesh serve。ModelMesh CR的调谐模块
  2. ModelMesh。运行在Runtime Deployment Pod里面,用于调谐模型加载的位置,以及路由推理API请求。
  3. ModelMesh runtime adapter。运行在Runtime Deployment Pod里面,在上图的Puller位置,用于适配不同的model runtime。

入门使用

首先,用户的namespace需要打上标签:

[root@node-1 working]# k get ns --show-labels chenxy
NAME     STATUS   AGE   LABELS
chenxy   Active   66d   kubernetes.io/metadata.name=chenxy,modelmesh-enabled=true

创建ServingRuntime:

[root@node-1 working]# k get servingruntime -n chenxy
NAME           DISABLED   MODELTYPE     CONTAINERS   AGE
mlserver-0.x              sklearn       mlserver     66d
ovms-1.x                  openvino_ir   ovms         66d
triton-2.x                keras         triton       66d

在ServingRuntime里,有设置runtime的镜像:

 以及runtime占用的资源:

 还有runtime支持的model type:

 创建完后,可以看到有一个对应的deployment生成:

 在没有model部署在相应的 runtime 的时候,这个deployment 是不启动pod的,当相应的runtime上创建一个InferenceService:

等待资源创建成功

 再看runtime deployment,就会发现已经有 pod 起来了。

猜你喜欢

转载自blog.csdn.net/chenxy02/article/details/130461465
今日推荐