“太极”如何利用混部资源,助力腾讯广告降本增效

news2024/11/20 13:32:07

编者按:近年来, 随着大模型在NLP领域横扫各种大数据磅单取得巨大成功之后,大数据加大模型成为了AI领域建模的标准范式。搜索、广告、推荐的建模也不例外,动辄千亿参数,上T大小的模型成为各大预估场景的标配,大模型能力也已经成为各大科技公司军备竞赛的焦点。

在广告场景,大模型由于使用了更多的模型参数,利用更多的训练数据,模型具备了更强的记忆能力和泛化能力,为广告效果向上提升打开了更大的空间。但是大模型在训练过程中所需要的资源也是成倍的增长,存储以及计算上的压力对机器学习平台都是巨大的挑战。同时平台能够支撑的试验数量直接影响算法迭代效率,如何用更小的成本,提供更多的试验资源,是平台努力的重点方向。而在去年,腾讯广告成功研发训练出两个千亿参数大模型,“混元AI大模型”与“广告大模型”,并将其应用于在最新一次的腾讯广告系统升级中,切实帮助广告主提升效果天花板。这一切都离不开底层太极机器学习平台的助力。

除了提供强大的基建支持,腾讯太极机器学习平台还持续探索降本增效方案,在广告离线训练场景利用混合部署资源大大降低了资源成本,每天为腾讯广告提供50W核心低成本混合部署资源,帮助腾讯广告离线模型训练资源成本降低30%,同时通过一系列优化手段使得混部资源稳定性和正常资源持平。本文作者来自腾讯TEG数据平台部,为大家详细解读“太极“平台混部资源配置的技术思考。


1. 太极机器学习平台介绍

太极机器学习平台,致力于让用户更加聚焦业务AI问题解决和应用,一站式的解决算法工程师在AI应用过程中特征处理,模型训练,模型服务等工程问题。目前支持公司内广告,搜索,游戏,腾讯会议,腾讯云等重点业务。

太极广告平台是太极为腾讯广告系统设计的集模型训练和在线推理的高性能机器学习平台,平台具备万亿参数模型的训练和推理能力。目前该平台支持腾讯广告召回,粗排,精排数十个模型训练和在线推理;同时太极平台提供一站式特征注册,样本补录,模型训练,模型评估以及上线试验的能力,极大提升了开发者效率。

训练平台:目前模型训练支持CPU和GPU两种训练模式,利用自研高效算子,混合精度训练,3D并行等技术,训练速度和业界开源系统相比提升1个量级。

推理框架:太极自研的HCF(Heterogeneous Computing Framework) 异构计算框架,通过硬件层,编译层和软件层联合优化,提供极致性能优化。

2. 成本优化具体实现

2.1 整体方案介绍

随着太极平台的不断发展,任务数和任务类型日益增多,资源需求也随之增多。为了降本增效,太极平台一方面提升平台性能,提升训练速度;另一方面,我们也寻找更加廉价的资源,以满足不断增长的资源需求。

峰峦——腾讯公司内部云原生大数据平台,利用云原生技术,对公司整个大数据架构进行升级。为满足大数据业务持续增长的资源需求,峰峦引入混部资源,在满足资源需求的同时,又可极大降低资源成本。峰峦针对不同场景下的混部资源,提供了一系列的解决方案,把不稳定的混部资源变成对业务透明的稳定资源。峰峦混部能力支持3类混部资源:

● 复用在线空闲资源。在线资源因波峰波谷现象、资源使用预估过高和集群资源碎片等原因,导致集群资源利用率不高,有大量的空闲资源。峰峦挖掘这部分临时空闲资源,来运行大数据任务,目前已在在线广告、存储、社交娱乐和游戏等场景混部。

● 离线资源弹性借出。大数据平台有些任务也具有潮汐现象,在白天大数据集群资源使用率低的时候,峰峦支持把部分资源临时弹性借出,待大数据集群高峰到来之前,再拿回这部分资源。这种场景非常适合解决节假日和大促期间在线任务临时需要大量资源问题,峰峦当前已支持春节和618等重大节假日。

● 复用算力资源。算力资源是以低优CVM方式挖掘云母机的空闲资源,所谓低优CVM是指在云母机上启动具有更低CPU优先级的CVM虚拟机,该虚拟机可实时被其他的虚拟机抢占资源。峰峦基于底层算力提供的资源信息,在调度、过载保护、算力迁移等方面做了大量的优化,目前已有百万核的大数据任务在算力资源上稳定运行。

同时,峰峦引入云原生虚拟集群技术,屏蔽底层混部资源来自不同的城市和地域导致的分散性特点。太极平台直接对接峰峦租户集群,该租户集群对应底层多种混部资源,而且租户集群拥有独立和完整的集群视角,太极平台也可无缝对接。

2.2 资源混部方案

2.2.1 在线空闲资源

峰峦自研了Caelus全场景在离线混部方案,通过将在线作业和离线作业混部的方式,充分挖掘在线机器的空闲资源,提升在线机器资源利用率,同时降低离线作业的资源成本。

如下图所示,是Caelus的基本架构,各个组件和模块相互配合,从多方面保证了混部的质量。

首先,Caelus全方位保证了在线作业的服务质量,这也是混部的重要前提之一,比如:通过快速的干扰检测与处理机制,主动感知在线服务质量,及时进行处理,并且支持插件化的扩展方式支持业务的特定干扰检测需求;通过全维度的资源隔离、灵活的资源管理策略等,保证在线服务的高优先级。

其次,Caelus从多方面保证了离线作业的SLO,比如:通过混部资源与离线作业画像,为作业匹配合适的资源,避免资源竞争;优化离线作业驱逐策略,优先排序驱逐,支持优雅退出,策略灵活可控。与大数据离线作业大多是短作业(分钟级甚至秒级)的特点不同的是,太极作业的运行时间大多较长(小时级甚至天级)。通过长周期的资源预测与作业画像更好地指导调度,为不同运行时长、不同资源需求的作业找到合适的资源,避免作业运行几小时甚至几天后被驱逐,导致作业状态丢失,浪费资源与时间。当出现需要驱逐离线作业的情况时,会优先通过运行时热迁移,将作业实例从一个机器迁移到另一个机器,并且保持内存状态和IP等不变,作业几乎无影响,极大地提升了作业的 SLO。为了更好地把混部资源利用好,Caelus还具备其他更多的能力,详见Caelus全场景在离线混部方案https://zhuanlan.zhihu.com/p/384606554

2.2.2 潮汐资源

大数据任务一般是白天任务量相对少,晚上任务量多,峰峦把白天部分空闲的大数据资源出让给太极平台,夜间再回收这部分资源,我们把这种资源称为潮汐资源。潮汐资源的特点是节点上的大数据任务几乎是完全退出的,但节点上还保留着大数据的存储服务HDFS,运行太极作业时不能影响到HDFS服务。太极平台使用潮汐资源时需要和峰峦平台协商一致,峰峦平台在固定时间点提前根据历史数据筛选一批节点,待大数据任务优雅退出后,通知太极平台有新的节点加入,太极平台开始在峰峦租户集群提交更多的任务。借用时间到达前,峰峦通知太极平台部分节点要回收,太极平台有序归还节点。

如下图所示,潮汐资源的挖掘、管理和使用涉及到多个系统的分工配合:

大数据资源出让系统:该系统会根据各个机器上不同的作业运行情况以及集群过去一段时间的运行数据,基于机器学习算法,找到最合适的待下线的机器节点,以满足特定的资源需求并且对正在运行的作业影响最小,然后禁止调度新的作业到这些节点上,等待节点上正在运行的作业运行完毕,最大限度地降低对大数据作业的影响。

Caelus 混部系统:虽然出让系统腾挪出来的机器资源上没有运行大数据作业了,但上面还运行着HDFS服务,还提供着数据读写服务。为了保护HDFS服务,引入Caelus混部系统,将HDFS作为在线服务,通过Caelus一系列的在线服务保证手段(如:通过HDFS关键指标检测其是否受到影响)保证HDFS服务质量不受影响。

通过虚拟集群的方式使用潮汐资源:这些出让的机器资源会由峰峦统一管理和调度,并以虚拟集群的方式提供给太极平台使用,提供 K8S 原生接口,这样做到了对上层平台屏蔽底层资源的差异性,保证应用使通过相同的使用方式使用资源。

与应用层断点续训打通:潮汐资源在晚上会被回收以用于运行大数据作业,为了减少回收的影响,峰峦和应用层的断点续训功能进行了打通,实现资源切换不中断训练,切换后不影响业务的继续运行。

2.2.3 算力资源

算力资源的特点是给业务呈现的是一个独占的CVM,对业务方使用来说比较友好。然而,使用算力资源的挑战在于云母机层面低优CVM的CPU资源会随时被在线CVM压制,导致算力资源非常不稳定:

● 算力机器不稳定:算力机器会因为碎片资源盘整、机房电力不足等原因下线。

● 算力资源优先级低:为了保证正常CVM机器的服务质量不受影响,算力资源上的作业优先级最低,会无条件为高优资源上的作业让步,导致性能极不稳定。

● 驱逐频率高:多种原因(算力资源性能不足、磁盘空间不足、磁盘卡住等)会触发主动驱逐pod,增加了pod的失败概率。

为了解决算力资源的不稳定性问题,通过峰峦主控层扩展各项能力,从多方面对算力资源优化,提升算力稳定性:

① 资源画像与预测:探索和搜集各种机器性能指标,生成聚合指标,预测低优CVM未来一段时间的可用资源情况,这些信息用于调度器调度pod和驱逐组件驱逐 pod,满足pod的资源要求。

② 调度优化:为保证太极作业的服务质量,针对作业的需求和资源的特点,在调度策略上有较多的优化,将作业性能提升了2倍以上。

● 同城调度:将PST和训练作业调度到同城同机房,将作业实例之间的网络延时降到最低,并且同城内的网络带宽成本也更低,起到了降低成本的作用。

● 单机调度优化:结合资源预测的结果以及CPU stealtime等指标,为作业选择性能更佳的CPU进行绑核,更好地提升作业性能。

● 分级调度:对所有管理的资源做自动打标和分级,把Job Manager等对容灾要求比较高的作业自动调度到相对稳定的资源上。

● 调优调度参数:根据资源资源画像和预测数据,调度器为作业优先挑选性能更优和更稳定的节点。另外为了解决步调不一致导致的梯队过期问题,将同一个作业的实例调度到性能接近的机器。

③ 运行时服务质量保证

● 主动驱逐阶段引入运行时热迁移,做到业务基本无感知:为了应对资源不稳定以及pod被驱逐导致应用被kill的问题,实现了运行时热迁移,并且提供了多种热迁移策略满足不同场景的需求。目前从线上数据看,使用迁移优先策略时,对于大内存的容器来说,热迁移的中断时间是10多秒。我们还实现了与内存大小无关的常数中断时间(恢复优先的策略)。当前每天成功主动迁移pod数2万多次,且支持跨集群热迁移,极大地降低了驱逐的影响。

● 优化驱逐策略,将驱逐造成的影响降到最低:每台机器每次驱逐时,优先驱逐后启动的pod,避免影响已启动任;每个任务每次只驱逐一个节点,避免单任务上下游一起被驱逐,造成任务级重启pod被驱逐时,和上层Flink框架联动,主动告知Flink,快速单点恢复。

④ 自反馈优化:通过资源画像,周期性的替换掉性能差的机器,并且与底层平台打通,实现对CVM的平滑抽离,让峰峦有机会以对业务无影响的方式逐个迁移应用实例,降低对实例的影响。

⑤ 提升Flink层的容灾能力,支持单点重启和层级式调度

TM(Task Manager)单点重启能力避免Task失败导致整个DAG失败,可以更好适配算力抢占式特性;分层调度避免gang scheduling造成过长的作业等待,并且可以避免TM Pod过度申请的浪费。

2.3 应用层优化方案

2.3.1 业务容错

离线训练任务要使用廉价资源一个大前提就是不能影响资源上原有任务的正常运行,所以混部资源有以下几个关键挑战:

● 混部资源大多是临时资源,会频繁下线;

● 混部资源会无条件为高优资源让步,导致机器性能极不稳定;

● 混部资源的自动驱逐机制也极大加大了节点和pod的失败概率。

为了保证在混部资源上任务可以稳定运行,平台使用三级容错策略,具体解决方案如下:

● 热迁移技术:在Task Manager将要发生驱逐前,提前感知,把相应的Task Manager迁移到另外一个pod上;同时利用内存压缩,流式并发,跨集群热迁移等能力持续优化热迁移成功率。

● Task Manager重启:当任务当中一个Task Manager由于异常或者驱逐等原因导致运行失败之后,整个任务不会直接失败退出,而是先保存该Task Manager的状态,然后重新启动该Task Manager,从而降低整个任务失败的概率。

● 任务Full Recovery: 当一个任务的由于Flink状态异常,处于无法恢复状态时,会触发 Job Manager 的重启,为了保证Job Manager的稳定性,平台把Job Manager部署在稳定性较好的独立资源上,保证任务状态正常。

● 断点续训:如果前面几个容错策略都失败了,平台会基于历史的某一个ckpt重新启动任务。

通过业务层的容错,运行在混部资源上的任务稳定性从最初的不到90%提升到最终的99.5%,基本和普通独占资源上任务稳定性持平。

2.3.2 任务潮汐调度

针对潮汐资源要求离线训练任务只能白天使用,晚上需要提供给在线业务使用,所以太极平台需要在白天时根据资源到位情况,自动启动训练任务;在晚上对任务做冷备,同时停止对应的训练任务。同时通过任务管理队列来管理每个任务调度的优先级,对于晚上新启动的任务会自动进入排队状态,等第二天早上再启动新的任务。

核心挑战:

● 潮汐现象:资源白天的时候可以提供给离线任务使用,晚上的时候需要回收。

● 资源动态变化:在白天时,资源也是不稳定的,资源会随时发生变化,一般是早上的时候资源比较少,然后资源逐渐增加,到晚上的时候资源到达高峰值。

解决方案:

● 资源感知的调度策略:早上在资源逐步增加的过程中,潮汐调度服务需要感知资源变化,同时跟进资源情况来启动待继续训练的任务。

● 模型自动备份能力:在晚上资源回收前,需要把当前平台上运行的所有任务逐步做备份,这对于平台的存储和带宽压力非常大,因为平台上有几百个任务,每个任务冷备大小从几百G到数T大小不等,如果在同一时间做冷备的话需要在短时间传输和存储数百T的数据,对于存储和网络 都是巨大的挑战;所以我们需要有一套合理的调度策略,逐步做模型的存储。

● 智能资源调度能力:潮汐调度和传统训练相比,每个任务在晚上资源回收时的模型备份和每天早上任务新启动的时候的开销是额外开销,为了降低这部分额外开销,我们调度时需要评估哪些任务在当天就能跑完,哪些任务需要跑多天,对于当天能跑完的任务,我们优先给它分配更多资源,保证当天任务运行完成。

通过这些优化能够保证任务能稳定在潮汐资源上运行,对于业务层基本无感知。同时任务的运行速度不会受太大影响,由于任务启停调度带来的额外开销控制在10%以内。

3. 在线效果和未来展望

太极在离线混部优化方案在腾讯广告场景落地,每天为腾讯广告离线模型调研训练提供30W核全天候的混合部署资源,20W核潮汐资源,支持广告召回,粗排,精排多场景模型训练。在资源成本上,相同计算量任务上,混合部署资源成本是普通资源的70%。经过优化系统稳定性和物理集群任务成功率基本持平。

后续一方面我们会继续加大混合算力资源的使用,尤其会加大混合算力资源的应用;另一方面,公司在线业务在GPU化,所以在混合资源应用上,除了传统的CPU资源之外,也会尝试对在线GPU资源在离线训练时使用。

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

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

相关文章

人脸识别——景联文科技提供3D头模数据采集业务!

“拿起手机刷脸解锁、上下班考勤、支付订单,刷脸已极大地便利了我们的生活。清华大学新闻学院教授沈阳表示,中国人平均每天要暴露在各种摄像头下超过500次。人脸识别已成了我们生活中重要的一部分。由于2D人脸识别容易受到姿态、表情、光照等因素影响&am…

痛苦面具,140天备战阿里巴巴,一个疏忽让我前功尽弃...

面试是走的内推途径,因为内推的简历通过率远高于其他方式;我的内推的途径有:联系我在字节跳动工作的一个大学学长。 在线面试,有个线上文本编辑器,类似leetcode那种,可以在线编程。然而有点紧张,视频面试网…

C#开发的OpenRA游戏加载界面的实现

C#开发的OpenRA游戏加载界面的实现 游戏的UI是一个游戏必备, 但是游戏的UI都是自己处理的,不能使用像Windows自带的UI。 这样游戏的UI,其实也是使用游戏的方式来显示的, 只不过使用了低帧率的方式来显示。 比如OpenRA游戏界面,就会显示如下: 游戏的界面有很多,先从一个简…

2023美赛F题全部代码+数据+结果 数学建模

2023年美赛F题全部思路 数据代码都已完成 全部内容见链接:https://www.jdmm.cc/file/2708700/ 1.根据文献选的GGDP的指标,发现GGDP与水资源等有关,由此可以筛选出影响GGDP的所有因子,并可以用所有因子利用层次分析法建立评价体…

小白指南:手把手教你用低代码开发一个应用页面

一、什么是低代码开发 在了解低代码开发之前,我们先看看使用低代码开发的效果。 低代码开发效果示例 低代码开发是DevEco Studio为HarmonyOS开发者提供的可视化页面的开发方式,具备丰富的UI页面编辑能力,开发者可以在图形化的用户界面上自由拖…

项目质量要怎么保持? 如何借助系统软件进行管理

对于任何项目型的企业总是很关心项目成本的话题,但不知从什么时候开始,高质量等于高成本成了各个企业的一种潜意识。 如果交付的项目产品不符合质量标准,即使企业使用最好的项目管理工具或者每个里程碑都达到并在预算范围内完成项目&#xf…

基于springboot的餐饮管理系统

摘 要本设计以真实场景的菜品信息及相关餐桌预定为设计依据,结合了餐饮管理系统的需求及反映的问题,对系统做出合理的需求分析和界面设计。同时本系统使用了JAVA语言、Springboot框架以及MYSQL作为后台数据库进行开发。从系统描述、系统设计及系统实现等…

【Kubernetes】第二篇 - 购买阿里云 ECS 实例

一,前言 上一篇,简单介绍了 CI/CD 的概念以及 ECS 服务规划,搭建整套服务需要三台服务器,配置如下: ECS 配置启动服务说明2核4GJenkins Nexus Dockerci-server2核4GDocker Kubernetesk8s-master1核1GDocker Kube…

Outcome VS. Output:研发效能提升中,谁会更胜一筹?

2007 年,网景通信公司(Netscape)的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 ,他写道, 「这意味着在一个良好的市场中,拥有能够满足该市场的产品。」…

SYN480R 解码

目录1.空载情况下2.当有按键被按下3.数据帧分析4.同步码5.数据码6.对24位数据帧分析1.空载情况下 在空载情况下,syn480r 输出引脚,输出的是杂乱无序的波形 2.当有按键被按下 按下按键,会连续输出相同的脉冲波形,放大分析 3.数据…

ParallelsDesktop安装【亲测可行】

我这边安装的是macos最新系统 (Ventura13.2) 本文参考这篇文章安装,但是你完全按照这篇文章会报错,具体可行操作记录如下 一、下载软件和补丁 1、点这里去下载补丁18.0.1 2、点这里去下载对应版本的ParallelsDesktop18.0.1,安装上到试用这里…

RocketMQ 初步了解

RocketMQ 初步了解 前言: ​  近期,因公司使用 RocketMQ 作为消息队列中间件,特此了解。  RocketMQ 是阿里巴巴在 2012 年开发的分布式消息中间件,专为万亿级超大规模的消息处理而设计,具有高吞吐量、低延迟、海量…

计算机图形学:中点BH算法对任意斜率的直线扫描转换方法

作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、问题提出二、…

通俗易懂的机器学习——sklearn鸢尾花分类(KNN)

前言 KNN算法是机器学习中较为简单的入门算法,其主要思想是选取k个与待预测点相近的数据,观察他们的类别,本着离谁近就更像谁的思路对于待预测点进行预测,本文将针对使用sklearn进行KNN算法的使用进行详解 数据预处理 在正式开…

测试开发之Django实战示例 第十二章 创建API

第十二章 创建API在上一章里,创建了一个学生注册系统和选课系统。然后创建了展示课程内容的视图,以及学习了如何使用Django缓存框架。在这一章里有如下内容:建立RESTful API管理API视图的认证与权限建立API视图集和路由1创建RESTful API你可能…

【设计模式】创建型模式

简单工厂模式 系列综述: xxxxxxxxx 文章目录对象创建型模式简单(静态)工厂模式工厂方法模式参考博客😊点此到文末惊喜↩︎ 对象创建型模式 简单(静态)工厂模式 抽象原理 抽象产品基类 :定义了…

35岁测试工程师被辞退,给你们一个忠告

一:前言:人生的十字路口静坐反思 入软件测试这一行至今已经10年多,承蒙领导们的照顾与重用,同事的支持与信任,我的职业发展算是相对较好,从入行到各类测试技术岗位,再到测试总监,再转…

silicon labs平台通过串口升级固件方案

开发环境 windowssimplicity studio 5geck sdk 4.1 一 bootloader 新建BGAPI UART DFU工程 工程新建完成以后看一下linkerfile.ld文件的flash和ram的配置跟自己的application工程是否对应得上 配置串口波特率和引脚 默认使用PB0进入bootloader模式,这里改成Non…

CleanMyMac清理工具软件功能优势介绍

CleanMyMac更新最新版本x4.12,完美适配新版系统macOS10.14,拥有全新的界面。CleanMyMac可以让您安全、智能地扫描和清理整个系统,删除大型未使用的文件,减少iPod库的大小,最精确的应用程序卸载,卸载不必要的…

多传感器融合:MVP和PointPainting

多传感器融合相关的理论真的可以非常复杂,而在感知方面,由于可以和深度学习做结合,所以很多工作可以变得简单有效,有时候一个简单的特征融合都会有很好的效果。本文结合 3D 物体检测,为大家带来两篇工作,一…