在当前这样一个信息爆炸的时代,企业需要处理的数据量呈指数级增长,企业数字化转型已经步入了更具挑战的“深水区”。
算力基础设施能够保证企业有足够的能力来存储、处理和分析这些数据,从而获得有价值的业务洞察。
作为承载巨大计算能力的关键,云计算基础设施已成为各行各业克服挑战的关键支柱。
随着大模型的兴起,“数据飞轮”这一概念逐渐进入人们的视线。如今的大模型AI技术大多依赖于数据驱动,需要通过数据的持续迭代来提升模型的性能。“数据飞轮”的作用正是在于能够让各种应用场景中的数据得到有效利用,并反馈到模型中,实现模型的不断优化,使其更加符合实际需求,并迅速迭代。
当前基础大模型训练所需要的最大AI算力集群规模,已经从单一集群千卡逐步提升至万卡量级。同时,很多智算中心已经部署的GPU集群,通常是十几台至数百台服务器不等,难以满足未来行业大模型训练的需求。
因此,在已有AI算力集群的基础上,选择一个多芯混用的集群来为大模型训练提供更大AI算力,已成为必然的选择。
随着AI技术的发展,算力需求大幅提升,算力平台租赁、服务成本快速上涨,且大部分算力资源未能有效共享和利用,如何降低算力成本和提高算力资源的利用率成为行业面临的重要挑战。
如今的各类国产大模型中,既有通用型,也有针对特定行业的垂直型,但无论哪种模型训练,都需要一个稳固且高效的异构计算基础设施。百度百舸作为百度智能云面向AI原生应用、大模型训练、加速和推理的基础设施,目前已能够对不同地点、规模、集群的智能算力进行统一管理,通过资源抽象和智能调度来实现算力资源的高效利用,并基于芯片性能优化、自动芯片选型、潮汐混部等技术,能够大幅提升智能算力效能。
身处AI大集群超算时代,需要大规模的芯片协同解决一个问题,百度给出的解决方案是——开发整合异构算力资源的算力平台,并支持软硬件联合优化与加速中间件,让异构芯片转化为大算力,实现异构计算资源协同工作,满足不同负载对算力的需求,帮企业摆脱对单一芯片的依赖。
具体是怎么实现多芯混用、有限提升算力的呢?
1、多:万卡集群、多芯异构
由于目前市面上各款芯片在规格、算力水平上都参差不齐,在算力资源短缺的现实挑战下,一云多芯是最划算的必然选择,多芯异构的混训模式也可以有效减少对单一芯片的依赖,提高算力资源利用率,减少资源浪费。
百舸便是一直坚持通过RDMA网络构建万卡级别以上的AI集群,以实现多芯混训。
与传统的InfiniBand网络相比,RDMA网络允许数据直接从一台计算机的内存传输到另一台计算机的内存中而无需操作系统介入,能在减少数据传输延迟的同时提高吞吐量,且成本更低,更适合万卡集群的需求。
在百舸AI异构计算平台上,RDMA网络能实现高效的数据传输和同步,尤其是在大规模分布式训练中,RDMA能有效解决网络传输中服务器端数据处理的延迟问题,实现高吞吐、低延迟的网络通信,提升训练效率。
为了优化大模型训练过程中的通信性能,RDMA网络通过充分利用网络硬件资源的能力,将通信性能最大化,从而提升大模型端到端的训练性能。
在AIPod的架构中,使用了多导轨网络架构,以GPU A800服务器为例,它配备了多张网卡,每张网卡都连接到一个TOR汇聚组的多个TOR上。在TOR和LEAF层面,通过Full Mesh的方式进行互联,如果是三层RDMA网络,LEAF和SPINE层面也采用Full Mesh的互联方式。这种设计使得跨机通信流量尽可能在同一TOR下通信,以期将网络带宽尽可能地利用起来。
然而,在实际应用中,可能会遇到网络哈希冲突,会影响网络链路的最大传输速率。为了解决这个问题,百舸采用了多种策略,包括增加RDMA流数和亲和性调度。增加RDMA流数可以减少哈希冲突的概率,而亲和性调度则旨在减少流量上送到LEAF或SPINE,从而减少交换机哈希冲突的可能性,进一步提升了贷宽的有效性和模型性能。
通过这些技术手段,百舸的RDMA网络能够实现高效的数据传输和通信,确保了AI集群的高性能运行,这对于大规模GPU集群的训练任务至关重要。通过优化网络通信,可以显著提升大模型训练的效率和性能。行业内RDMA网络的带宽有效性数据普遍为50%-60%,但百舸AI异构计算平台已能达到95%。
此外,百舸还采用了Accelerator抽象层,进一步屏蔽了底层芯片的差异,使得不同的芯片可以充分发挥各自的算力效能。这种抽象层将芯片算子与上层策略解耦,允许芯片厂商专注于各自芯片的算子调优,而百舸则负责将这些算子与上层策略有效结合,确保在百舸上运行的各种国产芯片能够达到高效的运行效率。
目前,百舸平台可以实现万卡规模下的多芯混合训练,且能将万卡性能损失控制在5%以内。
2、快:快速部署、秒级处理
RDMA网络以其高效的数据传输能力为大模型的运行提供了有力的支持。然而这还远远不够,在大模型的训练和推理过程中时间至关重要,还需要提高模型部署效率,在最短时间内将大模型投入到实际生产环境中来满足不断变化的业务需求;同时还要确保大模型在面对大量请求时,能够以“秒级处理”给出准确的结果,提高系统的响应速度和用户体验。
对此,百舸AI异构计算平台4.0升级了AIAK加速推理方案,通过token切分策略和静态slot机制,把长文本的工作负载分配到多个GPU上,将一系列的串行项目拆解成独立的进程以实现流水化并行处理。还在AIAK上引入了投机式推理策略,原理就是先利用小模型生成多个预选结果,再由大模型做验证并给出最终结果。这样一来,小模型承担了很大一部分大模型的计算负担,并从整体上提高了推理效率,降低了成本。
升级后的AIAK推理加速能同时做好用户体验和运营成本的平衡,让长文本的推理效率提升了1倍。
3、稳:稳定不间断的任务运行
如何在算力规模不断扩大的情况下,保证AI训练的稳定且不间断的运行呢?
万卡规模下的AI集群中断频率非常之高,“故障次数×故障恢复时间+写checkpoint的时间=无效训练时间”,一旦某个点位产生故障,所造成影响则是成千上万倍,恢复所需的时间也被不断拉长。百舸AI异构计算平台通过Hang检测、慢节点检测等手段来实现秒级捕捉checkpoint,快速定位和修复故障,最终实现分钟级任务恢复,确保了大模型的有效训练时长超过99.5%。
在大规模深度学习场景中,尤其是针对大模型的训练,模型的参数量巨大,每次Checkpoint操作都会占用大量的存储和时间资源。传统的Checkpoint机制可能会成为训练效率的瓶颈。而百舸Flash Checkpoint通过优化这一过程,使得模型能够在发生故障时快速恢复,同时减少对训练时间的影响,这对于提升整体训练效率和算力使用效率至关重要。