如何基于ACKServerless快速部
2024/8/14 来源:不详知名研究白癜风专家 https://m-mip.39.net/nk/mipso_5941745.html
作者:元毅
随着AI浪潮的到来,各种AI应用层出不穷,众所周知AI应用对GPU资源强烈依赖,但GPU很昂贵,如何降低GPU资源使用成本成为用户首要问题。而AI与Serverless技术结合,完全可以达到按需使用资源,降低资源成本的目的。
那么在云原生场景下,是否有这样开箱即用、标准、开放的方案呢?答案是有。我们在ACKServerless中提供Knative+KServe的方案,可以帮助用户快速部署AI推理服务,按需使用,在无请求时支持GPU资源自动缩容到0,大幅节省AI应用场景下资源使用成本。
关于ACKServerless
容器服务Serverless版ACKServerless是一款基于阿里云弹性计算基础架构之上,同时完全兼容Kubernetes生态,安全、可靠的容器产品。通过ACKServerless,您无需管理和维护k8s集群即可快速创建Kubernetes容器应用,支持多种GPU资源规格,并且根据应用实际使用的资源量进行按需付费。
Knative与KServe
Knative是一款基于Kubernetes之上的开源Serverless应用架构,提供基于请求的自动弹性、缩容到0以及灰度发布等功能。通过Knative部署Serverless应用可以做到专注于应用逻辑开发,资源按需使用。
而KServe提供了一个简单的KubernetesCRD,可以将单个或多个经过训练的模型部署到模型服务运行时,例如TFServing、TorchServe、Triton等推理服务器。这些模型服务运行时能够提供开箱即用的模型服务,KServe提供基本API原语,让您轻松构建自定义模型服务运行时。基于Knative使用InfenceService部署推理模型后,您将获得以下Serverless能力:
缩容到0基于RPS、并发数、CPU/GPU指标自动弹性多版本管理流量管理安全认证开箱即用可观测性
KServe模型服务控制面主要由KServeController负责,用于协调InfenceService自定义资源并创建KnativeService服务,可以实现根据请求流量实现自动缩放,以及在未收到流量时缩小到零。
基于KServe快速部署第一个推理服务
在本文中,我们将部署一个带有预测能力的InfenceService推理服务,该推理服务将使用iris(鸢尾花)数据集训练的scikit-learn模型。该数据集具有三个输出类别:IrisSetosa(山鸢尾,索引:0)、IrisVersicolour(杂色鸢尾花,索引:1)和IrisVirginica(弗吉尼亚鸢尾,索引:2)。最后您可以向部署的模型发送推理请求,以便预测对应的鸢尾植物类别。
前提条件
已开通ACKServerless[1]部署KServe[2]
当前阿里云Knative支持一键部署KServe。支持ASM、ALB、MSE以及Kourier等网关能力。
创建InfenceService推理服务
kubectlapply-f-EOFapiVersion:"serving.kserve.io/v1beta1"kind:"InfenceService"metadata:name:"sklearn-iris"spec:pdictor:model:modelFormat:name:sklearnstorageUri:"gs://kfserving-examples/models/sklearn/1.0/model"EOF
检查服务状态:
kubectlgetinfenceservicessklearn-iris
预期输出:
NAMEURLREADYPREVLATESTPREVROLLEDOUTREVISIONLATESTREADYREVISIONAGEsklearn-iris