智源社区 2024年07月30日
Llama3.1训练平均3小时故障一次,H100万卡集群好脆弱,气温波动都会影响吞吐量
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Meta 发布的 Llama 3.1 论文揭示了其在 54 天的训练过程中,经历了 466 次任务中断,其中 78% 可能是硬件问题导致,尤其是 GPU 故障,占了 58.7%。Llama 3.1 405 模型是在一个包含 16384 块 Nvidia H100 80GB GPU 集群上进行训练的,H100 高功耗和热应力导致的 HBM3 内存故障是主要原因。虽然团队通过各种手段提高了训练效率,但也表明大规模训练面临着持续的挑战。

🔥 **训练过程中出现大量意外中断**: 在 Llama 3.1 405B 模型的 54 天训练过程中,共出现了 466 次任务中断,其中 419 次是意外中断,占总中断次数的 89.9%。这些意外中断严重影响了训练效率,导致训练时间延长。

💻 **硬件问题是主要原因**: 经过分析,研究团队发现 78% 的意外中断是由硬件问题导致的,其中 58.7% 的中断与 GPU 故障有关。H100 高功耗和热应力导致的 HBM3 内存故障是主要原因。

💡 **团队采取措施提高训练效率**: 为了提高训练效率,研究团队采取了一系列措施,包括减少任务启动和 checkpointing 时间,开发快速诊断和解决问题的工具。例如,他们使用了 PyTorch 的内置 NCCL flight recorder 来快速诊断大规模卡顿和性能问题,并通过在线配置更改来选择性地启用一些计算量更大的跟踪操作和元数据收集。

🌐 **大规模训练面临持续挑战**: 随着 AI 模型规模的不断扩大,大规模训练面临着持续的挑战,例如 GPU 故障、环境因素对性能的影响等。研究团队表示,他们将继续研究解决这些挑战的方法,以提高训练效率和稳定性。

📈 **H100 在大规模训练中的性能表现**: H100 作为英伟达最新一代的 GPU,在训练大规模模型方面表现出色。其高性能和高带宽使其成为大规模训练的理想选择。然而,H100 的高功耗和热应力也带来了挑战,需要研究团队采取措施来解决这些问题。

⚡ **大规模 AI 集群的挑战**: 构建大规模 AI 算力集群是一个复杂的工程问题,不仅仅是购买硬件的问题,还需要考虑电力、网络设计、并行、可靠性等方面的因素。

📊 **未来展望**: 随着 AI 模型规模的不断扩大,大规模训练的挑战也将更加严峻。研究团队将继续努力,探索更高效、更稳定的训练方法,以推动 AI 技术的进步。

每3个小时1次、平均1天8次,Llama 3.1 405B预训练老出故障,H100是罪魁祸首?

最近有人从Meta发布的92页超长Llama 3.1论文中发现了华点:

Llama 3.1在为期54天的预训练期间,经历了共466次任务中断。其中只有47次是计划内的,419次纯属意外,意外中78%已确认或怀疑是硬件问题导致。

而且GPU问题最严重,占了58.7%

Llama 3.1 405模型是在一个含16384块Nvidia H100 80GB GPU集群上进行训练的。虽说针对大规模系统有句老话:唯一确定的就是会出故障。

但这一问题还是引起不少网友关注。

放慢速度,check一下产品吧。


老出故障,咋整?

具体来看,在419次意外中断中,148 次(30.1%)是由各种GPU故障(包括NVLink故障)引起的,72次 (17.2%)可以具体到是由HBM3内存故障引起。

鉴于H100的700W高功耗和热应力,出现这样的结果也并不意外。

有意思的是,54天内只有两次是CPU出现了故障。

除了GPU外的另一半故障由众多因素导致,比如软件Bug、网络电缆等等。

不过最终,Llama 3.1团队保持了超90%的有效训练时间。只有三起故障需要人工大幅介入,其余的都自动化处理了。

那么他们是如何应对的?

为了增加有效训练时间,Llama 3.1团队表示减少了任务启动和checkpointing时间,并开发了一些工具来快速诊断和解决问题。

其中广泛使用了PyTorch的内置NCCL flight recorder(Ansel等人2024年开发),是一个可以把集体元数据和堆栈跟踪记录到一个循环缓冲区里的功能,这样就能快速诊断大规模卡顿和性能问题,特别是跟NCCLX有关的问题。

用这个工具,团队能有效记录每次通信事件和每个集体操作的持续时间,在NCCLX Watchdog或Heartbeat超时时还能自动导出跟踪数据。

还可以根据需要,通过在线配置更改(Tang等人2015年提出的方法)来选择性地启用一些计算量更大的跟踪操作和元数据收集,而不需要重新发布代码或重启任务。

团队表示,在大规模训练中调试问题很复杂,因为网络同时使用了NVLink和RoCE。通过NVLink传输数据通常是通过CUDA内核发出的加载/存储操作来完成的,如果远程GPU或NVLink连接出了问题,往往表现为CUDA内核里的加载/存储操作卡住了,却不会返回明确的错误代码。

而NCCLX通过与PyTorch紧密配合,提高了故障检测和定位的速度和准确性,让PyTorch能够访问NCCLX的内部状态并跟踪相关信息。

虽然无法完全避免NVLink故障导致的卡顿,但系统会监控通信库状态,在发现卡顿时自动超时。

此外,NCCLX还会跟踪每次NCCLX通信的内核和网络活动,并在失败时提供NCCLX集体操作内部状态“快照”,包括所有等级之间已完成和待处理的数据传输。团队通过分析这些数据来调试NCCLX的扩展问题。

有时,硬件问题可能导致某些部分虽然看起来还在运行,但速度变慢,这种情况很难被发现。即使只有一个部分变慢,也可能拖慢数千个其它GPU的速度。

为此团队开发了一些工具,可以优先处理某些可能有问题的进程组的通信。通常只需要调查几个最可疑的对象,就能有效找出那些变慢的部分。

团队还观察到了一个有趣的现象——环境因素对大规模训练性能的影响。在训练Llama 3.1 405B时,吞吐量会根据一天中时间的不同而有1-2%的变化。这是因为中午温度较高,影响了GPU动态电压和频率调节。

在训练过程中,数万个GPU可能会同时增加或减少功耗,比如在所有GPU等待checkpointing或集体通信完成时,或者在整个训练任务启动/关闭时。这种情况发生,可能导致数据中心的瞬时功耗波动达到数十兆瓦,对电网来说是个不小的考验。

团队最后还表示:

随着未来更大的Llama模型扩展训练规模,这一挑战将持续存在。

AI集群问题正待破壁

Meta2022年首次分享了其AI研究超级集群(RSC)的详细信息,当时拥有16000个NVIDIA A100 GPU,帮助其构建了第一代AI模型,在Llama初代和Llama 2开发中都发挥了重要作用。

来自Meta

今年三月份,Meta又公开了24576个NVIDIA H100 GPU的AI集群,支持Llama 3及之后模型。

更是定下了到今年年底增加350000个NVIDIA H100 GPU的目标,作为整体算力的一部分(整体算力近600000个H100 GPU)

这么大的规模,emmm可不是个持续性的挑战嘛。当然,大规模AI集群会给模型训练造成故障是一个有些“远古”的问题,很早之前就有相关研究。

H100本身什么含金量无需多言。

在去年最新MLPerf训练基准测试中,英伟达H100集群,横扫八项测试,全部创下新纪录,并且在大语言模型任务中表现尤为突出。

11分钟内训练一遍GPT-3,8秒训完BERT。在大语言模型任务中,H100集群的加速性能逼近线性增长。即随着集群处理器数量增加,加速效果也几乎同比增加。

意味着在集群内GPU之间的通信效率非常高。

除此之外,H100还完成了推荐算法、CV、医学图像识别以及语音识别等任务,是唯一一个参加8项测试的集群。

不过,SemiAnalysis一个月前的一篇文章指出,构建大规模AI算力集群非常复杂,远远不只是有没有钱买卡的事。

在电力、网络设计、并行、可靠性等很多方面都面临局限。


参考链接:
[1]https://ai.meta.com/research/publications/the-llama-3-herd-of-models/

[2]https://engineering.fb.com/2024/03/12/data-center-engineering/building-metas-genai-infrastructure/
[3]https://www.semianalysis.com/p/100000-h100-clusters-power-network

量子位年度AI主题策划正在征集中!

欢迎投稿专题 一千零一个AI应365行AI落地方案

或与我们分享你在寻找的AI产品,或发现的AI新动向

点这里?关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~ 

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Llama 3.1 大模型训练 GPU 故障 H100 AI 集群
相关文章