近年来,大数据增强模型已经成为AI领域建模的标准范式。在广告场景中,由于大模型使用了更多的模型参数和更多的训练数据,模型具有更强的记忆能力和泛化能力,为广告效果的提升打开了更大的空间。然而,大型模型在训练过程中所需的资源也呈指数级增长,存储和计算压力对机器学习平台来说是一个巨大的挑战。腾讯太极机器学习平台不断探索降本增效方案,在线下广告训练场景采用混合部署资源,大幅降低资源成本。每天为腾讯广告提供50W核心廉价混合部署资源,帮助腾讯广告线下模型训练资源成本降低30%%,同时通过一系列优化手段,混合资源的稳定性等同于正常资源。1.引言近年来,随着大模型在NLP领域横扫各种大数据订单的巨大成功,大数据增广模型已经成为AI领域建模的标准范式。搜索、广告和推荐的建模也不例外。动辄上千亿级的参数,T型模型成为各大预估场景的标配,大模型能力也成为各大科技公司军备竞赛的焦点。在广告场景中,由于大模型使用了更多的模型参数和更多的训练数据,模型具有更强的记忆能力和泛化能力,为广告效果的提升打开了更大的空间。然而,大型模型在训练过程中所需的资源也呈指数级增长,存储和计算压力对机器学习平台来说是一个巨大的挑战。同时,平台所能支持的实验次数直接影响算法迭代效率。如何以更低的成本提供更多的实验资源,是平台发力的重点方向。腾讯太极机器学习平台不断探索降本增效方案,在线下广告训练场景采用混合部署资源,大幅降低资源成本。每天为腾讯广告提供50W核心廉价混合部署资源,帮助腾讯广告线下模型训练资源成本降低30%%,同时通过一系列优化手段,混合资源的稳定性等同于的正常资源。2.太极机器学习平台简介太极机器学习平台致力于让用户更专注于业务AI问题的解决和应用,一站式解决算法工程师的特征处理、模型等工程问题AI应用过程中的训练、模型服务。目前支持公司内广告、搜索、游戏、腾讯会议、腾讯云等重点业务。太极广告平台是太极广告系统设计的集模型训练和在线推理为一体的高性能机器学习平台。平台具备万亿参数模型的训练和推理能力。目前平台支持腾讯数十种模型训练和在线推理的广告召回、粗排序、精排序;同时,太极平台提供一站式的特征注册、样本补录、模型训练、模型评估和在线测试能力,大大提高了开发者的效率。训练平台:目前模型训练支持CPU和GPU两种训练模式。采用自研高效算子、混合精度训练、3D并行等技术,训练速度比业界开源系统提升一个数量级。推理框架:太极自研HCF(HeterogeneousComputingFramework)异构计算框架,通过硬件层、编译层、软件层的联合优化,提供极致的性能优化。三、成本优化的具体实施(一)总体方案介绍随着太极平台的不断发展,任务的数量和种类不断增加,对资源的需求也越来越大。为了降本增效,太极平台一方面提升了平台性能和训练速度;另一方面,我们也在寻找更便宜的资源来满足日益增长的资源需求。Peaks——腾讯内部云原生大数据平台,利用云原生技术升级公司整个大数据架构。为满足大数据业务不断增长的资源需求,风鸾引入了混合资源,在满足资源需求的同时大大降低了资源成本。风鸾针对不同场景下的混合办公资源提供一系列解决方案,将不稳定的混合办公资源变成对业务透明的稳定资源。峰山混合部门能力支持3种混合部门资源:线上闲置资源复用。由于线上资源波峰波谷、资源使用率高估、集群资源碎片化等原因,导致集群资源利用率不高,存在大量闲置资源。风鸾挖掘这部分临时闲置资源运行大数据任务,已经混迹于网络广告、存储、社交娱乐、游戏等场景。线下资源弹性借贷。大数据平台上的一些任务也有潮汐现象。当白天大数据集群资源利用率较低时,风鸾支持临时灵活借出部分资源,这些资源会在大数据集群高峰到来之前收回。该场景非常适合解决节假日、大促期间在线任务临时需要大量资源的问题。Peaks目前支持春节、618等重大节假日,复用计算资源。计算资源是通过低质量CVM的方式,挖掘云母机的闲置资源。所谓低质量CVM,是指在云母机上启动一个CPU优先级较低的CVM虚拟机,可以被其他虚拟机实时抢占。资源。Peaks基于底层算力提供的资源信息,在调度、过载保护、算力迁移等方面做了很多优化。目前,数以百万计的核心大数据任务在算力资源上稳定运行。同时,风鸾引入了云原生虚拟集群技术,屏蔽了底层混合资源来自不同城市、不同区域的去中心化特性。太极平台直连峰山租户群。租户集群对应多种底层混合资源,租户集群具有独立完整的集群视角。太极平台也可以无缝对接。(2)资源混合方案线上闲置资源风鸾自研Caelus全场景线下混合方案。通过线上线下混合作业,充分挖掘线上机器闲置资源,提高线上机器资源利用率。同时降低线下运营的资源成本。如下图所示,是Caelus的基本架构。各个组件和模块相互配合,从多方面保证混合部门的质量。首先,Caelus全方位保证在线运营的服务质量,这也是混合部门的重要前提之一。例如,通过快速干扰检测和处理机制,主动感知在线服务质量,及时处理,支持插件扩展方式,支持业务特定的干扰检测需求;通过全方位的资源隔离、灵活的资源管理策略等,保证在线业务的高优先级。其次,Caelus通过多种方式保证线下作业的SLO,例如:通过混合资源和线下作业画像,为作业匹配合适的资源,避免资源竞争;优化离线作业驱逐策略,优先驱逐,支持优雅退出。灵活可控。与大数据离线作业多为短作业(数分钟甚至数秒)不同,Taichi作业大多运行时间较长(数小时甚至数天)。长期资源预测和作业画像可以更好地指导调度,为不同运行时间、不同资源需求的作业寻找合适的资源,避免作业运行数小时甚至数天后被逐出,造成作业状态丢失,资源浪费和资源。时间。当需要逐出离线作业时,运行时热迁移会优先将作业实例从一台机器迁移到另一台机器,并保持内存状态和IP不变,对作业几乎没有影响,大大提高了工作SLO。为了更好的利用混合系的资源,Caelus还有其他的能力。详见Caelus全场景离线混合部门解决方案(https://zhuanlan.zhihu.com/p/384606554)。潮汐资源大数据任务一般白天任务比较少,晚上任务较多。风鸾将白天部分闲置的大数据资源转移到太极平台,晚上回收这些资源。我们称这种资源为潮汐资源。潮汐资源的特点是节点上的大数据任务几乎全部退出,但是节点上还保留着大数据存储服务HDFS,运行太极作业不会影响HDFS服务。太极平台使用潮汐资源时,需要与风鸾平台进行协商。风鸾平台在固定时间点根据历史数据提前筛选出一批节点。大数据任务优雅退出后,通知太极平台有新节点加入。租户集群提交更多任务。在借用时间到来之前,风鸾通知太极平台将回收部分节点,太极平台有序归还节点。如下图所示,潮汐资源的开采、管理和使用涉及到多个系统的分工合作:大数据资源中转系统:该系统会根据机器学习算法找到最适合的机器节点offline满足特定的资源需求,对正在运行的作业影响最小,然后禁止向这些节点调度新的作业,等待节点上正在运行的作业运行完毕,将对大数据作业的影响降到最低。Caelus混合系统:中转系统腾出的机器资源上虽然没有运行大数据作业,但上面仍然运行着HDFS服务,同时提供数据读写服务。为了保护HDFS服务,引入Caelus混合系统,将HDFS作为在线服务,通过Caelus的一系列在线服务保障手段(如:检测是否受HDFS关键指标影响)保证HDFS服务质量不会受到影响。通过虚拟集群使用潮汐资源:这些转移的机器资源将由风鸾统一管理和调度,以虚拟集群的形式提供给太极平台,提供K8S原生接口,屏蔽上层平台差异在底层资源一致性方面,保证应用程序以相同的方式使用资源。与应用层断点训练对接:晚上会回收Tidal资源跑大数据作??业。为了减少回收的影响,开放了峰值和应用层的断点训练功能,实现了不中断训练的资源切换,切换后不影响业务的持续运行。计算资源计算资源的特点是呈现给业务专属的CVM,对业务方更加友好。但在算力资源使用上的挑战在于,云母机级别的低质量CVM的CPU资源随时会被在线CVM压制,导致算力资源非常不稳定:算力机不稳定:算力机器会受到碎片化资源整合和机房算力的影响。不足等原因下线。计算资源优先级低:为保证正常CVM机器的服务质量不受影响,计算资源上的作业优先级最低,会无条件让位于优质资源上的作业,导致性能极不稳定.驱逐频率高:各种原因(计算资源不足、磁盘空间不足、磁盘卡死等)都会触发Pod的主动驱逐,增加Pod故障的概率。为解决算力资源不稳定的问题,通过山主控层扩展各种能力,对算力资源进行多方面优化,提高算力稳定性:①资源画像与预测:探索与预测收集各种机器性能指标,生成聚合指标,预测未来一段时间内低质量CVM的可用资源。调度程序使用此信息来调度pod和驱逐组件以驱逐pod以满足pod的资源需求。②调度优化:为保证太极运营的服务质量,根据运营需求和资源特点,在调度策略上进行多项优化,使运营性能提升2倍以上。同城调度:PST和训练作业被调度到同城的同一个机房??,最小化作业实例之间的网络延迟,同城的网络带宽成本也更低,起到降低成本的作用.单机调度优化:结合资源预测结果和CPUstealtime等指标,为作业选择性能较好的CPU绑定核心,更好地提升作业性能。分级调度:自动标记和分类所有托管资源,将JobManager等容灾要求高的作业自动调度到相对稳定的资源上。调整调度参数:根据资源配置文件和预测数据,调度程序选择性能更好、稳定性更高的节点来执行作业。另外,为了解决pace不一致导致的梯队过期问题,将同一个job的instance调度到性能相近的机器上。③运行时服务质量保障主动驱逐阶段引入运行时热迁移,让业务基本无感知:为了应对资源不稳定以及pod被驱逐、应用被kill的问题,实现运行时热迁移和提供多种热迁移策略,满足不同场景的需求。根据目前网上的资料,当使用迁移优先级策略时,对于内存较大的容器,热迁移的中断时间在10秒以上。我们还实现了独立于内存大小的恒定中断时间(恢复优先策略)。目前每天有超过20000个pod主动迁移成功,支持跨集群热迁移,大大降低了驱逐的影响。优化驱逐策略,尽量减少驱逐的影响:每台机器驱逐时,优先驱逐后启动的Pod,避免影响已经启动的任务;每个任务一次只驱逐一个节点,避免了单个任务的上下游一起被驱逐导致任务级重启;当一个pod被驱逐时,它会配合上层的Flink框架,主动通知Flink单点快速恢复。④自我反馈优化:通过资源画像定期更换性能较差的机器,并与底层平台对接,实现CVM的平滑分离,让风鸾有机会以不影响的方式逐一迁移应用实例业务,减少对实例的影响。⑤提升Flink层的容灾能力,支持单点重启和分层调度TM(TaskManager)单点重启能力,避免Task失败导致整个DAG失效,能更好的适应计算的抢占式特性力量;分层调度避免了gangscheduling导致job等待过多,可以避免TMPod应用过多造成的浪费。(3)应用层优化解决业务容错离线训练任务必须使用廉价资源。一个大前提是不能影响资源上原有任务的正常运行。因此,混合部门资源存在以下关键挑战:混合部门资源大部分是临时资源。经常离线;混合资源会无条件让位于优质资源,导致机器性能极不稳定;混合资源的自动驱逐机制也大大增加了节点和Pod的故障概率。为了保证任务能够在混合资源上稳定运行,平台采用了三级容错策略。具体解决方案如下:热迁移技术:在TaskManager即将被驱逐之前,提前感知并将对应的TaskManager迁移到另一个pod;同时,利用内存压缩、流式并发、跨集群热迁移等能力,持续优化热迁移成功率。任务管理器重启:当任务中的某个任务管理器因异常或退出而无法运行时,整个任务不会失败直接退出。而是先保存任务管理器的状态,然后重启任务管理器,从而降低整体任务性能。失败的概率。TaskFullRecovery:当任务由于Flink状态异常而处于不可恢复状态时,会触发JobManager的重启。为了保证JobManager的稳定性,平台将JobManager部署在稳定性较好的独立资源上,以保证任务状态为OK。断点训练:如果之前的容错策略失败,平台会根据历史上的某个ckpt重启任务。通过业务层的容错,运行在混合资源上的任务的稳定性从开始时的不足90%提高到后期的99.5%,与运行在普通独占资源上的任务的稳定性基本持平。任务潮汐调度要求针对潮汐资源的离线训练任务只能在白天使用,晚上需要提供给线上业务使用,所以太极平台需要在白天根据资源的可用性自动开启训练任务资源;对夜间任务进行冷备,同时停止相应的训练任务。同时通过任务管理队列管理各个任务调度的优先级。对于晚上新开始的任务,会自动进入排队状态,第二天早上开始新的任务。核心挑战:潮汐现象:白天可以为离线任务提供资源,晚上需要回收。资源动态变化:白天资源也是不稳定的,资源会随时变化。一般早上资源比较少,然后逐渐增加,晚上资源达到高峰。解决方案:资源感知调度策略:在早上逐渐增加资源的过程中,潮汐调度服务需要感知资源变化,同时跟进资源情况启动待续训练的任务。模型自动备份能力:在夜间资源回收前,需要对当前平台上运行的所有任务进行逐级备份。这对平台的存储和带宽造成了很大的压力,因为平台上有数百个任务,每个任务的冷备份大小从几百GB到几TB不等。如果同时做冷备份,短时间内需要传输和存储上百TB的数据,对存储和网络都是巨大的挑战;所以我们需要有一套合理的调度策略来逐步存储模型。智能资源调度能力:与传统训练相比,潮汐调度有夜间资源回收时模型备份和每天早上任务启动的额外开销。为了减少这种额外的开销,我们需要评估哪些任务可以在同一天完成,哪些任务需要运行多天。对于当天可以完成的任务,我们优先分配更多的资源给他们,保证任务当天完成。通过这些优化,可以保证任务在潮汐资源上稳定运行,对业务层基本无感知。同时任务的运行速度不会受到太大影响,任务启停调度带来的额外开销控制在10%以内。4、线上效果及未来展望太极线下混合分布优化方案已落地腾讯广告场景。每天为腾讯广告线下模型研究和训练提供30W核心全天候混合部署资源和20W核心潮汐资源,支持广告召回、粗排序、精排序。多场景模型训练。在资源成本方面,相同计算量的任务,混合部署资源成本是普通资源的70%。优化后系统稳定性和物理集群任务成功率基本一致。未来,一方面,我们将继续加大混合计算资源的使用,尤其是混合计算资源的应用;另一方面,公司线上业务是基于GPU的,所以在混合资源的应用上,除了传统的CPU资源之外,在离线训练时也会尝试使用线上的GPU资源。今天的分享就到这里,谢谢大家。
