一家AI公司快手,为了加速模型训练找到了英特尔

快手是手机里小小的App,在中华大地上它火遍了大江南北,如今的快手已成了一家Top级的大型互联网公司,在现有平台生态上孵化更多产品。成立8年已来积累了100亿条短视频库存,每天仍有超过1500万条的视频新增,在快手的平台上,每天曝光千亿条视频,视频播放量超过200亿次。

从快手系统运营部数据中心技术负责人的介绍中了解到,快手拥有超过10万台服务器数量。十万台服务器的门槛是媒体口中传统意义上的超大规模数据中心的标志,快手的十万多台服务器管理着EB级别的数据量,承担数亿用户记录和分享生活的使命。

用户注册快手的那一刻起,就会接触到快手的推荐系统,快手会从海量内容中为用户推荐感兴趣的内容,随着用户在平台上活动越来越多,推荐的会越来越精准。通过与英特尔合作,快手搭建起超大规模的内容推荐系统,降低TCO,实现双赢。

解决存储问题&搭建推荐系统

从快手的角度来讲,首先要解决如何存储和管理如此大规模视频文件的问题,同时还要解决如何搭建一套基于超大规模数据的内容推荐系统,当然,管理这么大量视频内容当然少不了AI。

据快手的专家介绍,在海量视频文件的存储方面,快手有包括磁带、磁盘构建的冷存储系统,由NAND和3D Xpoint加上QLC构建的温存储,由英特尔傲腾持久内存和DRAM内存构建的热存储,三种热度的存储设备构建了完整的存储池,在满足业务特点的前提下,实现了性能和成本上的平衡。

短视频很火,短视频平台很多,快手之所以能从众多同类产品中脱颖而出,除了布局较早以外,很多人普遍认为,快手的成功还得益于在技术和运营上的能力。快手去年收购A站之后,很多人都对快手在技术和运营商可能会对A站带来的积极影响抱有很高期望。快手更像是一家AI公司,快手的AI技术在对平台上百亿量级的视频进行分析中得到了真正历练。

回到内容推荐的场景来看。用户上传视频后快手需要对视频进行各种分析,对各种参数进行量化,通过像K-means之类的聚类算法对视频进行分类,对接上基于用户行为的AI特征分析系统来完成推荐功能。随着用户活动增多,快手掌握的用户行为数据越来越多,推荐系统的精准度也就越来越高了。

快手率先将傲腾持久内存应用于AI系统

在一次采访中,快手的专家表示,快手作为一家科技公司,对新技术有很高的热情,在尝试许多前沿技术。对超大规模数据中心来说,其系统搭建和运维等方面经常有许多非同寻常的挑战,说到底,最核心的挑战主要还是性能和成本,需要考虑效率,在这样的规模下,任何创新带来的价值都非常可观。

2012年,Google Brain利用深度神经网络检索视频里的猫的时候,使用了16000个通用处理器,而现在,快手需要处理百亿条视频,每天新增的千万级视频,通过千亿参数的深度模型将视频实时推荐给几亿的活跃用户,其计算量可想而知,快手需要巨大的算力以及更优的算法。

从2017年开始,快手的团队开始与英特尔的技术专家沟通协作解决类似问题,使用了许多英特尔在AI方面的解决方案,比如新一代的至强处理器,英特尔的MKL(数学核心函数库)和高性能编译器等,通过一系列优化和改进举措,使得快手的推荐系统使用的AI算法效率大幅提升。

在数据处理方面,为了优化视频检索的时间,提升高并发下的检索效率,提升用户使用体验,快手构建了基于内存的KV数据库,在快手的数据中心里,KV结构存储有较为普遍的应用,但苦于内存的价格以及单台服务器上内存容量限制,基于内存的KV数据库也很难应对越来越大的数据量。

为此,快手引入了英特尔傲腾数据中心级持久内存构建了异构存储,在Redis和推荐系统中都所有应用,实际应用后快手发现,在满足业务性能需求的前提下,用傲腾持久内存代替DRAM内存,能使得快手该存储系统整体TCO有大幅降低。

不仅如此,由于傲腾持久内存具有非易失性,可以保存意外断电之后的数据,使得该系统在故障后的恢复时间减少了很多,快手的专家实测发现,此前KV内存数据库系统的宕机恢复时间是小时级的,而现在时间缩减了百倍之多。

快手使用了傲腾的内存模式和APP DIRECT模式两种模式。

内存模式下直接与DRAM内存搭配使用即可,无需过多干预。在快手的Redis数据库方案中,目前用的是内存模式。在使用上,快手最关注的就是吞吐量和延迟问题,实际业务测试环境下,傲腾内存与DRAM内存相差不大,但单条傲腾内存能做到512GB,单台服务器的内存容量可以轻松拓展到TB级。

随着使用的深入,快手开始尝试并在一定范围内使用APP DIRECT模式,APP DIRECT模式会涉及一些改动和优化,在改动过程中,快手方面得到了来自英特尔专家的许多支持。

快手并不是简单拿来英特尔的方案直接用,在用DRAM和傲腾内存构建的KV内存池方案中,快手增加了一个MemPool组件来做进一步的分层,让MemPool来决定把数据放在DRAM还是傲腾内存里,比如神经网络就被放到DRAM里来提高性能,这跟所有分层的目的一致,也都是为了提升性能和效率。

据了解,快手是率先把傲腾持久内存用在AI系统上的国内商家。快手的专家表示,傲腾持久内存在硬件层面上解决了模型训练方面的问题,提升了模型训练的速度。在快手下一步的规划当中,傲腾持久内存将在Spark等大数据相关的业务中大范围使用。