简介: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) 接管。
Morphling 本意是游戏 Dota 中的英雄“水人”,他能够依据环境要求,通过灵便扭转本身状态,优化战斗体现。咱们心愿通过 Morphling 我的项目,实现针对机器学习推理作业的灵便、智能的部署配置扭转,优化服务性能,升高服务部署老本。
Morphling Github:https://github.com/kubedl-io/morphling
Morphling 网站:https://kubedl.io/tuning/intro/
背景
云上机器学习的工作流,能够分为模型训练(model training)和模型推理(model serving)两局部:模型在离线训练、调优测试实现之后,会以容器的形式部署为在线利用,为用户提供不间断的高质量推理服务,例如在线直播视频中的指标物品辨认、在线语言翻译工具、在线图片分类等。例如,阿里巴巴外部的淘系内容社交平台 Machine Vision Application Platform(MVAP),通过在线机器学习推理引擎,反对淘系直播商品看点辨认、直播封面图去重、逛逛图文分类等业务。依据英特尔的数据,大规模推理 (“Inference at Scale”) 时代将至:到 2020 年,推理与训练周期比率超过 5:1;亚马逊的数据显示,2019 年亚马逊 AWS 在模型推理服务上的基础设施开销,占到其机器学习工作总开销的 90% 以上。机器学习推理曾经成为人工智能落地和“变现”的要害。
云上推理工作
推理服务自身是一种非凡的 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 之上,解决机器学习在产业理论部署中的性能和老本挑战。
Morphling 对参数调优的过程进行了不同档次的云原生形象,提供给用户简洁且灵便的配置接口,将底层的容器操作、数据通信、采样算法、和存储管理封装在控制器中。具体来说,Morphling 的参数调优 - 性能压测,采纳 experiment-trial 工作流程。
- Experiment 作为最贴近用户的一层形象,通过交互,由用户指定机器学习模型的存储地位、待调优的配置参数、测试数量下限等,定义一次具体的参数调优作业。
- 对于每个参数调优作业 experiment,Morphling 定义了另一层形象:trial。Trial 封装了针对某一特定参数组合的一次性能测试流程,涵盖了底层的 Kubernetes 容器操作:每个 trial 中,Morphling 依据测试参数组合,配置并启动推理服务容器,检测服务的可用性和衰弱状态,并对服务进行压力测试,测量该配置下容器的服务性能,例如响应时间延迟、服务吞吐量、资源应用效率等。测试后果将存储在数据库中,并反馈给 experiment。
- Morphling 通过智能的超参调优算法,抉择大量配置组合进行性能测试(trial),每轮测试后果作为反馈,来高效抉择下一组待测参数。为了防止穷举形式的规格点采样,咱们采纳贝叶斯优化作为画像采样算法的外部外围驱动,通过一直细化拟合函数,以低采样率(<20%)的压测开销,给出靠近最优的容器规格举荐后果。
通过这样迭代式的采样 - 测试,最终反馈给业务部署人员优化的配置组合举荐。
同时,Morphling 提供了管控套件:Morphling-UI,不便业务部署团队在可界面化上,通过简略易用的操作,发动推理业务配置调优 experiment、监控调优过程、比拟调优后果。
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 推理实例,“配置 - 性能”曲面的形态类似,但配置对性能的影响水平和要害节点,在数值上各不相同:
上图可视化了三种 AI 推理模型,其 <CPU 核数、GPU 显存大小 > 的二维配置,对容器服务吞吐量 RPS 的影响。论文提出,应用 Model-Agnostic Meta-Learning(MAML)对这些共性进行提前学习,训练出元模型,从而对新的 AI 推理性能测试,疾速找到曲面中的要害节点,以元模型登程,作出小样本下(5%)的准确拟合。
总结
Morphling 基于的 Kubernetes 机器学习推理服务配置框架,联合“疾速、小样本采样、低测试老本”的调优算法,实现了面向云原生的自动化且稳固高效的 AI 推理部署调优流程,更快地赋能部署流程的优化和迭代,减速机器学习业务利用的上线。Morphling 和 KubeDL 的联合,也会使得 AI 从模型训练,到推理部署的配置调的优体验更为晦涩。
Reference
Morphling Github:https://github.com/kubedl-io/morphling
Morphling 网站:
https://kubedl.io/tuning/intro/
KubeDL Github:
https://github.com/kubedl-io/kubedl
KubeDL 网站:
https://kubedl.io/
戳链接(https://github.com/kubedl-io/morphling),查看 Morphling 我的项目 github 主页!
版权申明: 本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。