![fa3606b87d6dca1c2ebf37a8ae8020ba.png](https://i-blog.csdnimg.cn/blog_migrate/cedc3872b47878b562ee454440a5c188.jpeg)
0. 序曲
纵观这两年业界技术的演化趋势,几乎主流的团队都已经完成了深度学习为代表的技术升级,进入到算力吃紧、模型红利放缓的新瓶颈期。去年在《深度学习推荐系统》序言 一文中,我对工业级深度学习技术迈入新的2.0进阶阶段的特征做过一些探讨:
可以预见,在工业级深度学习2.0阶段,技术演进的模式将再升级:从算法视角的实践和问题驱动,进一步拓展到更宏大的技术体系整体思考:领域问题特性、数据、算力、算法、架构及工程系统等将被纳入统一的思考框架中,成为技术创新的发力点
从2018年开始我们团队就开始做相应的布局。除了在算法层面持续开辟纵深战场外,对于"算力"这件事我们做了大量细致的工作,这几年支撑了我们的核心广告模型一路从DIN(2017)、DIEN(2018)、MIMN(2019),升级到今年的SIM(2020)、CAN(2020)。值得一提的是,在业界普遍陷入滞涨的这个阶段,今年我们一年内完成了SIM和CAN两个大版本主模型的研发和全量上线,同时叠加在主模型之上的多场景、多目标建模也都有所突破,核心场景取得了CTR/RPM累积提升超过20%的巨大收益,这是继2017年all in深度学习之后我们达到的第二个技术创新小高峰。
印象中直到今天,还有不少同学对我们宣称DIEN这样的复杂模型能够在广告系统全流量服务报以怀疑的态度。的确,在这种大规模的广告系统中支持GRU-based模型的在线实时inference,即使是18年模型生产化之初我们的工程同学也是有担忧的。然而实际情况是,相比于今年的SIM及CAN模型而言,DIEN的inference算力需求不过是开胃小菜了。另一方面,不仅仅是ranking模型,我们的广告召回模型、粗排模型,甚至后链路的机制策略、rerank模型等,都面临着相似的恐怖算力激增挑战。如何解决这个问题呢?18年的时候我做过一个断言:
占领算力效能的制高点,将成为头部团队在工业级深度学习2.0阶段算法继续创新突破的胜负手
幸运的是,经过近3年的辛苦跋涉,我们终于在转角处闻到了蔷薇的花香。近期我们陆续开始把一些成型的工作总结和分享出来,希望能够给大家带来一些启发,如:model design和model inference相结合的MIMN; 算法与系统co-design思路下重新设计的粗排系统COLD;以及被今年DLP-KDD 2020收录且评选为best paper runner-up的"个性化算力"分配算法DCAF。
如果说以上工作更多focus在局部模块进行了algorithm和system的co-design,那本文则是我们这一思想的更深度推进:进一步发展"个性化算力"技术,将算力融合到广告引擎的设计中,形成更全面立体的算力解决方案,同时也给古典的引擎系统赋予了全新的动力。"算力经济时代" 看起来有点标题党,但我认为这是对算力在这个时期技术版图中重要性的最好注解了。
以下是本文的具体内容,来自阿里展示广告技术团队(致谢相关兄弟团队的大力支持)。友情提醒,它解决的不是传统的算法或者引擎领域问题,因此不一定适合所有读者。哪怕是广告、推荐领域的从业者,如果没有接触或者思考过这类命题,亦或是对引擎系统的细节了解不多,读起来也会有点艰涩。
1. 导读
时间的焦距拉到5年前,谁也不会预料到以深度学习为代表的AI变革,对业界技术的重塑力度会如此之大、影响如此之深。这背后的一个重要变量就是"算力"。随着深度学习技术上的大量创新,广告、推荐等在线引擎系统的架构和算法复杂度迅速飙升,对算力的需求出现了爆发式的增长。以阿里展示广告系统为例,相比于5年前的精排模型,其在线算力的需求暴涨了近2个数量级[2,3,4]。如此惊人的算力需求增速,仅仅靠GPU/NPU等硬件的演化已然不足,更不用说硬件本身已经在逼近摩尔定律极限。
面临着算力供给触及瓶颈的巨大危机,我们看到不论是工业界还是学术界都在积极寻找解法。阿里展示广告团队从18年起就开始布局算力效能技术的研发,目前已经迈入了第3代算力效能体系的阶段:
1. 算力效能1.0阶段 (2018):聚焦单点工程优化及模型瘦身优化等技术
2. 算力效能2.0阶段 (2019):将Model Design和Engineering Optimization结合,通过算法-工程Co-design方法论的深度实践,带来了显著红利
3. 算力效能3.0阶段 (2020):从引擎单模块进一步拓展到系统全链路,用"个性化"算力的思想去重新审视和改造了整个广告引擎系统,为古典在线引擎注入了新的活力,让它变得更加"柔性":充分提升给定算力的性价比,让其在面临任意复杂、动态的业务需求和流量环境时能够自适应地做到 算力最优使用。
结合了算力效能视角的展示广告引擎,我们命名为Transformers(致敬变形金刚),本文将分享我们的实践经验和思考。值得一提的是,算力效能感知的柔性广告引擎(Computing Power-aware Transformers Engine)今年已经真正落地于阿里展示广告业务:
1. 业务效果上:仅广告精排的个性化算力优化就能够带来RPM持平下算力节省25%、同等算力下RPM提升2%的收益[1]; 2. 系统能力上:具备柔性能力的广告在线系统平稳地应对了双十一的各种流量波动和日常的各类系统异常,大幅提升了系统稳定性和运维效率。
2. 开胃菜:先来看看算力分配这件事
我们可以从微观和宏观的层面来理解在线系统的算力分配问题。
1. 微观上:在某一时刻,不同流量的价值不同,算力消耗也不同——也就是算力性价比不同。我们可以根据算力性价比,为每个流量分配更合理的算力(计算资源/Latency约束等),从而在系统总算力的约束下,实现业务收益的全局最优。
2. 宏观上:由于流量大小和分布会随时间不断变化,那么在总算力约束下,算力分配策略也需要动态调整,来保持业务收益的动态最优。这种微观和宏观相结合的视角,能够有效地帮助我们拆解问题。 <