近年来,大数据加大模型成为了 AI 领域建模的标准范式。在广告场景,大模型由于使用了更多的模型参数,利用更多的训练数据,模型具备了更强的记忆能力和泛化能力,为广告效果向上提升打开了更大的空间。但是大模型在训练过程中所需要的资源也是成倍的增长,存储以及计算上的压力对机器学习平台都是巨大的挑战。
腾讯太极机器学习平台持续探索降本增效方案,在广告离线训练场景利用混合部署资源大大降低了资源成本,每天为腾讯广告提供 50W 核心廉价混合部署资源,帮助腾讯广告离线模型训练资源成本降低 30%,同时通过一系列优化手段使得混部资源稳定性和正常资源持平。
近年来, 随着大模型在 NLP 领域横扫各种大数据磅单取得巨大成功之后,大数据加大模型成为了 AI 领域建模的标准范式。搜索、广告、推荐的建模也不例外,动辄千亿参数,上 T 大小的模型成为各大预估场景的标配,大模型能力也已经成为各大科技公司军备竞赛的焦点。
在广告场景,大模型由于使用了更多的模型参数,利用更多的训练数据,模型具备了更强的记忆能力和泛化能力,为广告效果向上提升打开了更大的空间。但是大模型在训练过程中所需要的资源也是成倍的增长,存储以及计算上的压力对机器学习平台都是巨大的挑战。同时平台能够支撑的试验数量直接影响算法迭代效率,如何用更小的成本,提供更多的试验资源,是平台努力的重点方向。
腾讯太极机器学习平台持续探索降本增效方案,在广告离线训练场景利用混合部署资源大大降低了资源成本,每天为腾讯广告提供 50W 核心廉价混合部署资源,帮助腾讯广告离线模型训练资源成本降低 30%,同时通过一系列优化手段使得混部资源稳定性和正常资源持平。
太极机器学习平台,致力于让用户更加聚焦业务AI问题解决和应用,一站式的解决算法工程师在 AI 应用过程中特征处理,模型训练,模型服务等工程问题。目前支持公司内广告,搜索,游戏,腾讯会议,腾讯云等重点业务。
太极广告平台是太极为广告系统设计的集模型训练和在线推理的高性能机器学习平台,平台具备万亿参数模型的训练和推理能力。目前该平台支持腾讯广告召回,粗排,精排数十个模型训练和在线推理;同时太极平台提供一站式特征注册,样本补录,模型训练,模型评估以及上线试验的能力,极大提升了开发者效率。
随着太极平台的不断发展,任务数和任务类型日益增多,资源需求也随之增多。为了降本增效,太极平台一方面提升平台性能,提升训练速度;另一方面,我们也寻找更加廉价的资源,以满足不断增长的资源需求。
峰峦——腾讯公司内部云原生大数据平台,利用云原生技术,对公司整个大数据架构进行升级。为满足大数据业务持续增长的资源需求,峰峦引入混部资源,在满足资源需求的同时,又可极大降低资源成本。峰峦针对不同场景下的混部资源,提供了一系列的解决方案,把不稳定的混部资源变成对业务透明的稳定资源。峰峦混部能力支持3类混部资源:
同时,峰峦引入云原生虚拟集群技术,屏蔽底层混部资源来自不同的城市和地域导致的分散性特点。太极平台直接对接峰峦租户集群,该租户集群对应底层多种混部资源,而且租户集群拥有独立和完整的集群视角,太极平台也可无缝对接。
峰峦自研了 Caelus 全场景在离线混部方案,通过将在线作业和离线作业混部的方式,充分挖掘在线机器的空闲资源,提升在线机器资源利用率,同时降低离线作业的资源成本。
如下图所示,是 Caelus 的基本架构,各个组件和模块相互配合,从多方面保证了混部的质量。
首先,Caelus 全方位保证了在线作业的服务质量,这也是混部的重要前提之一,比如:通过快速的干扰检测与处理机制,主动感知在线服务质量,及时进行处理,并且支持插件化的扩展方式支持业务的特定干扰检测需求;通过全维度的资源隔离、灵活的资源管理策略等,保证在线服务的高优先级。
其次,Caelus 从多方面保证了离线作业的 SLO,比如:通过混部资源与离线作业画像,为作业匹配合适的资源,避免资源竞争;优化离线作业驱逐策略,优先排序驱逐,支持优雅退出,策略灵活可控。与大数据离线作业大多是短作业(分钟级甚至秒级)的特点不同的是,太极作业的运行时间大多较长(小时级甚至天级)。通过长周期的资源预测与作业画像更好地指导调度,为不同运行时长、不同资源需求的作业找到合适的资源,避免作业运行几小时甚至几天后被驱逐,导致作业状态丢失,浪费资源与时间。当出现需要驱逐离线作业的情况时,会优先通过运行时热迁移,将作业实例从一个机器迁移到另一个机器,并且保持内存状态和IP等不变,作业几乎无影响,极大地提升了作业的 SLO。为了更好地把混部资源利用好,Caelus 还具备其他更多的能力,详见 Caelus 全场景在离线混部方案(https://www.php.cn/link/caaeb10544b465034f389991efc90877)。
大数据任务一般是白天任务量相对少,晚上任务量多,峰峦把白天部分空闲的大数据资源出让给太极平台,夜间再回收这部分资源,我们把这种资源称为潮汐资源。潮汐资源的特点是节点上的大数据任务几乎是完全退出的,但节点上还保留着大数据的存储服务 HDFS,运行太极作业时不能影响到 HDFS 服务。太极平台使用潮汐资源时需要和峰峦平台协商一致,峰峦平台在固定时间点提前根据历史数据筛选一批节点,待大数据任务优雅退出后,通知太极平台有新的节点加入,太极平台开始在峰峦租户集群提交更多的任务。借用时间到达前,峰峦通知太极平台部分节点要回收,太极平台有序归还节点。
如下图所示,潮汐资源的挖掘、管理和使用涉及到多个系统的分工配合:
算力资源的特点是给业务呈现的是一个独占的 CVM,对业务方使用来说比较友好。然而,使用算力资源的挑战在于云母机层面低优 CVM 的 CPU 资源会随时被在线 CVM 压制,导致算力资源非常不稳定:
为了解决算力资源的不稳定性问题,通过峰峦主控层扩展各项能力,从多方面对算力资源优化,提升算力稳定性:
① 资源画像与预测:探索和搜集各种机器性能指标,生成聚合指标,预测低优 CVM 未来一段时间的可用资源情况,这些信息用于调度器调度 pod 和驱逐组件驱逐 pod,满足 pod 的资源要求。
② 调度优化:为保证太极作业的服务质量,针对作业的需求和资源的特点,在调度策略上有较多的优化,将作业性能提升了 2 倍以上。
③ 运行时服务质量保证
④ 自反馈优化:通过资源画像,周期性的替换掉性能差的机器,并且与底层平台打通,实现对 CVM 的平滑抽离,让峰峦有机会以对业务无影响的方式逐个迁移应用实例,降低对实例的影响。
⑤ 提升 Flink 层的容灾能力,支持单点重启和层级式调度
TM(Task Manager)单点重启能力避免 Task 失败导致整个 DAG 失败,可以更好适配算力抢占式特性;分层调度避免 gang scheduling 造成过长的作业等待,并且可以避免 TM Pod 过度申请的浪费。
离线训练任务要使用廉价资源一个大前提就是不能影响资源上原有任务的正常运行,所以混部资源有以下几个关键挑战:
为了保证在混部资源上任务可以稳定运行,平台使用三级容错策略,具体解决方案如下:
通过业务层的容错,运行在混部资源上的任务稳定性从最初的不到 90% 提升到最终的 99.5%,基本和普通独占资源上任务稳定性持平。
针对潮汐资源要求离线训练任务只能白天使用,晚上需要提供给在线业务使用,所以太极平台需要在白天时根据资源到位情况,自动启动训练任务;在晚上对任务做冷备,同时停止对应的训练任务。同时通过任务管理队列来管理每个任务调度的优先级,对于晚上新启动的任务会自动进入排队状态,等第二天早上再启动新的任务。
通过这些优化能够保证任务能稳定在潮汐资源上运行,对于业务层基本无感知。同时任务的运行速度不会受太大影响,由于任务启停调度带来的额外开销控制在 10% 以内。
太极在离线混布优化方案在腾讯广告场景落地,每天为腾讯广告离线模型调研训练提供30W 核全天候的混合部署资源,20W 核潮汐资源,支持广告召回,粗排,精排多场景模型训练。在资源成本上,相同计算量任务上,混合部署资源成本是普通资源的 70%。经过优化系统稳定性和物理集群任务成功率基本持平。
后续一方面我们会继续加大混合算力资源的使用,尤其会加大混合算力资源的应用;另一方面,公司在线业务在 GPU 化,所以在混合资源应用上,除了传统的 CPU 资源之外,也会尝试对在线 GPU 资源在离线训练时使用。
今天的分享就到这里,谢谢大家。
以上是腾讯广告模型基于"太极"的训练成本优化实践的详细内容。更多信息请关注PHP中文网其他相关文章!