百度算力秘技出炉:五招破解大模型训练算力有效利用率不足问题

0e8067b30e774def7c791d0df1bb399f.gif

众所周知,大模型带来了大算力的需求。据估算,自 2012 年以来,大模型训练算力需求每 3~4 个月就翻一番,每年训练大模型所需算力增长幅度高达 10 倍。而OpenAI 2020 年提出的 Scaling Law 定律更进一步指出,大模型的最终性能与计算量、模型参数量、训练数据量的大小密切相关。换言之,如果要提升大模型的能力,就要不断增加模型参数和训练数据量、部署大规模的训练集群,而随着集群规模的不断扩大,训练成本也呈指数级增长。

一方面,算力作为稀缺资源,供不应求;另一方面,一个不争的事实是,作为算力消耗大户的大模型训练,其算力利用率却不高。“据我们了解,目前企业训练大模型的算力有效利用率不足 50%,这意味着,一半以上的算力被浪费了。在算力短缺且昂贵的当下,这无疑是一种巨大的浪费”,百度杰出系统架构师、百度智能云AI计算部负责人王雁鹏近日表示。

究竟该如何提升算力的有效利用率?作为百度大模型算力底座,百度智能云百舸AI异构计算平台基于百度内外部客户服务实践经验,探索出五个招式,有效解决大模型训练算力有效利用率不足的问题——“算力有效利用率 = 能耗有效率×单卡算力有效率×并行扩展有效率×有效训练时间×资源利用率”,其中每一招都是乘积关系,环环相扣,任何一招的修炼火候,都会对整体算力利用率产生系统性影响。

171cccd2da46ed9c302285acc2101fbc.png

百度杰出系统架构师、百度智能云AI计算部负责人王雁鹏

据了解,修炼任何一招都绝非易事,而五招大成的系统性提升更是难上加难。下面我们就跟随王雁鹏,看看如何修炼这五招。

552c05410d55457190f7808916c1b574.png

如何提升能耗有效率?

降低数据中心能耗,中国电网比美国有优势

有数据显示,在整个社会用电量中,大约有 1% ~ 3% 的电力消耗在计算领域,大模型训练对电力的消耗极为巨大。因此,如何实现电力的有效利用,让电力用在任务上而不是用在散热上,成为当前行业所面临的一项巨大挑战。

数据中心能源效率的指标通常用 PUE(Power Usage Effectiveness)来衡量,PUE 值越低意味着数据中心的能源效率就越高,即更多的能源被用于实际的计算任务(IT 设备),而较少的能源被浪费在辅助设施上。因此,降低 PUE 对于提高算力的有效利用率至关重要。

王雁鹏表示,从百舸的实践来看,为了降低 PUE,通常的做法是优化数据中心的制冷系统、提高设备的能效。目前业界平均水平为大于 1.2,而百度云自建数据中心的平均 PUE 可以做到小于 1.1,这主要归功于百度云领先的数据中心制冷方案。百度云在自建的数据中心里采用自研的液冷方案。相较于传统的风冷方案,该液冷方案能够实现机器性能提升 10%,同时使机器故障率降低 60%-70%。

29723bbbcd78a7bbd1038785a45de432.png

如何提升单卡算力有效率?

使用AI加速套件,提升大模型训练的MFU

GPU 最初是为图形处理而设计的,其具有大量的并行计算单元,擅长处理大规模的并行计算任务。然而,在用于通用计算尤其是人工智能模型训练时,会面临一些限制。

一方面,GPU 的内存架构和数据传输机制会导致瓶颈。虽然 GPU 拥有高速的显存,但在处理大规模数据时,数据在显存和系统内存之间的传输可能会成为性能瓶颈,影响算力的充分发挥。

另一方面,GPU 的指令集和编程模型也可能限制其算力的发挥。GPU 的指令集通常是针对图形处理优化的,对于一些复杂的通用计算任务,可能需要进行大量的指令转换和优化才能高效执行。

通常,使用 MFU(Model FLOPS Utilization)来衡量 GPU 的有效利用率,MFU 越高,算力利用率越高。业内提升 MFU 的做法主要包括进行算法优化、使用 AI 加速套件等方式。

王雁鹏表示,针对 GPU 有效利用率低这一问题,百舸选择的路径是:自主研发大模型训推加速套件 AIAK。该套件针对主流开源大模型,在显存、算子等层面进行了深度优化,相比于英伟达自研的算子加速库,实现了10%的性能提升。同时,在主流开源大模型训练任务中,能够将 MFU 大幅提升至 70% 以上,达到了行业领先水平。

15739755ded68cd54e83b1c5eb913dc0.png

如何提升并行扩展有效率?

使用自动并行策略,降低策略调优时间

为了提高训练效率、缩短训练时间以及处理大规模数据和模型,大模型训练通常采用并行训练方式。并行训练是指利用多个计算资源同时进行模型训练的过程,以往的并行训练需要手动进行复杂的并行编程和任务分配,这种方式效率低、上手难度高。

王雁鹏表示,自动并行策略的出现为解决这些难题带来了重大突破。

自动并行策略通过自动分析计算任务和计算资源,实现了任务在多个计算单元上的合理分配并行执行,这一方式具有多方面的显著优势。首先,它能够充分利用计算资源,避免了资源的闲置和浪费。无论是 CPU、GPU 还是分布式计算节点,都能被高效地调动起来,共同为复杂的计算任务服务。其次,它大大降低了开发难度,开发者无需再进行繁琐的手动并行编程和任务分配,只需专注于计算任务的逻辑实现,极大地提高了开发效率。最后,自动并行策略显著提高了计算效率,通过合理的任务分配和资源利用,能够大幅缩短计算时间,为各种应用场景的快速迭代和优化提供了有力支持。

以百度云为例,百舸平台提供的大模型训推加速套件AIAK在并行策略方面进行了深度优化,与开源方案相比,实现了30%的性能提升。同时,使模型并行策略调优时间大幅降低,从原先的小时级缩短至分钟级。这种高效的调优能力使得开发者能够更加快速地进行模型训练和优化,极大地提高了工作效率。

04e570a55d24bfa7cec8950662f83f9c.png

如何提升有效训练时间?

提升AI基础设施稳定性,减少故障恢复时间

Meta 在近期的一份研究报告中揭示了训练 Llama3-405B 参数模型的重大挑战:该系统在包含 16384 个英伟达 H100 GPU 的集群上运行,在训练期间平均每三个小时就发生一次故障, 54 天内经历了 419 次意外故障。大规模计算任务的复杂性使得AI 基础设施发生故障几乎成为必然。

为了提高 AI 基础设施的稳定性,Meta 开发了多种工具和优化策略,优化措施包括缩短任务启动和检查点时间,并广泛采用 PyTorch 自带的 NCCL 飞行记录器进行故障诊断,以及识别通信缓慢的节点。目前实现了模型训练任务 90%以上的有效训练时间。

百度智能云百舸平台也针对模型训练的稳定性进行了优化,可以提供全面的故障诊断手段,快速自动侦测到导致训练任务异常的节点故障,同时提供自动化的容错能力,重新调度任务到健康节点,继续完成训练,目前已经将故障恢复时间从小时级降低到分钟级。

“经过几年的研发,目前,百舸在万卡任务上实现了大于99%的有效训练时长占比,这是非常不容易的。”王雁鹏说。

355cc332862cbd07fe653093c97c7e4d.png

如何提升资源利用率?

训推一体,提升资源利用率

在传统的人工智能应用中,模型的训练和推理通常是在不同的集群中进行的。训练阶段需要大量的计算资源和数据,通常在高性能计算集群中进行。而推理阶段则需要将训练好的模型部署到实际应用场景中,对算力的要求显著低于训练阶段。

为了提高算力资源的利用率,针对一些特殊场景,可以将训练和推理过程混合在同一集群中进行,也就是“训推一体”。训推一体技术让集群能同时支持在线推理服务部署和离线训练任务,实现推理和训练之间的算力自由无缝切换。训练和推理场景在不同时间复用相同 GPU 资源,在推理时把高算力高显存的训练卡分给多个业务应用以提高卡利用率和推理效率。

王雁鹏指出,行业平均算力资源利用率达 50%,这是一个比较理想的数据。然而,借助百舸所提供的训推一体技术,能够实现高达 90% 的算力资源利用率。在未来的人工智能应用中,训推一体将成为一种重要的技术趋势。

以上便是百度百舸平台破解大模型训练算力有效利用率不足问题的五大秘技,修炼纯熟之后,万卡集群的GPU算力有效利用率可以达到国际领先水平。但在王雁鹏看来,针对呼之欲出的10万卡超大规模的计算,还有很多工作要做,而百度对于提升算力有效利用率的脚步永不停歇,即将于9月25日举办的一年一度百度云智大会上,百舸还将释放出哪些惊艳的成果,我们拭目以待。

5fd524d3ed0d6ab868d2cc2c0498249f.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值