乐趣区

关于人工智能:AI-大底座大模型时代的答卷

一、文心一言的诞生

“文心一言就是在这个全国 AI 畛域规模最大的高性能 GPU 集群上实现训练的。”

早在 2021 年 6 月,为了满足将来的大模型训练任务,百度智能云开始布局全新的高性能 GPU 集群的建设,联结 NVIDIA 共同完成了能够包容万卡以上规模的 IB 网络架构设计,集群中节点间的每张 GPU 卡都通过 IB 网络连接,并在 2022 年 4 月将集群建设实现,提供单集群 EFLOPS 级别的算力。

2023 年 3 月,文心一言在这个高性能集群上诞生,并一直迭代出新的能力。目前,这个集群的规模还在不断扩大。

NVIDIA 中国区解决方案与工程总经理赖豪杰博士:高速 IB 网络互联的 GPU 集群是大模型时代的要害基础设施。NVIDIA 和百度智能云独特建成的这个国内云计算市场最大规模的高性能 GPU/IB 集群,将减速百度在大模型畛域取得更大冲破。

二、高性能集群设计

高性能集群并不是算力的简略沉积,还须要通过专门的设计和优化,能力施展出集群的整体算力。

在分布式训练中 GPU 会在机间和机内一直地进行通信。在利用 IB、RoCE 等高性能网络为机间通信提供高吞吐、低时延的服务同时,还须要对服务器的外部网络连接,以及集群网络中的通信拓扑进行专门设计,满足大模型训练对通信的要求。

做到极致的设计优化,须要对 AI 工作中的各项操作都对基础设施意味着什么有深刻理解。分布式训练中不同的并行策略,即模型、数据、参数如何进行拆分,会产生不同的数据通信需要,比方数据并行和模型并行会别离引入大量的机内和机间 Allreduce 操作,专家并行会产生机间 All2All 操作,4D 混合并行则会将各类并行策略产生的通信操作都引入。

为此,百度智能云从单机服务器和集群网络两个方面优化设计,构建高性能 GPU 集群。

在单机服务器方面,百度智能云的超级 AI 计算机 X-MAN,目前曾经进化到第 4 代。X-MAN 4.0 为 GPU 建设起了高性能的卡间通信,提供单机外部 134 GB/s 的 Allreduce 带宽。这是目前百度定制化水平最高,专用物料最多的服务器产品。在 MLCommons 1.1 榜单中,X-MAN 4.0 在同配置单机硬件性能名列 TOP2。

在集群网络方面,专门设计了面向大模型训练优化过的三层 Clos 架构,确保在大规模训练时集群的性能和减速比。和传统形式相比,该架构通过八导轨的优化,让任一起号卡在不同机器中的通信中的跳步数尽可能少,为 AI 训练中网络流量占比最大的同号卡 Allreduce 操作提供高吞吐和低延时的网络服务。

该网络架构能够最大能反对到 16000 卡的超大规模集群,这个规模是现阶段全 IB 网络盒式组网的最大规模。该集群的网络性能稳固统一性能做到了 98% 的程度,靠近始终在稳固通信的状态。经大模型算法团队验证,在此超大规模集群上提交千亿模型训练作业,等同机器规模下整体训练效率是上一代集群的 3.87 倍。

然而,建设大规模高性能异构集群,只是大模型胜利落地的第一步。确保 AI 大模型训练任务的顺利完成,还须要更多系统性软硬一体的优化。

三、大模型训练的挑战

过来几年,大模型的参数规模将达到每年增长 10 倍的速度。2020 年左右,亿级别参数才是大模型,2022 年,曾经是须要千亿参数规模能力叫大模型了。

在大模型之前,一个 AI 模型的训练,通常单机单卡、或者单机多卡就能够满足,训练周期在小时到数天之间。当初,为了实现千亿参数大模型的训练,几百台服务器、数千张 GPU/XPU 卡的大集群分布式训练成为必选项,训练周期也扩大到以月为单位。

为了训练 1750 亿参数的 GPT-3(3000 亿 token 数据),1 块 A100 按半精度峰值计算性能折算须要 32 年,1024 块 A100 按资源利用率 45% 计算须要 34 天工夫。当然,即便不思考工夫问题,1 块 A100 也是无奈训练千亿参数规模的模型的,因为模型参数曾经超过单卡显存容量。

在分布式训练的环境下进行大模型训练,训练周期从单卡几十年缩短到几十天,须要冲破计算墙、显存墙、通信墙等各种挑战,使得集群内的所有资源都能被充分利用,减速训练过程,缩短训练周期。

计算墙,指的是单卡算力和模型总算力之间的微小差别。A100 的单卡算力只有 312 TFLOPS,而 GPT-3 则须要 314 ZFLOPs 的总算力,两者相差了 9 个数量级。

显存墙,指的是单卡无奈残缺存储一个大模型的参数。GPT-3 的 1750 亿参数自身就须要 700 GB 的显存空间(每个参数依照 4 个字节计算),而 NVIDIA A100 GPU 只有 80 GB 显存。

计算墙和显存墙的实质是无限的单卡能力和模型的微小的存储、计算需要之间的矛盾。这能够通过分布式训练的办法解决,但分布式训练之后又会遇到通信墙的问题。

通信墙,次要是分布式训练下集群各计算单元须要频繁参数同步,通信性能将影响整体计算速度。如果通信墙如果解决的不好,很可能导致集群规模越大,训练效率反而会升高。胜利的冲破通信墙,体现为集群有较强的扩大能力,即集群的多卡减速能力和规模是匹配的。多卡的线性减速比就是评估集群多卡减速能力的指标,数值越高越好。

这几堵墙在多机多卡的训练中开始呈现。随着大模型的参数越来越大,对应的集群规模也越来越大,这三堵墙也越来越高。同时,在大集群长时间训练过程中,还会呈现设施故障,有可能会影响或者中断训练过程。

四、大规模训练的过程

一般来说,从基础设施视角看大模型训练,整个过程能够大抵分成以下两个阶段:

阶段一:并行策略和训练优化

在提交待训练的大模型后,AI 框架会综合思考大模型的构造等信息、以及训练集群的能力,为本次训练任务制订出一个并行训练策略,并实现 AI 工作搁置。这个过程就是拆开模型、搁置工作,即大模型应该被如何拆解,被拆开的各个局部如何搁置到集群的各个 GPU/XPU 中。

针对搁置在 GPU/XPU 中运行的 AI 工作,AI 框架会联结训练集群在单卡运行时和集群通信层面进行全链路优化,减速大模型训练过程中各个 AI 工作的运行效率,包含数据加载,算子计算、通信策略等。比方将 AI 工作中运行的一般算子替换为通过优化的高性能算子,提供适配以后并行策略和训练集群网络能力的通信策略等。

阶段二:资源管理和任务调度

大模型训练任务依照下面制订的并行策略开始运行,训练集群为 AI 工作提供各类高性能的资源。比方 AI 工作运行在什么环境中,如何为 AI 工作提供资源对接,AI 工作通过什么存储形式读取和保留数据,GPU/XPU 通过什么类型网络设施通信等。

同时,在运行过程中,训练集群会联结 AI 框架通过弹性容错等形式,为大模型的长时间训练提供牢靠的环境。比方如何观测和感知集群中各类资源和 AI 工作的运行状态等,如何在集群变动时可能对资源和 AI 工作进行调度等。

从以上两个阶段的拆解中,咱们能够发现整个大模型训练的过程,都依赖 AI 框架和训练集群的密切配合,实现对三堵墙的冲破,独特确保大模型训练的高效和稳固。

五、全栈交融,「AI 大底座」减速大模型训练

联合多年在 AI 和大模型畛域的技术积攒和工程实际,百度在 2022 年底推出了全栈自研的 AI 基础设施「AI 大底座」,包含「芯片 – 框架 – 模型」三层技术栈,在各个层面都领有要害自研技术和当先产品,别离对应昆仑芯、飞桨(PaddlePaddle)、文心大模型。

在这三层技术栈的根底上,百度智能云推出了两大 AI 工程平台,「AI 中台」和「百度百舸· AI 异构计算平台」,别离在开发和资源层面进行提效,实现对三堵墙的冲破,减速训练过程。

其中,「AI 中台」依靠 AI 框架为大模型训练过程制订并行策略和优化过的环境,笼罩训练的全生命周期。「百度百舸」实现了高效的芯片使能,提供各类 AI 资源的治理和任务调度的能力。

百度「AI 大底座」对各层的技术栈进行了全栈交融、系统优化,实现了云和智的技术一体化建设,能够实现对大模型训练的端到端优化和减速。

百度团体副总裁侯震宇:大模型训练是一个系统工程,集群规模、训练工夫、破费金额,相比过来都进步了很多。如果不是全栈优化,很难保障大模型训练的顺利完成。百度多年来在大模型上的技术投入和工程实际,使得咱们建设起了一套残缺的软件栈能力,用来减速大模型的训练。

接下来,咱们将联合上文提到的大模型训练过程的两阶段,讲述「AI 大底座」的各层技术栈是如何互相交融、系统优化,实现大模型训练的端到端优化和减速。

5.1 并行策略和训练优化

模型拆分

飞桨能够为大模型训练提供数据并行、模型并行、流水并行、参数分组切片、专家并行等丰盛的并行策略。这些并行策略能够满足从十亿到千亿、甚至万亿参数规模大模型的训练,实现对计算墙和显存墙的冲破。2021 年 4 月,飞桨在业界第一个提出 4D 混合并行策略,可反对千亿级大模型的训练在月级别实现。

拓扑感知

百度百舸领有专为大模型训练场景筹备的集群拓扑感知能力,包含节点内架构感知、节点间架构感知等,比方每台服务器外部的算力大小、CPU 和 GPU/XPU、GPU/XPU 和 GPU/XPU 链接形式,以及服务器之间 GPU/XPU 和 GPU/XPU 网络链接形式等信息。

主动并行

在大模型训练任务开始运行前,飞桨能够根据百度百舸平台的拓扑感知能力,对集群造成对立分布式资源图。同时,飞桨依据待训练的大模型造成的对立逻辑计算视图。

综合这两张图,飞桨自动化地为模型搜寻出最优的模型切分和硬件组合策略,将模型参数、梯度、优化器状态依照最优策略调配到不同的 GPU/XPU 上,实现 AI 工作的搁置以晋升训练性能。

比方将模型并行的 AI 工作都搁置在同一台服务器的不同 GPU 上,这些 GPU 通过服务器外部的 NVSwitch 链接。将数据并行、流水线并行的 AI 工作搁置在不同服务器的同号 GPU 上,这些 GPU 通过 IB 或者 RoCE 链接。通过这种根据 AI 工作的类型进行 AI 工作搁置的的办法,使得集群资源可能被高效应用,减速大模型训练。

端到端自适应训练

在训练任务运行过程中,如果集群产生了变动,比方有资源呈现了故障,或者集群规模有变动,百度百舸会进行容错的替换或者弹性扩缩容。因为参加计算的节点所在位置产生了变动,它们之间的通信模式兴许曾经不是最优。飞桨可能根据最新的集群信息,主动调整模型切分和 AI 工作搁置策略。同时,百度百舸实现相应的工作和资源的调度。

飞桨对立的资源和计算视图以及主动并行能力,再联合百度百舸的弹性调度能力,实现了大模型的端到端自适应分布式训练,能够笼罩集群训练的全生命周期。

这是 AI 框架和 AI 异构算力平台的深刻交互,实现了算力、框架、算法三位一体的系统优化,反对大模型主动弹性的进行训练,端到端实测有 2.1 倍的性能晋升,保障了大规模训练的高效性。

训练优化

实现模型的拆分和 AI 工作的搁置后,在训练过程中为了确保算子在飞桨、Pytorch 等各类支流 AI 框架和各类计算卡上能够减速计算,百度百舸平台中内置了 AI 减速套件。AI 减速套件包含了数据层存储减速、训练和推理减速库 AIAK,别离从数据加载、模型计算、分布式通信等维度进行了全链路优化。

其中,数据加载和模型计算的优化能够无效进步单卡的运行效率;分布式通信的优化,联合集群的 IB 或者 RoCE 等高性能网络和专门优化的通信拓扑,以及正当的 AI 工作搁置策略,独特解决通信墙问题。

百度百舸在千卡规模集群中的多卡减速比达到了 90%,使得集群领有的整体算力能够被充沛释放出来。

在 2022 年 11 月公布的 MLPerf Trainning v2.1 测试后果中,百度应用飞桨加百度百舸提交的模型训练性能后果,位列等同 GPU 配置下世界第一,端到端训练工夫和训练吞吐均超过 NGC PyTorch 框架。

5.2 资源管理和任务调度

百度百舸通过容器引擎 CCE 承载所有 AI 工作的运行,并通过相干容器插件的形式提供各类 AI 资源管理、架构感知、弹性容错等能力,在资源效力层面实现计算墙、显存墙、通信墙的冲破。

资源管理

百度百舸能够提供各类计算、网络、存储等 AI 资源,包含百度太行·弹性裸金属服务器 BBC、IB 网络、RoCE 网络、并行文件存储 PFS、对象存储 BOS、数据湖存储减速 RapidFS 等各类适宜大模型训练的云计算资源。

在工作运行时,能够将这些高性能资源进行正当的组合,进一步晋升 AI 作业的效率,全流程实现 AI 工作的计算减速。在 AI 工作开始前能够预热对象存储 BOS 中的训练数据,通过弹性 RDMA 网络将数据加载至数据湖存储减速 RapidFS 中。弹性 RDMA 网络相比传统网络能够升高 2 至 3 倍通信时延,在高性能存储的根底上,减速 AI 工作数据的读取。最初通过高性能的百度太行·弹性裸金属服务器 BBC 或者云服务器 BCC,进行 AI 工作的计算。

弹性容错

AI 工作运行时,不仅须要高性能的资源,还须要确保集群的稳固,最大水平升高资源故障发生率免得打断训练。然而,资源的故障不能相对防止,AI 框架和训练集群须要联结保障训练任务被打断后可能从最近的状态复原,从而为大模型的长时间训练提供牢靠环境。

百度自研的异构汇合通库 ECCL,反对昆仑芯和其余异构芯片的通信,反对慢节点和故障节点的感知。通过百度百舸的资源弹性和容错策略,将慢节点和故障节点剔除,并将最新的架构拓扑反馈给飞桨,从新进行工作安排,对应训练任务调配至其余 XPU/GPU 上,确保训练的平滑高效运行。

六、大模型时代的 AI 普惠

大模型是人工智能迈向通用智能的里程碑技术,驾驭好大模型是实现智能化降级门路上的必答题。超大规模的算力、全栈交融的软件优化,是对这道必答题的最好答复。

为了帮忙社会和产业疾速训练出本人的大模型,抢占时代先机,2022 年底百度智能云公布了阳泉智算核心,搭载百度「AI 大底座」的全栈能力,能够提供 4 EFLOPS 的异构算力。这是目前亚洲单体规模最大、技术最先进的数据中心。

目前,百度智能云曾经将「AI 大底座」的全副能力对外开放,实现大模型时代的 AI 普惠,通过各个地区的核心云、边缘云 BEC、本地计算集群 LCC、公有云 ABC Stack 等多种形式进行交付,使得社会和产业能够不便的取得智能服务。

—— END ——

举荐浏览:

增强型语言模型——走向通用智能的路线?

基于公共信箱的全量音讯实现

百度 APP iOS 端包体积 50M 优化实际 (二) 图片优化

浅论分布式训练中的 recompute 机制

分析多利熊业务如何基于分布式架构实际稳定性建设

百度工程师的软件品质与测试随笔 [](http://mp.weixin.qq.com/s?__biz=Mzg5MjU0NTI5OQ==&mid=22475598…)

退出移动版