一 智能算力模型
1.1 目标是什么
明确算力决策要解决的问题,定义算力决策的目标是一切讨论的基础。直观上,大家对算力决策的期待有两种表达形式:
- 追求收益:在算力资源的约束下,使收益最大化
- 节省成本:在收益持平的约束下,降低算力成本
这两种表达形式虽然在大方向上一定是正相关,但是将其应用在在衡量工作价值上时,会有一些区别。
- 衡量的难度:自然状态下,是因为有了算力资源的存在,所以流量才能产生收益,“算力”是“收益”的因,“收益”是“算力”的果。“算力”作为因变量,方便人为控制;反之,“收益”作为果变量,不便于控制。
- 工作的投入产出比:同样投入X人日进行算力决策建设,回报的是1000w/天的收入增长,还是20w/月的成本节约,这直接决定了立项的合理与否。广告业务系统的核心产出是“收益”,广告的同学最终是在为收益服务。
因此,“在算力资源的约束下,使收益最大化”是更合理的目标。
如何长期跟踪效果
“收益持平的前提下,成本降低x%”、“成本不变的前提下,收益增长x%”这种表达形式仅仅描述了在“当前算成本-收益点位下”的工作成果。成本与收益之间的关系往往是高度非线性的。同样的策略,在成本约束为100w core时收益增长1%,可能在成本约束为1000w core时仅增涨0.1%;在收益10亿/天时节省成本1000 w/天,可能在在收益8亿/天时节省成本500 w/天。如果约束本身也是波动的,我们很难长期跟踪算力决策系统的效果。
建议在长期跟踪算力决策价值时,首先将算力约束的值长期确定下来,并在此基础上定期进行反转实验,观察收益变化。
1.2 有哪些约束
相对于理论分析,真实的广告系统有一些额外的考虑因素。
单Req时延约束
除了总算力需要满足约束以外,单个请求的算力开销也有限制,否则会导致超时。
若不考虑并行,单Req的时延约束 其实就是 单Req算力约束 的另一种体现形式。
模块资源配比约束
由于各个模块的配比未必达到最优,可能在调控时出现短板效应。
不过长期来看,模块间资源配比应该达到动态最优,因此不应该是一个强约束。
总资源约束
机器资源总量是显而易见的约束。
1.3 如何实现调控
调控分为两层:一是单请求的微观调控,实现单请求目标最大化;二是系统层面的宏观调控。实现系统的目标最大化。
微观调控
让每个请求在规定时间内完成计算,并通过下面的调控手段进行干预:
- 当系统处于算力不足态时,系统的算力约束为常数,收入最大化一定是ROI最大化。此时调控每个请求,使之达到约束下的ROI最大化。
- 当系统处于算力充足的状态时,则在时延约束内调控每个请求,使之达到约束下的收益最大化。
如何建立微观调控策略
策略分为多个子问题。
“调控策略->算力开销”模型
基于当下已有的调控点,测算各个调控Action带来的算力开销。
“调控策略->收入”模型
基于当下已有的调控点,测算各个调控Action对收入的影响。
求解微观调控策略ROI极值
max 调控策略 ∑ i Q ( 调控策略 ) / C ( 调控策略 ) s.t. 单 R e q 时延约束 系统约束 \begin{align} \begin{split} \max_{调控策略} & \sum_{i} Q(调控策略)/C(调控策略)\\ \text{s.t.} & 单Req时延约束 \\ & 系统约束 \end{split} \end{align} 调控策略maxs.t.i∑Q(调控策略)/C(调控策略)单Req时延约束系统约束
宏观调控
- 当系统处于算力不足态时,系统的算力约束为常数,ROI最大化一定是收益最大化。基本策略是:
a. 系统ROI最大化:若某个Req的预估ROI低于当前系统的平均ROI,则丢弃这一请求
b. 随着平均ROI提升,系统会丢掉更多的请求,最终进入“算力充足态” - 当系统处于算力充足的状态时,则在时延约束内最大化收益
a. 系统收益最大化:丢弃收益低于算力成本的请求
b. 随着更多请求进入,系统进入“算力不足态” - 通过一定方式,使在两种目标策略中平滑切换
上述宏观调控模型忽略了各模块间资源可能不匹配的现状。虽然长期不匹配问题不会存在,但是短期仍需考虑其实际影响。如考虑不匹配因素,则“算力充足/不足态”是一个局部概念,无法简单的做判断。
为了解决这个问题,可能需要对系统状态进行embedding,在求解单Req ROI最大化时,需要考虑系统约束。
系统约束可能包含各模块SLO、时延、集群CPU/网卡/内存负载等。
算力工程
建立算力开销统计能力
建立CPU、GPU、带宽、内存开销度量体系。
建立决策数据采样体系
请求/系统粒度采样决策内容、算力开销、系统状态、广告收入等内容。
建立在线决策工程体系
基于当前策略需要设计完善的在线决策工程体系。
二 业界进展
2.1 技术演进过程
- 单调控点、单维度(队列长度)建模,二分法求解
阿里妈妈DCAF:https://arxiv.org/pdf/2006.09684.pdf - 多维度调控(队列 + 模型),二分法求解
美团全链路调控:https://mp.weixin.qq.com/s/iUlKGEN1sFyyVvOzBO34wA - 多调控点建模
a. 线性规划求解
阿里CRAS:https://arxiv.org/pdf/2103.02259.pdf:预排、粗排和精排队列联合优化的联合最优算力分配
b. 进化算法求解
美团CEM:https://mp.weixin.qq.com/s/yEdrP4xmzOQs6jfXoCBJzw:各阶段强约束(超时时间)
c. 强化学习求解
美团RL:https://dl.acm.org/doi/pdf/10.1145/3543507.3583313 - 快手最新论文(未阅读)
https://dl.acm.org/doi/pdf/10.1145/3539618.3591696
2.2 阿里妈妈建设思路梗概
- 工程体系建设:价值预估、算力预估、算力决策三个子问题
- 流量过剩、流量不足是两个策略,根据潮汐切换
- 离线求解
- 主场景未做到流量个性化,只做了场景个性化;小场景做了流量丢弃、多调控点调控(独立DCAF)
- 流量个性化与算法目标冲突