正文
在这一领域,国内外涌现出许多新的集群和云平台公司。例如,国内的阿里云、腾讯云、火山云、百度百舸,国际上的谷歌 TPU、亚马逊 AWS,以及 Meta 等。华为也有自己的华为云,而昇腾则在很大程度上支撑了这些云服务和集群服务的运行。
基于这些现状,我们看到 AI 集群的性能提升主要集中在芯片能力、集群能力、算力效率和可用率等方面。在算法层面,常见的优化手段包括计算优化、通信优化、并行优化和内存优化。在推理加速方面,我们也做了大量工作,包括通信加速、解码优化、量化压缩以及最优并行调度优化等。然而,这些内容大多是脱离业务的。如果仅从硬件 Infra 支撑的角度来看,这些内容与业务的关联性并不强,显得有些过于宏观。今天,我主要想分享的是更深入、更具体、与昇腾或华为业务强相关的内容。
从百卡集群到千卡集群,再到万卡集群,我们进行了架构的逐步优化。下图右边的图例中 100G 网络对应的是 100Gbps 的通信带宽;GE(Gigabit Ethernet)是普通的以太网通信,带宽相对较低;10GE 是带外通信。在日常操作中,我们通常通过公网、云专用网或 IP 承载网,经由最外层的路由器接入整个集群。而集群内部真正运行模型的部分是下图中间的 AI 集群,存储和计算集群是分开的。
因此我们产生了多个不同的业务面:参数面、业务面 / 数据面。参数面是指网络模型参数传递的网络。在一个万卡集群中,用英伟达的卡, GPT-3 模型的 MFU(Model Flops Utilization,模型利用率)最高能达到 50%,大部分时间都在进行网络通信,通信对我们来说已经变得非常关键。当时,参数面主要采用多轨主网架构,参数面接入的是 100G 的 RoCE(RDMA over Converged Ethernet)网络,这是一种典型的配置。数据面和业务面负责将存储的图片、文本以及对话数据等,通过存储后端传递给计算面,即我们的 AI 集群。在参数面的早期阶段,即 2020 年之前,当时还没有大规模推动千卡或万卡集群时,我们的组网方案相对简单。
集群组网,尤其是英伟达的万卡组网,是在近两年才逐渐兴起的概念。在过去,很少有人提及万卡集群或千卡集群。由于早期集群中没有独立的数据面,数据面与业务面合为一体,通常通过 NFS(Network File System,网络文件系统)协议进行访问。这种架构存在潜在风险,数据可能因访问协议的开放性而外泄。这成为许多客户极为关心的问题:购买集群后,数据应如何得到有效保护?如果数据面与业务面没有分离,且上层连接路由器,一旦接入路由器,网络很容易受到攻击,进而导致数据被访问或泄露。
尽管目前在大模型训练中,数据安全问题尚未成为主要关注点,但对于许多 B 端企业,尤其是业务级公司来说,数据泄露风险是他们极为重视的问题。在早期的百卡集群中,样本面与业务面的网络是共享的,组成了一个多轨的 100G RoCE 网络。这种架构会影响整个 IO 的读取速率,因此我们对方案进行了升级。
在千卡集群阶段,我们不能再沿用早期的架构。经过深入研究并与众多客户交流后,我们将数据面从整体架构中分离出来。在 AI 集群中,我们从多轨方案转变为单轨方案。多轨方案存在一个较为致命的问题:维护成本极高。虽然它可以连接多个二级交换机,使集群规模更大,但维护成本的增加会导致可用性下降。尤其是在千卡集群中,我们希望集群能够随时启动,避免像万卡集群那样频繁出现错误、掉卡或网络中断等问题,包括光模块故障等。
因此,我们将参数面从多轨调整为单轨,并将网络带宽从 100G RoCE 升级到 200G RoCE,从而提升了参数面的整体性能。提升参数面性能的目的是为了提高节点之间的通信效率,最终实现参数面与数据面(即业务面)的分离,并将 NFS 协议改为 DPC(Direct Parallel Communication,直接并行通信)协议进行访问。
目前,一些厂商可能会将数据直接存储在 AI 集群的每个节点中,但这种方式对数据的维护和管理带来了极大挑战,尤其是对于 CKPT(Checkpoint,检查点)数据。在实际业务上线时,可能会存在多个分散的 AI 集群,因此配备一个集中的存储端口是非常必要的,尤其是面向未来的推理集群。如今,我们的整体架构包括一个训练集群、一个独立的存储区域以及一个管理区域,分别用于管理带内和带外网络。通过这种方式,我们将之前提到的问题进行了有效隔离,尽可能确保整个网络和网段的安全性,同时实现了数据与业务的分离。
我们正在进行架构演进,以应对对万卡集群甚至更大规模的方案。随着大模型的兴起,尤其是强化学习的广泛应用,数据源源不断地从存储集群流向 AI 集群,甚至推理集群。在推理业务中,数据持续产生,因此我们需要减少 AI 集群与存储区之间的数据传输延迟,尽可能拉近它们之间的距离。为此,我们制定了新的方案,适用于万卡集群以及未来的 Post-Training(后训练)和推理业务场景。在这一方案中,我们将计算面的网络从 2×25G 升级为 2×100G 的 RoCE 网络。整体网络架构中,绿色的连接线已发生变化,全部采用 DPC(Direct Parallel Communication)协议进行访问。最重要的是,我们再次分离了样本面与业务面,目前仍采用单轨方案,服务器到 Leaf(叶节点)之间采用二分之一的线缆连接。这种设计的核心目标是提升网络性能,尽可能减少等待时间。