元毅 阿里云云原生 2023-08-02 18:30 发表于浙江
随着 AI 浪潮的到来,各种 AI 应用层出不穷,众所周知 AI 应用对 GPU 资源强烈依赖,但 GPU 很昂贵,如何降低 GPU 资源使用成本成为用户首要问题。而 AI 与 Serverless 技术结合,完全可以达到按需使用资源,降低资源成本的目的。
(资料图)
那么在云原生场景下,是否有这样开箱即用、标准、开放的方案呢?答案是有。 我们在 ACK Serverless 中提供 Knative + KServe 的方案,可以帮助用户快速部署 AI 推理服务, 按需使用,在无请求时支持 GPU 资源自动缩容到 0,大幅节省 AI 应用场景下资源使用成本。
关于 ACK Serverless
Cloud Native
容器服务 Serverless 版 ACK Serverless 是一款基于阿里云弹性计算基础架构之上,同时完全兼容 Kubernetes 生态,安全、可靠的容器产品。通过 ACK Serverless,您无需管理和维护 k8s 集群即可快速创建 Kubernetes 容器应用,支持多种 GPU 资源规格,并且根据应用实际使用的资源量进行按需付费。
Knative 与 KServe
Cloud Native
Knative 是一款基于 Kubernetes 之上的开源 Serverless 应用架构,提供基于请求的自动弹性、缩容到 0 以及灰度发布等功能。通过 Knative 部署 Serverless 应用可以做到专注于应用逻辑开发,资源按需使用。
而 KServe 提供了一个简单的 Kubernetes CRD,可以将单个或多个经过训练的模型部署到模型服务运行时,例如 TFServing、TorchServe、Triton 等推理服务器。这些模型服务运行时能够提供开箱即用的模型服务,KServe 提供基本 API 原语,让您轻松构建自定义模型服务运行时。基于 Knative 使用 InferenceService 部署推理模型后,您将获得以下 Serverless 能力:
缩容到 0 基于 RPS、并发数、CPU/GPU 指标自动弹性 多版本管理 流量管理 安全认证 开箱即用可观测性KServe 模型服务控制面主要由 KServe Controller 负责,用于协调 InferenceService 自定义资源并创建 Knative Service 服务,可以实现根据请求流量实现自动缩放,以及在未收到流量时缩小到零。
基于 KServe 快速部署第一个推理服务
Cloud Native
在本文中,我们将部署一个带有预测能力的 InferenceService 推理服务,该推理服务将使用 iris(鸢尾花)数据集训练的 scikit-learn 模型。该数据集具有三个输出类别:Iris Setosa(山鸢尾,索引:0)、Iris Versicolour(杂色鸢尾花,索引:1)和 Iris Virginica(弗吉尼亚鸢尾,索引:2)。最后您可以向部署的模型发送推理请求,以便预测对应的鸢尾植物类别。
前提条件
已开通 ACK Serverless [1] 部署 KServe [2]当前阿里云 Knative 支持一键部署 KServe。支持 ASM、ALB、MSE 以及 Kourier 等网关能力。
创建 InferenceService 推理服务
kubectl apply -f - <
检查服务状态:
kubectl get inferenceservices sklearn-iris
预期输出:
NAME URL READY PREV LATEST PREVROLLEDOUTREVISION LATESTREADYREVISION AGEsklearn-iris True 100 sklearn-iris-predictor-default-00001 51s
服务访问
1. 获取服务访问地址
$ kubectl get albconfig knative-internetNAME ALBID DNSNAME PORT&PROTOCOL CERTID AGEknative-internet alb-hvd8nngl0lsdra15g0 24m
2. 在文件中准备您的推理输入请求
iris 数据集是由三种鸢尾花,各 50 组数据构成的数据集。每个样本包含 4 个特征,分别为萼片(sepals)的长和宽、花瓣(petals)的长和宽。
cat <"./"{ "instances": [ [, , , ], [, , , ] ]}EOF
3. 访问
INGRESS_DOMAIN=$(kubectl get albconfig knative-internet -o jsonpath="{.}")SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris -o jsonpath="{.}" | cut -d "/" -f 3)curl -v -H "Host: ${SERVICE_HOSTNAME}" "http://${INGRESS_DOMAIN}/v1/models/sklearn-iris:predict" -d @./
预期输出:
* Trying ...* Connected to () port 80 (#0)>POST /v1/models/sklearn-iris:predict HTTP/>Host: >User-Agent: curl/>Accept: */*>Content-Length: 76>Content-Type: application/x-www-form-urlencoded>* Mark bundle as not supporting multiuse< HTTP/ 200 OK< content-length: 21< content-type: application/json< date: Wed, 21 Jun 2023 03:17:23 GMT< server: envoy< x-envoy-upstream-service-time: 4<* Connection #0 to host left intact{"predictions":[1,1]}
您应该看到返回了两个预测(即 {"predictions": [1, 1]}),该结果为推理发送的两组数据点对应于索引为 1 的花,模型预测这两种花都是 “Iris Versicolour(杂色鸢尾花)”。
小结
Cloud Native
当前 ACK Serverless 已全新升级,顺应了 AI 等新场景爆发下催生的新需求,以标准、开放、灵活的方式帮助企业更简单、平滑地向 Serverless 业务架构演进。基于ACK Serverless 结合 KServe 可以给你带来 AI 模型推理场景下极致的 Serverless 体验。
相关链接:
[1] 开通 ACK Serverless
/zh/ack/serverless-kubernetes/user-guide/create-an-ask-cluster-2
[2] 部署 KServe
/zh/ack/ack-managed-and-ack-dedicated/user-guide/knative-support-kserve
记者从省通信管理局获悉,截至目前,福建省工业互联网标识注册量达1 05亿个,较上年末增长150%,二级节点注册企业达762家,覆盖纺织、食品
中新网上海5月25日电 (陈静 高艳)“我是(上海一妇婴)西院新生儿科的一名普通护士,也是新生儿科的‘临时妈妈’之一。我热爱我的职业,在
中新网西宁5月25日电 (祁萌叶 张添福)为保护老年人的“养老钱”,目前,青海省各部门、各行业先后启动打击整治养老诈骗专项行动,重点对
中新网西宁5月25日电 (记者 李江宁)25日,青海省林草局启动以“依法保护湿地,促进人与自然和谐共生”为主题的《湿地保护法》宣传月活动
中新网合肥5月25日电 (记者 张俊)记者25日从安徽省暖民心行动部署推进会议上获悉,该省拟推出包含就业促进、老年助餐、安心托幼等10项暖