《华为云 王雷博-基于Volcano的云原生AI基础设施落地实践-v2.pdf》由会员分享,可在线阅读,更多相关《华为云 王雷博-基于Volcano的云原生AI基础设施落地实践-v2.pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、基于基于VolcanoVolcano的云原生的云原生AIAI基础设施的落地实践基础设施的落地实践王雷博王雷博 华为云容器服务架构师华为云容器服务架构师个人简介个人简介 王雷博,华为云容器服务架构师,CNCF Volcano开源项目负责人。负责华为云容器调度系统、混部系统、FinOps体系构建。目录目录 云原生AI基础设施面临的挑战 Volcano项目介绍 基于Volcano的AI基础设施实践人工智能发展趋势:人工智能发展趋势:AIAI创新加速、创新加速、ChatGPTChatGPT发布引发革命发布引发革命ChatgptChatgpt及及StableDiffusionStableDiffusio
2、n加速加速AIGCAIGC进入拐点进入拐点2016年DeepMind围棋各个软件用户数达到各个软件用户数达到100100万所用的时间万所用的时间2018年 Google BERT2019年 DeepMindAlphaStar 游戏2019年 OpenAIGPT-32021年 DeepMindAlphaFold2 蛋白质结构2022年 OpenAIChatGPTAIGC(AI Generated Content)是指使用人工智能技术自动或辅助地生成或编辑文本、音频、视觉等数字内容,也被称为生成式AI。它涉及无监督和半监督学习算法,AIGC是人工智能技术从感知、认知到创造的延伸。人工智能面临的挑战
3、人工智能面临的挑战AIAI任务性能依赖高性能的调度器任务性能依赖高性能的调度器相对于微服务,训练任务更复杂,涉及多个不同角色的进程调度、并行以及协同;大规模集群调度吞吐率亟待提升精细化的管理和调度异构资源,实现分时复用批量调度策略、弹性调度、抢占、优先级、支持多种AI训练框架通过对应用的感知、硬件拓扑(Nvlink、HCCS、Switch、NUMA)的感知,提供智能调度,提升作业性能大大模型训练严重依赖高性能网络:模型训练严重依赖高性能网络:AI算法模型参数量呈指数级上升,大模型不断涌现,训练大模型需要分布式多卡协同;节点内模型并行,依赖NVLink高速链路承载前向和反向过程中产生的巨大通信量
4、;节点间采用流水线+数据并行,采用节点点的高性能网络设备(IB、RDMA、高性能交换机)、集合通信库(HCCL、NCCL)以及动态路由规划随着集群内节点和Pod 数量的增加,一般CNI网络插件难以满足所需的吞吐量吞吐量。因此需要高性能的容器网络 AIGCAIGC大模型、自动驾驶等催生大规模算大模型、自动驾驶等催生大规模算力需求:力需求:目前AI训练所需算力增长规律是大约每隔3-4月翻倍,而半导体摩尔定律是18个月翻倍,全球算力有告罄风险;ChatGPT训练算力需要1wA100卡月,推理场景4816卡常备,单次训练成本1000w美金2.AIGC提速降本是刚需,如Colossal-AI:AIGC大
5、模型加速方案一行代码,提速6.4倍,成本降低85%3.自动驾驶训练、仿真计算,如Tesla FSD 训练:1w A100卡,标注:4k A100卡全球数据中心普遍资源利用率不高:全球数据中心普遍资源利用率不高:据 Gartner 统计,企业CPU平均使用率不足15%15%,GPU使用率也不理想,造成集群利用率低的原因有多种;资源碎片化:大数据/AI如果使用独立资源池,资源需求会随着任务诉求有明显的波峰波谷资源配置不合理:训练任务资源使用情况难以预测,申请资源时具有盲目性,通常申请过量资源资源调度不均衡:节点GPU/NPU资源耗尽,导致服务器上CPU资源出现严重空闲导致浪费GPU任务通常会交替使
6、用CPU和GPU,当CPU计算成为瓶颈时,GPU资源会出现浪费算力需求算力需求任务调度任务调度高性能高性能网络网络算算力利用率力利用率云原云原生基础设施成为生基础设施成为AIAI的主流选择的主流选择核心价值核心价值统一的异构资源管理:统一的异构资源管理:Kubernetes支持高效的管理异构算力资源、高性能网络;利用云原生分布式云技术,轻松实现云、边、端侧异构资源的统一管理和调度;资源资源利用率利用率高:高:容器技术与底层共享操作系统,性能更加优良,系统负载更低,在同等条件下运行更多的应用实例,更充分地利用系统资源;丰富的生态软件:丰富的生态软件:Kubernetes生态提供了丰富的训练、推理
7、框架、工具集,满足业务的多样性需求;DevOps/DevOps/MLOpsMLOps:基于云原生技术的持续续集成和部署,大大提升大模型应用的开发速度,助力持续创新;简便运维:简便运维:云原生技术以应用程序为中心,可帮助应用与基础架构分离,实现简化部署、秒级弹性和基础设施免运维管理;InferentiaTPUGPUAscendFPGA云原云原生生AIAI正在加速产业化落地正在加速产业化落地Gartner 预测,到 2023 年 70%的 AI 应用会基于容器和 Serverless 技术开发,实际生产中,越来越多的 AI 业务比如自动驾驶、NLP 等也正在转向容器化部署;IDC 发布了云原生 A
8、I-加速 AI 工程化落地的报告,报告中指出云原生 AI 能够有效加速 AI 工程化落地,并对云原生 AI 的能力划分了三个等级;OpenAIOpenAI的云原生基础设施发展的云原生基础设施发展历程历程Scaling Kubernetes to 2,500 nodes OpenAI 创建于 2015 年,并于2018 年在 DevOps 和 SRE 社区中脱颖而出,这要归功于其对大规模 Kubernetes 使用的深刻技术洞察力。1.从公司成立之初就一直在使用 Kubernetes 进行深度学习研究。2.有多个Kubernetes集群。部分部署在云端,部分则部署在裸机服务器上。3.最大的 Ku
9、bernetes 集群在 Azure 中运行,当时有超过 2,500 个节点。4.克服各种工程挑战。例如处理 etcd 和网络性能,提高 kube-dns 可靠性等。Scaling Kubernetes to 7,500 nodes2021 年,OpenAI 工程师阐明了他们的下一个重要旅程将 Kubernetes 扩展到 7,500 个节点。除了 Kubernetes 集群的三倍增长之外,他们的文章还透露:1.该集群用于“GPT-3、CLIP 和 DALLE 等大型模型”,以及快速的小规模迭代研究。2.一次可以使用大约 200,000 个 IP 地址。3.利用了 NVIDIA GPU,这需要
10、额外的努力来重新实现所有重要的健康检查。基于基于VolcanoVolcano构建构建AIAI基础设施,实现基础设施,实现AIAI加速、降本增效加速、降本增效业界首个云原生批量计算平台2019年6月开源,2020年进入CNCF,目前是CNCF孵化级项目2.6k star,450+全球贡献者50+企业生产落地社区用户社区用户Data from https:/cf.ioTop Top ContributorsUsersUsersVolcanoVolcano架构架构1.1.统一的作业管理统一的作业管理 提供完善作业生命周期管理,统一支持几乎所有主流的 计算框架,如Pytorch,MPI,Horovod
11、,Tensorflow、Spark-operator,Flink-operator等。2.2.丰富的高阶调度策略丰富的高阶调度策略 公平调度、任务拓扑调度、基于SLA调度、作业抢占、回填、弹性调度、混部等。3.3.细粒度的资源管理细粒度的资源管理 提供作业队列,队列资源预留、队列容量管理、多租户 的动态资源共享。4.4.性能优化和异构资源管理性能优化和异构资源管理 调度性能优化,并结合 Kubernetes 提供扩展性、吞吐、网络、运行时的多项优化,异构硬件支持x86,Arm,GPU,昇腾,昆仑等。Volcano GlobalKubernetesVolcano-controllerVolcan
12、o-schedulerKubernetesVolcano-controllerVolcano-schedulerKube-apiserverJob/JobFlowQueuevc-controllervc-schedulervsubkubectlNodeNUMAGPUNodeNUMAGPU1 12 23 34 4VolcanoVolcano在华为云的实践在华为云的实践 运行于华为云众多容器服务:CCE、CCI、UCS、IEF 支撑业务:华为云外部客户业务、以及公司内部业务,如终端业务(应用市场、搜索、地图、定位)、ModelArts AI平台服务、质量与流程IT、IOT业务等 负载类型:微服务、
13、大数据分析、机器学习、深度学习等 规模:上千个集群,百万容器AIBTMAIAIBBTTMMAI任务大数据任务转码微服务托管式托管式K8s CCEHHHHPC任务NodekubeletNodeKATAAIBMHH批量计算任务批量计算任务微服务微服务AIAITT分布式云分布式云UCSUCSMServerless 容器容器CCI基于基于VolcanoVolcano的云原生的云原生AIAI基础设施基础设施基础资源基础资源开源开源AIAI框架框架华为云华为云AIAI服务服务Modelarts用户用户AIAI工作负载工作负载 智能调度智能调度应用加速应用加速APIAPI控制器控制器智能优化子系统智能优化子
14、系统调度策略调优多集群调度吞吐优化资源超卖基础调度子系统基础调度子系统优先级调度公平调度容器弹性智能应用混部批量调度vGPU调度GPU拓扑调度NPU算力切分智能运维智能运维智能巡检集群监控诊断算力供给算力供给Workflow engineWorkflow engineCCICCICCE TurboCCE Turbo镜像加速all-reduce/rank tableall-reduce/rank table网络预热psps-worker-worker弹性训练FinopsFinops成本洞察成本优化云原生缓存高性能网络高性能网络高性能存储高性能存储异构算力异构算力成本画像DatasetJobflo
15、wPodGroupVolcano JobdatasetdatasetMCPMCP 提升资源利用率:提升资源利用率:智能应用调度,充分利用集群资源;xgpu异构资源虚拟化,多任务共享异构资源;在离线混合部署和超卖,任务资源动态实时抢占;支持弹性训练/弹性推理;性能提升:性能提升:结合NCCL/HCCL的硬件拓扑感知调度;数据集访问加速,大幅提升训练速度;容器镜像免加载,加速容器启动;结合基础设施,构建“应用+资源”感知调度能力;支持丰富的AI调度策略,提升分布式训练的性能力;高易用性和高扩展性:高易用性和高扩展性:支持覆盖机器学习全生命周期前端控制台;支持业界主流的训练框架及工作流编排框架;支持
16、面向AI业务的监控系统和日志系统;降低运维成本和使用成本:降低运维成本和使用成本:提供AI环境一键部署能力;为用户节省AI组件运维成本;Finops成本优化;统一的计算平台,支持主流北向统一的计算平台,支持主流北向AIAI生态和框架生态和框架支持多种异构设备支持多种异构设备 Gang-scheduling Fair-share scheduling Queue scheduling Preemption scheduling Topology-based scheduling Reclaims Backfill Resource Reservation支持几乎所有的主流计算框架支持几乎所有的主
17、流计算框架支持丰富的作业调度策略支持丰富的作业调度策略GPUGPU资源管理和调度资源管理和调度GPUGPU基础基础设施设施推理加速型Pi2Pi2(T4T4)AIAI on K8son K8s华为云华为云IDC推理加速型Pi3Pi3(A30A30)训练加速型P2sP2s(V100V100)训练加速型P3vP3v(A800A800)华为云容器引擎华为云容器引擎 CCECCEServerlessServerless异构资源异构资源按量付费按量付费CCICCI健康检查健康检查指标监控指标监控弹性伸缩弹性伸缩GPUGPU运维运维GPUGPU调度调度GPUGPU管理管理GPUGPU虚拟化虚拟化云原生云原生
18、GPUGPU编排调度编排调度GPU管理:GPU资源全生命周期管理GPU调度:Volcano提供AI场景的组、队列、拓扑感知调度等高阶调度策略GPU可观测性:健康检查、故障隔离和资源监控GPU的弹性伸缩:基于GPU相关指标的容器实例弹性伸缩云原生云原生GPUGPU虚拟化:虚拟化:细粒度细粒度GPUGPU资源隔离资源隔离/共享共享线上、线下同栈的虚拟化技术云原生云原生GPUGPU基础设施基础设施多种规格GPU机型可供选择按量付费、极致弹性的Serverless异构算力资源池GPUGPU资源管理和调度资源管理和调度 按需选择按需选择GPUGPU共享方式:共享方式:共享不隔离:多任务共享同一个物理GP
19、U资源,不进行资源隔离,原生抢占方式使用算力和显存;共享隔离:多任务共享同一个物理GPU资源,资源强隔离;按需申请资源:按需申请资源:AI任务按需申请GPU资源,提升GPU资源使用效率;资源抢占:资源抢占:高优先级任务动态实时抢占低优先级任务GPU资源;低优先级任务充分使用GPU空闲资源;GPUGPU虚拟化能力虚拟化能力CCEvolcanoKubelet/Device pluginXgpu DriverNPUNPU资源管理和调度资源管理和调度 HCCS亲和性调度:优先将Pod分配到同一个HCCS,发挥HCCS互联的高带宽优势;碎片最小化调度:提供服务器级别亲和调度,优先占满一个节点,降低集群碎
20、片;集群通信优化,减少Tor流量,实现无阻通信,可实现性能40%提升;故障感知:支持芯片级故障隔离、芯片降频故障隔离、芯片连接交换网络路由故障隔离;AIAI任务的统一管理任务的统一管理Volcano Job:Volcano Job:统一类型接口,支持业界主流作业类型,如mpi,pytorch,tensorflow,mxnet等 细粒度作业生命周期管理易扩展的作业插件机制EnvSvcSshTensorflowCoordinate with Scheduler 提供作业依赖支持、作业弹性、SLAapiVersion:batch.volcano.sh/v1alpha1kind:Jobmetadata
21、:name:mpi-joblabels:volcano.sh/job-type:MPIspec:#minimumnumberofpodsneedtobestartedminAvailable:3schedulerName:volcanoplugins:#joblevelsshtrustssh:#definenetworkrelevantinfoforrunning,#hosts,headlessservicesetc.svc:#restartwhojobifanypodgetevictedpolicies:-event:PodEvictedaction:RestartJobtasks:-rep
22、licas:1name:mpimaster#Markwholejobcompletedwhenmpiexeccompletedpolicies:-event:TaskCompletedaction:CompleteJob高性能调度、加速高性能调度、加速AIAI训练性能训练性能相比默认调度器,AIAI训训练作业性能提升练作业性能提升 31%31%测试结果为 3 个作业的总执行时间;每个作业包含 2ps+4workers Gang-scheduling同时解决了多作业死锁的情况相比默认调度器,SparkSpark作业性能提升作业性能提升 51%51%测试结果为 104 个TP-DCS 查询语句us
23、edNodeusedNodeAI大数据HPC/基因派发作业123支持多种类型作业混合部署支持多队列多队列用于多租户资源共享,资资源规划源规划;并分时复分时复用用资源支持多种高级调度多种高级调度策略策略,有效提升整集群资源利用率4支持资源实时监控,资源实时监控,用于高精度资源调度,例如 热点,网络带宽混混合合部署技术,支持训练、推理业务混部部署技术,支持训练、推理业务混部多种业务统一调度多种业务统一调度1.1.融合调度:融合调度:提供队列、组、作业优先级、公平调度、资源预留等多种抽象,统一满足微服务、大数据、AI多业务调度需求;2.2.应用感知调度应用感知调度:提供应用拓扑感知、SLO感知、SL
24、A感知等调度算法,提升影响性能和利用率;3.3.资源感知调度资源感知调度:提供CPU NUMA拓扑感知、IO感知、网络感知调度,软硬协同,提升影响性能2 2业务业务QoSQoS保障保障1.1.CPUCPU优先核:优先核:为应用分配优先使用核,既保障业务QoS,又能在业务波谷期间允许其它应用使用;2.2.优先级控制:优先级控制:在CPU、内存、网络、L3缓存等多维度上为应用提供高优低优的自动控制,使资源分时复用,提升资源利用率;3.3.资源动态超卖:资源动态超卖:集群内CPU和内存,基于应用资源画像(Request和Usage的差值)动态计算超卖资源,以供低优业务使用,进一步提升资源的利用率。3
25、 3分时复用资源分时复用资源1.1.消减集群和节点资源碎片:消减集群和节点资源碎片:业务集群相互融合,组成较大的资源池,多个业务混合部署到一起,即减小集群资源碎片,又能通过大小应用的装箱和重调度,进一步消减集群碎片,提升资源分配率;2.2.“潮汐潮汐”业务错峰复用资源:业务错峰复用资源:将业务“潮汐”明显,且波峰错开的应用部署在同一个节点上,结合CPU优先核,保障业务QoS的同时,错峰使用资源,提升资源利用率;3.3.高低优业务分时复用资源:高低优业务分时复用资源:将微服务和批量计算任务混合部署,在高优业务需要资源时,通过快速压制低优业务释放资源,保障高优业务的QoS。1 1CPUCPU优先核
26、,实现优先核,实现CPUCPU精细化管理精细化管理A处于业务潮起期,未超过优先核,运行在优先核内A处于业务波谷期,运行在优先核内A处于业务波峰期,超过优先核,将使用节点共享核资源A处于业务潮落期,回到优先核以内,运行在优先核内优先核共享核优先核共享核节点节点CPUCPU潮汐亲和性管理示意图:潮汐亲和性管理示意图:静态绑核系统节点节点CPUCPU资源分配示意图:资源分配示意图:优先核剩余CPU独占CPU保留CPU共享核CPUCPU潮汐亲和性特点:潮汐亲和性特点:1.优先核资源充足时,使用优先核2.优先核与静态绑核不同,能被其他工作负载使用场景一场景一:未设置CPU管理策略,pod request
27、 3c,limit 5c,负载2c,随机抢占CPU。场景二:场景二:设置“潮汐亲和”,pod request 3c,limit 5c,负载2c,使用优先核,效果接近绑核。使用优先核,效果接近绑核。场景三:场景三:设置“潮汐亲和”,负载低峰期,其优先核能够被其他负载共享。其优先核能够被其他负载共享。业界常见解决方案:业界常见解决方案:1.Guaranteed Pod:为应用提供绑核功能,保障了应用性能,但降低了节点资源利用率;2.Burstable Pod:不绑核,随着节点规格增加,CPU上下文切换带来的应用性能损耗越多;CPUCPU优先核解决方案,在保障应用性能的同时,有效的提升资源利用率。优
28、先核解决方案,在保障应用性能的同时,有效的提升资源利用率。案例:基于案例:基于VolcanoVolcano优化在线、离线训练平台优化在线、离线训练平台在线服务标签计算在线模型训练在线模型训练 全量模型(千亿参数)发布全量模型 训练样本数据拼接(Flink)特征数据KV缓存训练数据基于基于VolcanoVolcano的离线的离线模型训练模型训练 模型更新数据流 发布更新 模型数据流 标签数据流 业务场景:业务场景:国内领先生活分享社区,作为月活2.7亿的顶级社交媒体和电商平台,推荐是小红书的核心业务之一。小红书AI平台由包含在、离线训练,同时承担数十万样本分析和模型训练作业,模型生成时间在分钟量
29、级。客户诉求:客户诉求:数十万核云资源消耗数十万核云资源消耗,需优化资源合理性,提升资源利用率,降低成本。上亿级训练样本,上亿级训练样本,TBTB级数据量,推荐系统的能力遇到瓶颈级数据量,推荐系统的能力遇到瓶颈,需增强AI推荐精准度,提升营销ROI方案关键价值:方案关键价值:多业务混合部署,统一资源池统一资源池,离线作业可用资源大幅增加,作业周期明显缩短。CCE turobo配套HCE操作系统提供全方位资源隔离全方位资源隔离,为在线实时业务保驾护航。Volcano智能调度,组调度搭配TensorFlow作业拓扑感知,AIAI训训练性能提升练性能提升30%;30%;训练模型优化,模型更新时效由天
30、缩短至分钟 案例:基于云原生基础设施打造案例:基于云原生基础设施打造AIAI大科学装置,加速创新大科学装置,加速创新鹏城实验室是实现国家使命的创新基础平台,其“鹏城云脑II”探索构建E级AI超算系统,打造新一代人工智能基础开源开放平台鹏城实验室鹏城实验室鹏城云脑鹏城云脑II II国家级人工智能平台国家级人工智能平台降低并行门槛提高资源效率全栈协同加速加速创新支持万亿参数大模型支持万亿参数大模型40964096卡并行卡并行大规模分布式大规模分布式AIAI计算性能提升计算性能提升40%+40%+自动异构加速 网络亲和性调度 自适应无阻塞通信 高效收敛算法AIAI应用落地效率提升应用落地效率提升3+
31、3+倍倍集群资源利用率提高集群资源利用率提高20%+20%+自动并行 自动部署 E级算力调度 预训练大模型 弹性训练 任务混部 AI智能调度 算力精细化管理 数据自动处理 参数自动调优 算法自动优化 模型智能诊断云脑平台系统AI计算中心软件AI计算中心硬件基础容器云平台AI使能平台了解更多技术实践案例了解更多技术实践案例麦思博(msup)有限公司是一家面向技术型企业的培训咨询机构,携手2000余位中外客座导师,服务于技术团队的能力提升、软件工程效能和产品创新迭代,超过3000余家企业续约学习,是科技领域占有率第1的客座导师品牌,msup以整合全球领先经验实践为己任,为中国产业快速发展提供智库。高可用架构主要关注互联网架构及高可用、可扩展及高性能领域的知识传播。订阅用户覆盖主流互联网及软件领域系统架构技术从业人员。高可用架构系列社群是一个社区组织,其精神是“分享+交流”,提倡社区的人人参与,同时从社区获得高质量的内容。