• 智能算力方向分析


    一 智能算力模型

    1.1 目标是什么

    明确算力决策要解决的问题,定义算力决策的目标是一切讨论的基础。直观上,大家对算力决策的期待有两种表达形式:

    • 追求收益:在算力资源的约束下,使收益最大化
    • 节省成本:在收益持平的约束下,降低算力成本
      这两种表达形式虽然在大方向上一定是正相关,但是将其应用在在衡量工作价值上时,会有一些区别。
    1. 衡量的难度:自然状态下,是因为有了算力资源的存在,所以流量才能产生收益,“算力”是“收益”的因,“收益”是“算力”的果。“算力”作为因变量,方便人为控制;反之,“收益”作为果变量,不便于控制。
    2. 工作的投入产出比:同样投入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 如何实现调控

    调控分为两层:一是单请求的微观调控,实现单请求目标最大化;二是系统层面的宏观调控。实现系统的目标最大化。

    微观调控

    让每个请求在规定时间内完成计算,并通过下面的调控手段进行干预:

    1. 当系统处于算力不足态时,系统的算力约束为常数,收入最大化一定是ROI最大化。此时调控每个请求,使之达到约束下的ROI最大化。
    2. 当系统处于算力充足的状态时,则在时延约束内调控每个请求,使之达到约束下的收益最大化。
    如何建立微观调控策略

    策略分为多个子问题。

    “调控策略->算力开销”模型

    基于当下已有的调控点,测算各个调控Action带来的算力开销。

    “调控策略->收入”模型

    基于当下已有的调控点,测算各个调控Action对收入的影响。

    求解微观调控策略ROI极值

    max ⁡ 调控策略 ∑ i Q ( 调控策略 ) / C ( 调控策略 ) s.t. 单 R e q 时延约束 系统约束

    maxiQ()/C()s.t.Req" role="presentation" style="position: relative;">maxiQ()/C()s.t.Req
    调控策略maxs.t.iQ(调控策略)/C(调控策略)Req时延约束系统约束

    宏观调控

    1. 当系统处于算力不足态时,系统的算力约束为常数,ROI最大化一定是收益最大化。基本策略是:
      a. 系统ROI最大化:若某个Req的预估ROI低于当前系统的平均ROI,则丢弃这一请求
      b. 随着平均ROI提升,系统会丢掉更多的请求,最终进入“算力充足态”
    2. 当系统处于算力充足的状态时,则在时延约束内最大化收益
      a. 系统收益最大化:丢弃收益低于算力成本的请求
      b. 随着更多请求进入,系统进入“算力不足态”
    3. 通过一定方式,使在两种目标策略中平滑切换

    上述宏观调控模型忽略了各模块间资源可能不匹配的现状。虽然长期不匹配问题不会存在,但是短期仍需考虑其实际影响。如考虑不匹配因素,则“算力充足/不足态”是一个局部概念,无法简单的做判断。
    为了解决这个问题,可能需要对系统状态进行embedding,在求解单Req ROI最大化时,需要考虑系统约束。
    系统约束可能包含各模块SLO、时延、集群CPU/网卡/内存负载等。

    算力工程

    建立算力开销统计能力

    建立CPU、GPU、带宽、内存开销度量体系。

    建立决策数据采样体系

    请求/系统粒度采样决策内容、算力开销、系统状态、广告收入等内容。

    建立在线决策工程体系

    基于当前策略需要设计完善的在线决策工程体系。

    二 业界进展

    2.1 技术演进过程

    1. 单调控点、单维度(队列长度)建模,二分法求解
      阿里妈妈DCAF:https://arxiv.org/pdf/2006.09684.pdf
    2. 多维度调控(队列 + 模型),二分法求解
      美团全链路调控:https://mp.weixin.qq.com/s/iUlKGEN1sFyyVvOzBO34wA
    3. 多调控点建模
      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
    4. 快手最新论文(未阅读)
      https://dl.acm.org/doi/pdf/10.1145/3539618.3591696

    2.2 阿里妈妈建设思路梗概

    • 工程体系建设:价值预估、算力预估、算力决策三个子问题
    • 流量过剩、流量不足是两个策略,根据潮汐切换
    • 离线求解
    • 主场景未做到流量个性化,只做了场景个性化;小场景做了流量丢弃、多调控点调控(独立DCAF)
    • 流量个性化与算法目标冲突
  • 相关阅读:
    mysql redis的区别
    ECMAScript 2022 正式发布,有你了解过的吗?
    PLC串口通讯和通讯接口知识汇总
    RBTree的删除
    MySQL日志管理、备份与恢复
    想要保护服务器的安全,使用哪个软件比较好?
    RBF、GMM、FUZZY
    多国语言客服系统,打破语言障碍
    2022腾讯数字生态大会:腾讯云HiFlow,零代码自动化工作流助手
    【Hadoop】- MapReduce & YARN 初体验[9]
  • 原文地址:https://blog.csdn.net/mktyou1/article/details/133715671