2023年是AI人工智能技术全面崛起的一年,以ChatGPT、GPT-4、Ernie Bot等大型AIGC模型为代表,它们集文字写作、代码开发、诗歌创作等多种功能于一体,展示了优秀的内容生产能力,给人以深刻的震撼。作为一名IT专业人士,AIGC大模型背后的通信技术也应该引起深思。没有好的网络,就无从谈及大模型的训练。构建大规模训练模型集群,不仅需要GPU服务器、网卡等基础组件,而且网络建设问题也亟待解决。什么样的强大网络在支撑AIGC的运行?AI浪潮的全面到来,将给传统网络带来怎样的革命性变化?
前面提到的AIGC大模型之所以如此强大,不仅是因为其背后有大量的数据支撑,还因为算法在不断进化和升级。更重要的是,人类计算能力的规模已经发展到一定程度。强大的算力基础设施可以充分支撑AIGC的计算需求。在训练大型模型时,由于模型的大小通常会超过单个GPU的内存和计算能力,因此需要多个GPU来分担负载。在大模型训练过程中,GPU负载分担有三种方式,即张量并行、管道并行、数据并行。
数据并行性:
数据并行是一种简单且直接的并行化技术,其中在多个处理器(如GPU)上复制模型的完整副本。每个处理器或GPU都会获得整个模型的副本,并独立地对不同的数据子集执行前向和后向传播。在每个训练步骤之后,来自所有处理器的模型权重更新需要合并或同步,这通常通过某种形式的集体通信操作来完成,例如all-reduce。数据并行性允许模型在更大的数据集上进行训练,因为数据被分成多个小批次,每个批次在不同的处理器上处理。
想象一个大型图书馆,需要对其中的所有书籍进行分类。数据并行就像雇用多个图书管理员,每个图书管理员负责对一部分图书进行分类。在模型训练的情况下,每个GPU都会获得整个模型的副本,但只处理整个数据集的一部分。当所有GPU完成各自的任务后,它们交换信息以同步更新模型权重。
张量并行性:
当模型太大而无法容纳单个处理器的内存时,通常使用张量并行性。在这种并行化策略中,模型的不同部分,例如神经网络层中的不同张量或参数组,被分配给不同的处理器。这意味着每个处理器只负责计算模型的一部分。为了完成整个模型的前向和后向传播,处理器必须频繁地交换中间结果,这可能会导致较高的通信开销。张量并行性需要处理器之间的高速连接,以最大限度地减少这些交换的延迟。
假设数据并行是多个图书馆员,每个图书馆员处理一部分书籍。在这种情况下,张量并行就像每个图书馆员负责分类工作的一部分步骤。在模型训练中,每个GPU负责模型中的一部分计算,例如一个GPU负责模型前半层的计算,另一个GPU负责模型后半层的计算。这样,模型的每一层都可以跨多个GPU进行计算。
管道并行性:
管道并行是一种并行化策略,其将模型的不同层或部分分配给不同的处理器,并以管道方式执行计算。在管道并行中,输入数据被分成多个微批次,每个微批次依次通过模型的每一层。当一个微批次完成第一层的计算后,其立即传递到下一层,同时第一层开始处理下一个微批次。这种方式可以减少处理器的空闲时间,但需要仔细管理管道,以避免产生太大的停顿,其中某些处理器可能会因为等待相关计算结果而暂停其工作。
管道并行就像工厂装配线上的工人,每个工人执行特定的任务,然后将半成品传递给下一个工人。在模型训练中,模型被分成几个部分,每个部分在不同的GPU上顺序执行。当一个GPU完成其部分计算时,其将中间结果传递给下一个GPU以继续计算。
在实际部署中,网络的设计必须考虑这些并行策略的带宽和延迟要求,以保证模型训练的效率和效果。有时,这三种并行策略结合起来可以进一步优化训练过程。例如,大型模型可以使用多个GPU上的数据并行性来处理不同的数据子集,同时使用每个GPU内的张量并行性来处理模型的不同部分。
我们再来看看大模型训练对AI算力的需求。随着大模型的不断升级,模型训练的算力需求也随之增加,每三个月翻一番。GPT-3模型(1750亿参数,45TB训练语料,消耗3640PFlops/s-Days算力)ChatGPT3,使用128台A100服务器,总共1024张A100卡进行训练,因此单个服务器节点需要4个100G网络渠道;而ChatGPT4、ChatGPT5等大型模型,对网络的要求会更高。
AIGC发展到现在,训练的模型参数从1000亿飙升到10万亿。要完成如此大规模的训练,底层支撑的GPU数量也达到了万卡的规模。
那么问题来了,影响GPU利用率最大的因素是什么?
答案是网络。
作为拥有数万个GPU的计算集群,与存储集群的数据交互需要巨大的带宽。此外,GPU在执行训练计算时并不是独立的,而是使用混合并行。GPU之间有大量的数据交换,这也需要巨大的带宽。
如果网络不强大,数据传输速度慢,GPU需要等待数据,利用率降低。利用率的下降会增加训练时间、成本,用户体验也会变差。
业界做了一个模型来计算网络带宽吞吐量、通信延迟和GPU利用率之间的关系,如下图所示:
带宽吞吐量和GPU利用率/动态延迟和GPU利用率
从这可以看到,网络吞吐量越强,GPU利用率越高;通信动态延迟越大,GPU利用率越低。
什么样的网络可以支持AIGC的运行?
为了应对AI集群计算对网络的高要求,业界提出了多种解决方案。在传统策略中,常见有三种技术:Infiniband、RDMA和帧交换机。
Infiniband网络
对于熟悉数据通信的专业人士来说,Infiniband网络并不陌生。它被誉为构建高性能网络的最佳方式,确保极高的带宽、无拥塞、低延迟。ChatGPT和GPT-4使用的网络是Infiniband网络。但该技术的缺点是价格昂贵,成本是传统以太网组网的数倍。另外,该技术相对封闭,行业内只有一家成熟的供应商,限制了用户的选择。
RDMA网络
RDMA,即远程直接内存访问,是一种新型的通信机制。在RDMA方案中,数据可以直接与网卡通信,绕过CPU和复杂的操作系统,不仅大大提高了吞吐量,而且保证了更低的延迟。
此前,RDMA主要承载在InfiniBand网络上。现在,已逐步移植到以太网上。目前主流的组网方案是基于RoCE v2协议构建支持RDMA的网络。然而,该方案中的PFC和ECN技术虽然是为了避免链路拥塞而产生的,但在频繁触发时可能会导致发送方暂停或变慢,从而影响通信带宽。
帧交换机
一些互联网企业曾希望使用帧交换机来满足高性能网络的需求。但该方案存在可扩展性不足、设备功耗高、故障域大等挑战,仅适合小规模AI计算集群部署。
新一代AIGC网络:DDC技术
鉴于传统方案的种种局限性,一种新的解决方案——DDC(分布式机箱)应运而生。DDC“拆解”了传统帧交换机,增强其可扩展性,并根据AI集群规模灵活设计网络规模。通过这种创新方式,DDC克服了传统方案的局限性,为AI计算提供了更加高效、灵活的网络架构。
从规模和带宽吞吐量来看,DDC完全满足大规模AI模型训练的网络需求。然而网络运行不仅仅是这两方面,还需要在时延、负载均衡、管理效率等方面进行优化。为此,DDC采取以下技术策略:
VOQ+基于Cell的转发机制,有效对抗丢包
当网络遇到突发流量时,可能会导致接收方处理缓慢,导致拥塞、丢包。DDC采用的VOQ+Cell-based转发机制可以很好地解决这个问题。具体流程如下:
发送方收到数据包后,首先将数据包分类并存储到VOQ中。在发送数据包之前,NCP首先会发送Credit消息来确认接收方是否有足够的缓冲区空间。只有当接收方确认自己有处理能力时,数据包才会被切片成Cell并动态负载均衡到Fabric节点。如果接收方暂时无法处理,数据包会暂时存储在发送方的VOQ中,不会直接转发。这种机制充分利用了缓存,可以大大减少甚至避免丢包,从而提高整体通信稳定性,减少延迟,提高带宽利用率和业务吞吐效率。
PFC单跳部署,彻底避免死锁
PFC技术用于RDMA无损网络中的流量控制,可以为以太网链路创建多个虚拟通道,并为每个通道设置优先级。然而,PFC也存在死锁问题。
在DDC网络中,由于所有NCP和NCF被视为整体设备,因此不存在多级切换,从而完全避免了PFC的死锁问题。
PFC工作机制示意图
40*200G
分布式操作系统,增强可靠性
在DDC架构中,管理功能由NCC集中控制,但这可能会带来单点故障的风险。为了避免这个问题,DDC采用分布式操作系统,允许每个NCP和NCF独立管理,并具有独立的控制平面和管理平面。这不仅大大提高了系统的可靠性,而且更易于部署。
总结
DDC通过其独特的技术策略,满足了大规模AI模型训练的网络需求,同时也在诸多细节上进行了优化,保证了网络在各种复杂条件下都能稳定高效地运行。
公众号
视频号
抖音号