大规模AI智能计算的算力背景和挑战
目前,人工智能已经渗透到教育、交通、能源、气象等众多传统行业,在互联网领域更是得到了广泛的应用。以淘宝为例,该网站的商品搜索、智能客服、个性化推荐等功能,每天涉及10亿张图片、120万小时视频、55万小时语音和5000亿句,背后都是以和 AI为代表的智能 计算在支撑,全面覆盖了视觉、和点击率预估模型(Click-Through Rate,CTR)等典型人工智能应用领域。
随着在图像等领域的成功应用,以此为基础的深度学习算法也迅猛发展。为了获得更好的识别准确率,的模型和相关的 训练数据集急剧增长,复杂大模型训练的时间也开 始以“星期”甚至“月”为单位计量,阿里巴巴的众多AI业务模型开始进入大模型时代。例如,拍立淘增量训练的数据集一般为2亿张图片,使用一个英伟达Volta 100 GPU(峰值 Tensorcore,算力112 TFlops)进行训练需要一周时间;而从零开始训练需要10亿张图片,需要1.5个月才能完成,这种训练速度远远满足不了业务快速迭代的需求。为了缩短训练时间,构建分布式AI训练集群以实现系统性能的横向扩展成为必然选择,谷歌的TPU集群就是类似系统。
由于深度学习与/高性能业务有着不同 的计算模型和通信模型,因此采用传统的集群架构将面临严重的通信瓶颈,导致系统扩展性急剧下降。传统处理业务,例如Hadoop任务,其子任务独立性强,处理流程以流式或单向图为主。整体系统呈现通量计算特征,即以单位时间完成的任务数为重要指标。而AI业务则是高性能计算负载,下一次计算任务的启动依赖于上一次计算的完成,因此其重要指标是单任务的完成时间,需要极致的计算性能,因此高性能的加速器(例如GPU)被广泛应用在AI系统中。而加速器的规模使用,给通信模型带来了新的挑战,传统的通信模式从原有的CPU间通信转向CPU与加速器间通信。如果仍然沿用原有以CPU为中心的通信架构,势必会引入复杂的通信层次和数据拷贝,造成极低的通信效率。随着加速器性能的不断提升,计算部分时间占比不断缩短,进而使得通信的瓶颈问题愈加凸显,极大制约了系统性能的线性扩展性能。
因此,算力绝不是一个简单的计算芯片堆叠,而是突破服务器界限在集群尺度开展计算、网络、存储协同设计的结果,而最佳的协同设计则依赖对AI真实负载特征的充分理解。真实的AI计算任务 包含数据集的读入/预处理、模型计算、梯度同步等多个环节,全面涉及集群系统的数据IO、通用/异构计算、等组件。实际上,量AI业务的运行效率受限于通信和数据IO性能,而非计算,因此单纯增加异构计算部件的性能对系统整体性能的帮助不大。要全面提升AI业务执行效率,首先需要对AI业务有充分的理解,在硬件层面平衡系统通用/异构计算资源的配比,协调计算/IO/通信的性能,与软件系统深度协同设计,才能充分发挥算力资源的效率。