基于Kubernetes环境的高扩展机器学习部署利器——KServe( 四 )


五、零扩展
通过利用的功能 , 支持零扩展功能 。该功能通过将未使用的pod扩展为零 , 从而有效地管理集群中有限的资源 。将功能扩展到零允许创建一个响应请求的反应式系统 , 而不是一个始终处于运行状态的系统 。这将有助于在集群中部署比传统部署配置更多的模型 。
然而 , 请注意 , 对于已经缩小扩展的pod副本 , 存在一个冷启动“处罚” 。“处罚”程度将根据图像/模型的大小和可用的集群资源而变化 。如果集群需要扩展额外的节点 , 冷启动可能需要5分钟 , 如果模型已经缓存在节点上 , 则需要10秒 。
让我们修改现有的-learn推理服务 , 并通过定义:0来启用零扩展(scale to zero)功能 。
kubectl apply -n kserve -f - <apiVersion: "serving.kserve.io/v1beta1"kind: "InferenceService"metadata:name: "sklearn-iris"spec:predictor:minReplicas: 0model:modelFormat:name: sklearnstorageUri: "gs://kfserving-examples/models/sklearn/1.0/model"EOF
通过将设置为0 , 这将命令在没有HTTP流量时将推理服务缩减为零 。你会注意到 , 30秒后 , 鸢尾花模型的pod副本将缩小 。
kubectl get pods -n kserve
鸢尾花预测因子降到零
若要重新初始化推理服务 , 请向同一个端点发送预测请求 。
SERVICE_HOSTNAME=$(kubectl get inferenceservice sklearn-iris -n kserve -o jsonpath='{.status.url}' | cut -d "/" -f 3)curl -v -H "Host: ${SERVICE_HOSTNAME}" "http://${INGRESS_HOST}:${INGRESS_PORT}/v1/models/sklearn-iris:predict" -d @./iris-input.json
这将从冷启动触发pod副本初始化并返回预测 。
六、结论
总体来看 , 能够简化机器学习部署过程 , 缩短生产路径 。当与和Istio相结合时 , 还有一个额外的好处 , 那就是高度可定制 , 并带来了许多可以轻松与托管云解决方案相媲美的功能 。
当然 , 在内部迁移模型部署过程存在其固有的复杂性 。然而 , 平台所有权的增加将在满足项目特定要求方面提供更大的灵活性 。凭借正确的专业知识 , 可以成为一个强大的工具 , 使企业能够轻松地在任何云提供商中扩展其机器学习部署 , 以满足日益增长的需求 。
部署的低代码
JNPF快速开发平台是一款基于+Vue3的全栈开发平台 , 满足微服务、前后端分离架构 , 基于可视化流程建模、表单建模、报表建模工具 , 快速构建业务应用 。平台可以本地化部署 , 也支持K8S部署 。免费体验地址:
除了上述功能 , 还配置了图表引擎、接口引擎、门户引擎、组织用户引擎等可视化功能引擎 , 基本实现页面UI的可视化搭建 。内置有百种功能控件及使用模板 , 使得在拖拉拽的简单操作下 , 也能大限度满足用户个性化需求 。
【基于Kubernetes环境的高扩展机器学习部署利器——KServe】通过可视化拖拽的方式 , 传统模式下需要 2 周完成开发的应用 , 用JNPF只要2小时 。用JNPF搭建应用 , 你只需要关注业务本身 , 数据存储、运行环境、服务器、网络安全等 , 平台为你全部搞定 。