01#
背景
随着广告业务的发展,流量、订单、模型复杂度快速增长,算力消耗也愈加严重。同时我们也注意到,流量质量参差不齐,投入更多的计算资源呈现了边际效益递减的效应。如何平衡流量收益和计算资源成本成为了广告业务发展无法规避的挑战。爱奇艺广告引擎团队从22年开始探索并实践智能算力在广告场景中的应用,旨在实现一定算力约束下业务收益的最大化。目前我们在链路重要环节实现了包括流量价值预估、弹性淘汰、动态算力分配等关键技术,在同等的算力资源下,效果广告整体消耗有较大增长。
如何量化流量价值
广告请求一般携带广告位、用户相关特征信息,在投放时,会与投放侧的广告创意等特征进行点击率、转化率预估,计算当前流量最优匹配的广告。按照上述流程,流量价值需要走完整个召回、排序链路才能准确评估。但请求一旦经过全链路,意味着算力也已被消耗。如何在算力实际消耗前,或者说以较小代价的算力消耗评估出流量的公允价值成为了价值判断的一个难点。
如何量化算力
涉及计算密集的环节都会成为影响算力消耗的因子,比如召回通道的数量、竞价队列的长度、适用模型的选择等,进一步表现在cpu利用、内存占用、请求耗时等基础指标上。如何将多个指标量化为算力,采用什么样的计算方法,如何设置权重,需不需要和流量价值保持一样的量纲,这些都是需要考虑的问题。
如何寻找价值和算力分配的最优解
在量化完价值和算力以后,如何为不同价值的流量分配不同的算力,使满足系统算力约束的情况下,承载流量价值的总和最大?
稳定性保障
不同来源的流量由于其自身属性或者推送策略等原因,波动变得愈加严重。我们希望智能算力分配系统能足够快的响应流量的抖动以及价值分布的变化,避免算力分配调整不及时导致无法达到收益最大化的效果,甚至危害到服务安全。所以除了保证系统的响应速度,还应建设一些合适的降级策略,保障系统的稳定性。
02#
方案
我们对上述问题场景进行建模分析,设Vi为不同请求的价值,V为当前时刻流量价值总和,Ci为不同请求分配的算力,C为当前时刻的总算力约束,f即为我们要求解的流量价值和算力分配间的关系。
假设