数禾科技 AI 模型服务 Serverless 容器化之旅

“使用阿里云容器服务 Knative 和 ECI 虚拟节点配合部署,在保证线上模型应对突发流量的稳定性大幅提升的同时,又使资源利用效率获得了显著的提高,极大的节约了资源成本。”

-- 数禾科技 AI 实验室 AI 平台负责人 周伟鹏

“数禾 DevOps 平台 BetterCDS 集成了阿里云容器服务 Knative,支持模型服务的多版本运行和弹性伸缩,在降低运行成本的同时,也提升了服务的可用性,极大地方便了运维人员和开发人员。”

-- 数禾科技基础架构研发部 工程效率组负责人 邓志

背景

数禾科技以大数据和技术为驱动,为金融机构提供高效的智能零售金融解决方案,服务银行、信托、消费金融公司、保险、小贷公司等持牌金融机构,业务涵盖消费信贷、小微企业信贷、场景分期等多个领域,提供营销获客、风险防控、运营管理等服务。数禾科技通过自主开发的消费信贷产品,连接金融机构与普罗大众,赋能金融机构数字化转型,迎接中国消费升级的大潮。

数禾科技 AI 模型服务 Serverless 容器化之旅_第1张图片

遇到问题

在风险管理业务中,根据公司的风险容忍度、风险偏好波动以及阶段性业务目标需要针对公司客户进行风险属性的调整,这其中包括用户额度、定价、可借期限等相关要素。那么这不可避免的需要应用批量数据处理能力通过计算规则来对大量用户做调额、调价等,当然,模型作为风险管理的重要组成部分也必不可少的会被运用至批量处理的动作中来。因此对于模型的计算能力就提出了很高的要求,包括计算速度、计算结果准确性、计算数据实时性等。

而当前的困扰所在是支撑模型计算的底层应用资源无法灵活且快速的根据请求量来智能化调整机器资源支持运算能力,这也是当前业务快速发展过程中亟待解决的痛点。同时,随着模型在线推理服务数量的增加,数禾的模型服务也变得越来越庞大、臃肿,难以管理。这种状况不仅导致了资源浪费,还增加了维护和升级的成本。

基于以上的各种情况,我们开始寻求新的技术架构方案,希望新方案可以具备随流量高效使用资源,降低模型服务成本,同时最好具备版本管理功能,可以实现多版本同时提供服务,较小响应的运维成本。

解决方案

经过内部的沟通与调研,我们最终选择了基于 Knative 的 Serverless 服务方案,它具备根据请求的扩缩容能力、允许 pod 缩容到 0 的冷启动能力以及多版本的管理能力。与此同时,由于数禾本身的技术架构都是部署在阿里云的底层资源上,而阿里云 ACK 又对 Knative 做了组件集成,可以支持一键部署,极大的减小了我们部署调试的时间成本。

数禾科技 AI 模型服务 Serverless 容器化之旅_第2张图片

客户价值

通过对内部模型部署的 pipeline 进行改造后,目前数禾的所有新增模型均已通过 ACK + Knative 方式部署在线上提供服务,得益于 Knative 的多版本管理能力,我们快速解决了模型的灰度发布和多版本并存的问题。同时加之基于请求的自动扩缩容能力,在多个版本并存的情况下,并没有对资源产生额外的消耗,而且对晚上的谷时资源继续了很好的节约。

下图是我们一个模型服务的资源消耗与请求量的对比图,上图为 Pod 资源数量,下图为服务请求量。由下图对比可以看出,整个服务资源的使用情况于服务请求量保持高度一致,使用效率非常高。

数禾科技 AI 模型服务 Serverless 容器化之旅_第3张图片

查看大图:https://img.alicdn.com/imgextra/i4/O1CN01uHrVr51sc2SJ76y4x_!!6000000005786-0-tps-2559-1341.jpg

对于上文提到的批量作业任务,虽然我们已经具备了 Knative 的扩缩容能力,但依然需要在底层准备好足够的资源池来供模型进行扩容。但是在一天的大部分场景中这部分资源又是浪费的,对于这个问题,我们通过在 Knative 中使用 ECI 虚拟节点来得到了很好的解决。

我们对上线之后的模型服务进行了持续监控,对比使用之前的方案,模型服务在应对突发批量流量的稳定性获得大幅提升,同时资源的使用效率也获得了显著提高,节约成本约 60%。

作者:周伟鹏、魏文哲、元毅

原文链接

本文为阿里云原创内容,未经允许不得转载。

你可能感兴趣的:(数禾科技 AI 模型服务 Serverless 容器化之旅)