相信很多人还记得AI芯片公司世界语今年发布的千核RISC-V处理器ET-SoC-1。随着这款7nm芯片在第二季度的成功流回,世界语得以在芯片上运行代码,并尝试新的应用方向,其中之一就是AI-SSD。在最近的三星代工活动上,世界语披露了其AI-SSD的概念模型。
个性化推荐系统的挑战
当我们刷短视频,听歌、浏览社交网络时,部分内容来自我们关注过的用户,但绝大多数来自推荐系统的推送。推荐系统的准确性很大程度上决定了软件的用户体验,也是当今互联网经济体系的命脉。然而,这种推荐往往是服务器上最大的AI处理负载。优化推荐系统可以提高推荐系统的速度,降低服务器的成本。
DLRM深度学习推荐模型/元
说到推荐系统,就不得不说到嵌入,这是目前推荐系统的关键组成部分。虽然每个家族都有不同的推荐模型,但或多或少都是利用查找嵌入表的方法来实现分类特征的处理。在这个过程中,嵌入式表存储在DRAM中,CPU对嵌入式表进行操作,对内存带宽和内存容量提出了双重挑战。
在内存带宽方面,美团、腾讯等厂商都采用了多GPU加速来充分利用GPU带宽,但这种方式还是需要多GPU或多服务器的支持来解决容量问题。虽然厂商也可以选择HBM这样的大带宽内存方案,但成本增加是巨大的。
据Meta介绍,在脸书社交网站的个性化推荐系统中,大规模的嵌入式表可以达到百万行以上,导致推荐模型的大小达到10GB左右,一个神经推荐模型中的所有嵌入式表甚至需要TB级别以上的空间。比如Meta的Instagram已经在开发10TB的推荐模型,百度的广告排名模型也达到了10TB。这种容量要求对于硬盘来说可能足够了,但是对于内存来说太奢侈了。
因此,为了解决容量问题,很多人也提出了固态硬盘的存储解决方案。目前,传统固态硬盘虽然可以轻松存储大规模推荐系统,但读取延迟和带宽更差,显著降低了推理性能。
专为推荐而设计的固态硬盘
世界语与三星合作开发了AI-SSD的概念模型,研究将所有嵌入式表处理移入SSD的影响,从而消除了推荐系统中CPU和DRAM的链接。三星展示了将使用世界语的ET-SoC-1芯片与其PM9A3 SSD相结合的成果。
在AI-SSD中,所有的嵌入式表都存储在SSD中,CPU负责所有的用户数据输入和深度神经网络,而SSD中的ET-SoC-1负责嵌入式表的查询和交互操作。此外,由于选择了这种内存计算方式,使得PCIe链路上的数据传输最小化,降低了读写的高延迟,最终的分类数据直接发送给CPU生成推荐结果。
AI-SSD带宽性能测试结果/世界语
在测试中,世界语选择了Meta的开源推荐模型DLRM,将AI-SSD与传统的CPU-SSD进行对比。在不同的型号配置下,AI-SSD的读取带宽可以提高10到100倍,并且带宽可以随着使用内核数量的增加而继续线性增加。
请注意,在这次测试中,世界语最多只使用了四个Minion Shire,每个节点只有32个内核。整个ET-SoC-1有34个子节点和1088个内核。如果所有计算单元都用于SSD,提升将达到数百倍甚至更多,非常适合数据中心级别的SSD产品。ET-SoC-1的可扩展性也可以使其减少内核数量,用于一些边缘推荐系统。
计算交换空间
但是,即使使用AI-SSD,也是增加硬件成本的一种方式。除了不缺钱的大公司会用这款产品,一些小的互联网应用可能不会直接选择替代SSD的方式。因此,只有一种方法可以继续优化推荐模型。
佐治亚理工学院和梅塔学院为DLRM提出了一种张量训练压缩方法,命名为TT-Rec。这种方法通过将嵌入表乘以几个小矩阵来压缩嵌入表,进一步减小了嵌入表的大小。然而,这种额外的计算是不可避免的额外消耗,但幸运的是,它的评估结果足够优秀。
在Kaggle和Terabyte数据集的测试训练下,TT-Rec将数据分别从2.16GB和12.57GB压缩到18.36MB和0.11GB,整体大小压缩超过100倍,甚至几乎没有精度损失。额外的操作体现在训练时间上,分别增加了14.3%和13.9%。因此,在实际使用中,我们必须在记忆容量、模型精度和训练时间之间做出一定的权衡。
总结
虽然从推荐系统配置的角度来看,还有很多可供选择的解决方案,但关于存储与计算融合的研究已经全面铺开。存储市场正在迅速与计算市场重叠。三星、西数、希捷等存储厂商纷纷开始这种布局,传统的冯诺依曼架构将被近数据处理取代。