作为一款日活2亿、日均1000万的短视频APP,同时强调社区包容性,Aauto Quicker推荐系统需要解决的技术挑战是世界级的。近日,Aauto Quicker在国内率先重新设计了基于持久内存异构存储结构的推荐系统,并率先采用英特尔(R) Aotengtm数据中心级持久内存。在Aauto推荐的高吞吐量、大数据量请求场景下,使用持久内存可以降低存储成本,减少故障恢复时间,提高系统可靠性。故障恢复时间从小时级降低到分钟级,这也为大规模深度机器学习系统在提升千亿数据处理能力方面的提升开辟了新的探索方向。
业界超大规模实时在线短视频推荐系统
如何在高峰时期每秒承载数十万个并发调用,并通过数十亿短视频库中的数十亿参数深度模型向用户展示内容?Aauto faster的推荐团队设计了一个基于异构设备的高级推荐系统,其中遇到的问题的复杂性极具挑战性。
目前,Aauto faster建议系统采用计算与存储分离的架构模式(如下图所示)。推荐系统中的存储服务主要用于实时存储和更新数亿用户画像、数十亿短视频特征和数十亿排名模型参数。计算服务主要进行视频召回检索、推荐模型估计和推荐策略计算。
aauto faster建议系统采用计算和存储分离的架构。
2018年至2019年上半年,Aauto的推荐架构团队专注于通过使用异构混合计算来提高推荐系统中模型预测和召回检索等计算密集型服务的性能。通过异构计算的转型,性能得到了数倍的提升,这促使Aauto faster推荐的架构团队走向异构系统设计中更难的存储问题。
一直以来,Aauto Quicker中的推荐团队都致力于推荐系统的重构,力求在用户数量不断增加的冲击下,在让推荐系统高可用的前提下,实时、高效、准确地向用户推荐高质量的内容。
新机遇:软硬结合极致优化,探索异构存储
持久内存是介于DRAM和SSD之间的一种新的存储级别,不仅可以提供接近DRAM的延迟,还可以提供持久且更大的存储空间,为推荐系统中不同场景的可行性分析和架构设计提供思路。
与传统的内存和硬盘两级存储相比,随着新型存储设备的引入,现代服务器可以利用的存储级别越来越多,使用多级存储的软件系统设计变得越来越复杂。每个存储设备都有不同的性能特征和容量限制,设备速度越快,单位容量成本越高。比如采用内存插槽的英特尔(R)傲腾TM数据中心级持久内存,根据读写粒度的不同,虽然读写带宽比传统内存小,但写入的数据是持久的,容量比传统内存大很多。如何在大规模推荐场景下,结合不同的存储级别,设计出性价比最高的存储系统,成为一个巨大的机遇和挑战。
下一代服务器的存储层次结构。
Aauto Quicker加入英特尔,国内业界率先使用英特尔(R) Aotengtm数据中心级持久内存将异构数据存储到推荐系统。
基于多级异构存储设备,Aauto推荐团队和系统运营部硬件选型R&D团队针对推荐系统中的不同场景进行了可行性分析和架构设计调研。根据持久内存的特点,重新设计了分布式索引和参数服务器中的KV存储。
【基于持久内存的KV系统设计示意图】,注:AEP指英特尔(r) aotengtm数据中心级持久内存。
在该设计中,MemPool组件被添加到KV存储中,以决定系统是否访问DR
对于数据读取场景,采用NUMA节点绑定,使得持久内存访问不跨NUMA节点,从而获得更好的读写性能。
使用ZeroCopy技术访问内存和持久内存;
无锁技术用于减少对关键区域持久内存的访问,以提高性能。
经过上述技术改进后,我们将用真实的在线请求数据模拟基于持久内存的指标体系的压力测试。测试结果如下:
基于持久记忆指标体系的压力测试结果。
基于异构存储的索引系统几乎达到。
到纯DRAM的索引系统相同的性能指标,但总体拥有成本降低30%。同时异构存储的索引系统能够提供分钟级别的故障恢复速度,比之前小时级别的恢复提升了百倍恢复速度。英特尔专家介绍,快手是国内率先在推荐系统领域中引入并使用基于持久内存的异构存储的互联网公司,这种创新实践的技术能力让我们侧目。快手推荐打造业界顶级、战斗力强悍的技术团队
通过工程、算法结合,数据驱动的手段,让快手推荐系统更高效、更精准、更稳定地为快手数亿用户服务,记录每一个人的生活点滴,并让每一个人的记录都能引起共鸣。推荐架构团队的成员都来自国内知名大学、甚至国际知名大学,如CMU、清华、北大、中科大等著名院校的毕业生。团队每个成员都追求技术极致,具备一流的分布式高并发服务的开发能力,比如在线分布式索引支持每天千亿级别的视频请求、机器学习平台支持千亿级别的推荐模型在线学习和在线预估、在线服务为数亿用户提供99.99%的可用性。