Morphling:云原生部署 AI , 如何把降本做到极致?

简介: Morphling 本意是游戏 Dota 中的英雄“水人”,他可以根据环境要求,通过灵活改变自身形态,优化战斗表现。我们希望通过 Morphling 项目,实现针对机器学习推理作业的灵活、智能的部署配置改变,优化服务性能,降低服务部署成本。

随着云原生技术的蓬勃发展和其日渐成熟的产业落地,云上机器学习正向大规模、工业化方向迅速挺进。

近期,Morphling 作为阿里巴巴开源的 KubeDL 其中一个独立的子项目,成为云原生计算基金会(CNCF)Sandbox 项目。旨在为大规模工业部署机器学习模型推理(model inference)服务,提供自动化的部署配置调优、测试和推荐,在 GPU 虚拟化与复用技术日趋发展成熟的大环境下,帮助企业充分享受云原生优势,优化在线机器学习服务性能,降低服务部署成本,高效地解决机器学习在产业实际部署中的性能和成本挑战。此外,Morphling 项目相关学术论文 "Morphling: Fast, Near-Optimal Auto-Configuration for Cloud-Native Model Serving",被 ACM Symposium on Cloud Computing 2021 (ACM SoCC 2021)接收。

1.png

Morphling 本意是游戏 Dota 中的英雄“水人”,他可以根据环境要求,通过灵活改变自身形态,优化战斗表现。我们希望通过 Morphling 项目,实现针对机器学习推理作业的灵活、智能的部署配置改变,优化服务性能,降低服务部署成本。

背景

云上机器学习的工作流,可以分为模型训练(model training)和模型推理(model serving)两部分:模型在离线训练、调优测试完成之后,会以容器的方式部署为在线应用,为用户提供不间断的高质量推理服务,例如在线直播视频中的目标物品识别、在线语言翻译工具、在线图片分类等。例如,阿里巴巴内部的淘系内容社交平台 Machine Vision Application Platform(MVAP),通过在线机器学习推理引擎,支持淘系直播商品看点识别、直播封面图去重、逛逛图文分类等业务。根据英特尔的数据,大规模推理 ("Inference at Scale") 时代将至:到 2020 年,推理与训练周期比率超过 5:1;亚马逊的数据显示,2019 年亚马逊 AWS 在模型推理服务上的基础设施开销,占到其机器学习任务总开销的 90% 以上。机器学习推理已经成为人工智能落地和“变现”的关键。

2.png

云上推理任务

推理服务本身是一种特殊的 long running 微服务形态,随着云上推理服务日趋增长的部署体量,其成本和服务性能,成为至关重要的优化指标。这要求运维团队对推理容器,在部署前进行合理的配置优化,包含硬件资源配置、服务运行参数配置等。这些优化配置,在协调服务性能(例如响应时间、吞吐率)和资源使用效率中,起到至关重要的作用。在实践中,我们的测试发现, 不同的部署配置会带来高达十几倍的吞吐率/资源使用率的差距。

我们依托阿里大量的 AI 推理服务经验,首先总结了推理业务,相对于传统服务部署的配置有以下特性:

  • 使用昂贵的显卡资源,但显存用量低:GPU 虚拟化与分时复用技术的发展和成熟,让我们有机会在一块 GPU 上同时运行多个推理服务,显著降低成本。与训练任务不同,推理任务是使用训练完善的神经网络模型,将用户输入信息,通过神经网络处理,得到输出,过程中只涉及神经网络的前向传输(Forward Propagation),对显存资源的使用需求较低。相比之下,模型的训练过程,涉及神经网络的反向传输(Backward Propagation),需要存储大量中间结果,对显存的压力要大很多。我们大量的集群数据显示,分配给单个推理任务整张显卡,会造成相当程度的资源浪费。然而如何为推理服务选择合适的 GPU 资源规格,尤其是不可压缩的显存资源,成为一个关键难题。
  • 性能的资源瓶颈多样:除了 GPU 资源,推理任务也涉及复杂的数据前处理(将用户输入 处理成符合模型输入的参数),和结果后处理(生成符合用户认知的数据格式)。这些操作通常使用 CPU 进行,模型推理通常使用 GPU 进行。对于不同的服务业务,GPU、CPU 以及其他硬件资源,都可能成为影响服务响应时间的主导因素,从而成为资源瓶颈。
  • 此外,容器运行参数的配置,也成为业务部署人员需要调优的一个维度:除了计算资源外,容器运行时参数也会直接影响服务 RT、QPS 等性能,例如容器内服务运行的并发线程数、推理服务的批处理大小(batch processing size)等。

最佳化推理服务部署配置

以 Kubernetes 为主流的云原生技术,正在以丰富的形态被广泛用于新的应用负载 ,将机器学习任务(包括训练和推理)构建在 Kubernetes 上,并实现稳定、高效、低成本的部署,成为各大公司推进AI项目、服务上云的重点和关键。Kubernetes 框架下的推理容器配置,业界还在不断探索与尝试。

  • 最常见的模式是根据人为经验,手动配置参数,简单但低效。实际情况常常是:服务部署人员站在集群管理者的角度,为了保证服务质量,倾向于配置较多的资源冗余,在稳定性和效率之间选择牺牲后者,造成大量资源浪费;或对运行参数直接采用默认值进行配置,损失了性能优化机会。
  • 另一个可选的方案是,基于资源历史水位画像,进一步细化优化资源配置。但我们的观察和实践发现,日常资源水位不能体现服务压测时的流量高峰,无法评估服务能力上限;其次,对于新上线的业务,普遍缺乏可靠的历史水位信息可供参考;另外,由于机器学习框架的特性,GPU 显存的历史用量通常不能正确反映应用对显存的真实需求;最后,对于容器内部程序运行参数的调优,从历史数据的角度缺少足够的数据支持。

总体来说,虽然在更通用的超参调优方面,Kubernetes 社区有一些自动化参数推荐的研究和产品,但业界缺少一款直接面向机器学习推理服务的云原生参数配置系统。

我们依托阿里大量的AI推理服务经验,总结发现,推理业务配置调优的痛点在于:

  • 缺少自动化性能测试、参数调优的框架:迭代式的手动调整配置-服务压测,给部署测试带来巨大人工负担,使这一方向在现实下成为不可能的选项。
  • 稳定和非侵入式的服务性能测试流程:在生产环境下对在线服务直接进行部署测试,会影响用户体验。
  • 要求高效的参数组合调优算法:考虑到需要配置的参数数量增多时,联合调试多维度参数的组合优化配置,对调优算法提出了更高的效率要求。

Morphling

针对上述难题,阿里巴巴云原生集群管理团队和开发并开源了基于 Kubernetes 的机器学习推理服务配置框架——Morphling,将参数组合调优全流程自动化,并结合高效的智能化调优算法,使推理业务的配置调优流程,能够高效地运行在 Kubernetes 之上,解决机器学习在产业实际部署中的性能和成本挑战。

3.png

Morphling 对参数调优的过程进行了不同层次的云原生抽象,提供给用户简洁且灵活的配置接口,将底层的容器操作、数据通信、采样算法、和存储管理封装在控制器中。具体来说,Morphling 的参数调优-性能压测,采用 experiment-trial 工作流程。

  • Experiment 作为最贴近用户的一层抽象,通过交互,由用户指定机器学习模型的存储位置、待调优的配置参数、测试数量上限等,定义一次具体的参数调优作业。
  • 对于每个参数调优作业 experiment,Morphling 定义了另一层抽象:trial。Trial 封装了针对某一特定参数组合的一次性能测试流程,涵盖了底层的 Kubernetes 容器操作:每个 trial 中,Morphling 根据测试参数组合,配置并启动推理服务容器,检测服务的可用性和健康状态,并对服务进行压力测试,测量该配置下容器的服务性能,例如响应时间延迟、服务吞吐量、资源使用效率等。测试结果将存储在数据库中,并反馈给 experiment。
  • Morphling通过智能的超参调优算法,选择少量配置组合进行性能测试(trial),每轮测试结果作为反馈,来高效选择下一组待测参数。为了避免穷举方式的规格点采样,我们采用贝叶斯优化作为画像采样算法的内部核心驱动,通过不断细化拟合函数,以低采样率(<20%)的压测开销,给出接近最优的容器规格推荐结果。

4.png

通过这样迭代式的采样-测试,最终反馈给业务部署人员优化的配置组合推荐。

同时,Morphling 提供了管控套件:Morphling-UI,方便业务部署团队在可界面化上,通过简单易用的操作,发起推理业务配置调优 experiment、监控调优过程、比较调优结果。

5.png

Morphling 在淘系内容社交平台中的实践

阿里巴巴内部丰富的在线机器学习推理场景和大量的推理服务实例需求,为 Morphling 的落地验证提供了第一手的落地实践和测试反馈。其中,阿里淘系内容社交平台Machine Vision Application Platform(MVAP)团队,通过在线机器学习推理引擎,支持淘系直播商品看点识别、直播封面图去重、逛逛图文分类等业务。

在 2020 年双十一期间,我们通过 Morphling 对 AI 推理容器进行了规格测试、优化,寻找性能和成本之间的最优解,同时算法工程团队进而对这些资源消耗型的推理模型,例如淘系视频看点服务,做出针对性的模型量化、分析,并从 AI 模型设计角度进行优化,以最少的资源支持了双十一的洪峰流量,同时保证业务的性能不下降,极大的提高 GPU 利用率和降低了成本。

学术探索

为了提高推理服务参数调优过程的效率,阿里巴巴云原生集群管理团队,针对推理业务的特性,进一步探索了使用元学习(meta-learning)和小样本回归(few-shot regression)实现更高效的、低采样成本的配置调优算法,应对实际业界“快速、小样本采样、低测试成本”的调优要求,以及面向云原生且自动化的调优框架。相关学术论文 "Morphling: Fast, Near-Optimal Auto-Configuration for Cloud-Native Model Serving",被ACM Symposium on Cloud Computing 2021 (ACM SoCC 2021)接收。

近年,云上 AI 推理任务的优化部署相关主题活跃在各大云计算、系统相关的学术期刊和会议,成为学术界探索的热点。探索的主题主要包括,AI 模型的动态选择、部署实例的动态阔缩容、用户访问的流量调度、GPU 资源的充分利用(例如模型动态加载、批处理大小优化)等。然而,从大规模业界实践出发,最佳化容器级别的推理服务部署这一问题的研究,尚属首次。

算法方面,性能调优作为经典的超参数优化(hyper-parameter tuning)问题。传统超参调优方法例如贝叶斯优化,难以面对高维度(多配置项)且大搜索空间的调优问题。例如,对于 AI 推理任务,我们在 CPU 核数、GPU 显存大小、批处理 batch size、GPU 型号这四个维度(配置项)进行“组合优化”式的超参调优,每个配置项有 5~8 个可选参数。这样,组合情况下的参数搜索空间就高达 700 个以上。基于我们在生产集群的测试经验积累,对于一个 AI 推理容器,每测试一组参数,从拉起服务、压力测试、到数据呈报,需要耗时几分钟;与此同时,AI 推理业务的种类繁多,更新迭代频繁,部署工程师人力有限,测试集群成本有限。要在这样大的搜索空间内,高效地测试出最优的配置参数,对超参调优算法提出了新的挑战。

在这篇论文中,我们的核心观察是,对于不同的 AI 推理业务,其需要优化各项的配置(例如 GPU 显存、批处理大小)对于容器的服务性能(例如 QPS)影响,“趋势稳定且相似”,表现在可视化的“配置-性能”曲面上,体现为,不同AI推理实例,“配置-性能”曲面的形状相似,但配置对性能的影响程度和关键节点,在数值上各不相同:

6.png

上图可视化了三种 AI 推理模型,其<CPU 核数、GPU显存大小>的二维配置,对容器服务吞吐量 RPS 的影响。论文提出,使用 Model-Agnostic Meta-Learning(MAML)对这些共性进行提前学习,训练出元模型,从而对新的 AI 推理性能测试,快速找到曲面中的关键节点,以元模型出发,作出小样本下(5%)的精确拟合。

总结

Morphling 基于的 Kubernetes 机器学习推理服务配置框架,结合“快速、小样本采样、低测试成本”的调优算法,实现了面向云原生的自动化且稳定高效的 AI 推理部署调优流程,更快地赋能部署流程的优化和迭代,加速机器学习业务应用的上线。Morphling 和 KubeDL 的结合,也会使得 AI 从模型训练,到推理部署的配置调的优体验更为流畅。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

datax参数设置_DataX Web数据增量同步配置说明

一、根据日期进行增量数据抽取1.页面任务配置打开菜单任务管理页面&#xff0c;选择添加任务按下图中5个步骤进行配置1.任务类型选DataX任务2.辅助参数选择时间自增3.增量开始时间选择&#xff0c;即sql中查询时间的开始时间&#xff0c;用户使用此选项方便第一次的全量同步。第…

Node18 即将支持 import HTTP资源!

作者 | 零一来源 | 前端印象最近看到Node官方提交了一条commit &#xff0c;并且已经合入 master分支 &#xff0c;如下图所示&#xff1a;node master commit由此可见&#xff0c;Node18可能会支持一个非常 nice 的功能&#xff0c;那就是 支持 import 远程HTTPS资源和本地的H…

MYSQL深潜 - 剖析Performance Schema内存管理

简介&#xff1a; 本文主要是通过对PFS引擎的内存管理的源码的阅读&#xff0c;解读PFS内存分配及释放原理&#xff0c;深入剖析其中存在的一些问题&#xff0c;以及一些改进思路。本文源代码分析基于Mysql-8.0.24版本。 作者 | 之枢 来源 | 阿里技术公众号 一 引言 MYSQL Pe…

基于MaxCompute SQL 的半结构化数据处理实践

简介&#xff1a; MaxCompute作为企业级数据仓库服务&#xff0c;集中存储和管理企业数据资产、面向数据应用处理和分析数据&#xff0c;将数据转换为业务洞察。通过与阿里云内、外部服务灵活组合&#xff0c;可构建丰富的数据应用。全托管的数据与分析解决方案&#xff0c;可简…

file_get_contents请求失败处理_SpringCloud Gateway网关处理请求过程中遇到400Bad Request问题解决方案...

大家在使用springcloud自己的gateway作为网关服务时&#xff0c;可能会不小心遇到自定义的Filter处理请求Request报文时出现400的错误&#xff0c;而且这个错误还不是每次请求都必现&#xff0c;额什么意思&#xff1f;难不成你是说请求还时好时坏&#xff1f;bingo&#xff01…

CSDN企业数字化之路 ——「低代码」发展研讨会北京站现场实录大放送

作者 | 千鸟 出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09; 2021年底&#xff0c;CSDN面向行业开发者和高校学生开发者&#xff0c;展开了关于“低代码”的开发者调研活动。基于调研数据&#xff0c;CSDN提出了对低代码发展趋势的五大方向。在随后举行的 …

MaxCompute 存储设计

简介&#xff1a; 存储策略该怎么设计 写这篇存储规划的文章主要是想告诉大家该如何给存储做一个规划&#xff0c;在关系数据库的时代存储昂贵且珍惜&#xff0c;掰手指头花钱是存储规划的常态。但是到了大数据时代大家又立即就都变成印美元的美国政府了&#xff0c;感觉存储很…

Serverless Devs 2.0 开箱测评:Serverless 开发最佳实践

简介&#xff1a; 当下&#xff0c;Serverless 概念很火&#xff0c;很多同学被 Serverless 的优势吸引过来&#xff0c;比如它的弹性伸缩&#xff0c;免运维&#xff0c;高可用&#xff0c;资费少。但真正使用起来去落地的时候发现问题很多&#xff0c;大型项目如何组织函数&a…

【CDS技术揭秘系列 总篇】阿里云的云定义存储来了

简介&#xff1a; 全新发布的云定义存储 CDS 和传统的存储阵列、分布式存储、软件定义存储的区别在哪里&#xff1f;阿里云存储团队如何看待将来存储的发展趋势&#xff1f;本文邀请了 CDS 研发团队的核心技术负责人为大家揭开围绕着阿里云 CDS 的种种谜团。 云定义存储&#…

TSDB时序数据库时序数据压缩解压技术浅析

简介&#xff1a; 目前&#xff0c;物联网、工业互联网、车联网等智能互联技术在各个行业场景下快速普及应用&#xff0c;导致联网传感器、智能设备数量急剧增加&#xff0c;随之而来的海量时序监控数据存储、处理问题&#xff0c;也为时序数据库高效压缩、存储数据能力提出了更…

Atmosic推出ATM33新品,全新的ATM33系列性能大升级

为减少各种物联网产品高昂的电池更换成本&#xff0c;以及降低对环境的危害&#xff0c;在上个月举行的媒体发布会中&#xff0c;Atmosic营销及业务拓展副总裁 Srinivas发布了公司的新产品——ATM33&#xff0c;并详细解析了ATM33的技术特性和主要应用领域。 ATM33系列产品可支…

什么是低代码(Low-Code)?

简介&#xff1a; 什么是低代码&#xff1f;我们为什么需要低代码&#xff1f;低代码会让程序员失业吗&#xff1f;本文总结了低代码领域的基本概念、核心价值与行业现状&#xff0c;带你全面了解低代码。 阿里云 云原生应用研发平台EMAS 彭群&#xff08;楚衡&#xff09; 一…

php用wordanalysis抓取姓名_利用vba查询/抓取 外部数据

考虑这么一个excel文件&#xff0c;路径为&#xff1a;"E:dataEdata.xlsx"&#xff0c;样式如封面图片所示想要在其他excel文件中&#xff0c;通过代码直接抓取Edata.xlsx中想要的数据&#xff0c;做法如下&#xff1a;先在Visual Basic中勾选“工具-引用-Microsoft …

如何加速云原生数据应用?这个开源项目备受关注

简介&#xff1a; 自2020年9月Fluid正式对外开源&#xff0c;发展短短一年时间&#xff0c; Fluid 便一次获得两项开源界的重要认可&#xff0c;证明着其所专注的云原生、AI 领域也正在迎来广泛关注。这其中的意义和价值如何&#xff1f;我们尝试管中察豹&#xff0c;从 Fluid …

使用 Cilium 增强 Kubernetes 网络安全

作者 | Addo Zhang来源 | 云原生指北TL;DR在本篇&#xff0c;我们分别使用了 Kubernetes 原生的网络策略和 Cilium 的网络策略实现了 Pod 网络层面的隔离。不同的是&#xff0c;前者只提供了基于 L3/4 的网络策略&#xff1b;后者支持 L3/4、L7 的网络策略。通过网络策略来提升…

内含干货PPT下载|一站式数据管理DMS关键技术解读

简介&#xff1a; 深入解读实时数据流、库仓一体数据处理等核心技术 “数聚云端智驭未来”——阿里云数据库创新上云峰会暨第3届数据库性能挑战赛决赛颁奖典礼已圆满结束&#xff0c;更多干货内容欢迎大家观看峰会直播回放。 峰会直播回放&#x1f4ce;数聚云端 智驭未来——…

好饭不怕晚,扒一下 Redis 的配置文件

作者 | 阿Q来源 | 阿Q说代码在往期的文章中我们已经对Redis的概念和基本命令进行了讲解&#xff0c;今天我们来看下它的配置文件&#xff0c;Redis的配置文件在我们的开发和实际应用中起着非常重要的作用。我们可以在安装目录下找到redis.conf配置文件&#xff0c;通过vim命令进…

ICBU可控文本生成技术详解

简介&#xff1a; 文本生成&#xff08;Text Generation&#xff09;是自然语言处理&#xff08;Natural Language Processing&#xff0c;NLP&#xff09;领域的一项重要且具有挑战的任务。顾名思义&#xff0c;文本生成任务的目的是生成近似于自然语言的文本序列&#xff0c;…

云拨测助力节卡机器人 全面优化海外网站性能

简介&#xff1a; 【案例分享云拨测】借助云拨测&#xff0c;节卡机器人有效挖掘性能瓶颈&#xff0c;经过优化&#xff0c;提升网站打开速度 50% 以上&#xff0c;提高了运营推广活动的 ROI&#xff0c;帮助节卡为全球用户提供更加优质的服务&#xff01; 作者&#xff5c;白…

分享一个巨好用的 HTTP 命令行宝藏工具

作者 | Eason来源 | 程序员巴士HTTPie是一个命令行 HTTP 客户端。它的目标是使 CLI 与 Web 服务的交互尽可能人性化。HTTPie 设计用于测试、调试以及通常与 API 和 HTTP 服务器交互。http 和 https 的命令允许创建和发送任意 HTTP 请求。HTTPie 整体采用简单自然的语法&#xf…