分享自:

理解大型语言模型训练中的静默数据损坏

期刊:proceedings of the 63rd annual meeting of the association for computational linguistics (volume 1: long papers)

本研究由Jeffrey Ma、Hengzhi Pei、Leonard Lausen和George Karypis共同完成。Jeffrey Ma来自哈佛大学计算机科学系,其余作者均来自亚马逊云科技。这项名为“理解大语言模型训练中的静默数据损坏”的研究成果,发表于第63届计算语言学协会年会的长论文集中,会议于2025年7月27日至8月1日举行。

研究背景 随着大型语言模型规模的不断扩大,训练过程所需的计算资源也急剧增长,这导致了硬件故障风险的显著上升。静默数据损坏是一种特殊的硬件故障现象,指硬件在没有任何明确错误信号的情况下,产生了错误计算结果。这类错误难以被传统监控手段察觉,却可能对长达数周乃至数月的模型训练过程造成潜在污染,影响模型优化的轨迹,甚至导致训练失败。此前已有报告指出,在大规模LLM训练中,SDC事件频繁发生,例如,Meta和Google在训练其大型模型时都曾报告过相关事件。然而,以往的研究大多通过故障注入的方法模拟SDC,或专注于其在CPU系统、自动驾驶或模型推理阶段的影响,对于现实世界中SDC在LLM训练动态中的真实影响,尚缺乏系统、深入的实证研究。因此,本研究的目的是首次系统性地探究现实世界SDC对LLM训练的影响,分析其在不同层面的特征,并为未来的检测和缓解方案提供见解。

研究流程与方法 本研究的核心是设计了一套精密的实验设置,以在三个不同的粒度上(子模块计算、单个优化器步骤、完整训练周期)隔离和分析SDC的影响。研究流程主要包括以下关键步骤:

首先,获取真实的“不健康”节点。这是本研究区别于模拟研究的关键。通过与云计算平台合作,研究者获得了在生产环境中因SDC问题而被自动集群管理系统筛选出来的“不健康”节点。这些节点在出厂测试和集群管理流程的压力测试中(包括通信测试、计算单元测试、小型LLM训练结果对比)被检测出存在问题。同时,研究也使用了通过测试的“健康”节点作为基准。研究者共获取了15个不健康节点和15个健康节点,并确认所有健康节点的计算结果完全一致。

其次,构建确定性对比环境。为确保任何观测到的差异均源于SDC而非其他随机性因素,研究者将每个不健康节点与一个健康节点配对,采用完全相同的训练设置,并利用XLA编译器确保指令执行的完全确定性。

第三,设计并实施同步机制以隔离SDC影响。由于SDC错误可能在计算过程中累积和传播,研究者开发了两种同步机制来精确控制实验条件。 1. 计算同步机制(用于研究子模块计算影响):研究者设计了一种名为“锁步并行”的通信网格。在模型每个子模块(自注意力或前馈网络)的前向计算结束后、结果通过序列并行中的reduce-scatter操作分散到不同张量并行秩之前,将不健康节点上的计算结果与健康节点的“黄金标准”结果进行比较和同步(覆盖)。反向传播过程中,在子模块的反向计算之后、梯度进行reduce-scatter之前,同样对输入梯度进行同步。这样确保了每个子模块的输入总是相同的,从而将SDC的影响隔离在单个子模块的计算内部。 2. 参数同步机制(用于研究单步梯度影响):在每个训练步骤结束后,将健康节点更新后的模型参数广播并覆盖到不健康节点上。这确保了每个优化器步骤开始时,两个节点上的模型参数完全一致,因此梯度上的任何差异都可归因于当前步骤中发生的SDC。

第四,设计并执行分层实验。基于上述机制,研究针对三个研究问题(RQs)设计了具体实验: * 针对RQ1(子模块计算影响):使用计算同步机制,训练一个类似于LLaMA3-8B配置的16层Transformer模型。实验中,他们定义并测量了两种指标:失配频率(输出张量中错误元素的比例)和失配严重性(错误元素相对差异的平均值)。此外,他们还测试了算法容错(一种基于矩阵乘法校验和的SDC检测方法)在检测这些错误方面的有效性。 * 针对RQ2(单步梯度影响):使用参数同步机制,训练一个32层的Transformer模型。在每个优化器步骤后,计算不健康节点与健康节点梯度之间的L2范数差异,并报告最坏情况下的噪声信号比,以量化SDC引起的梯度噪声相对于真实梯度的大小。 * 针对RQ3(累积影响):不使用任何同步机制,允许SDC影响在多个训练步骤中累积。这包括两部分实验:a) 从头开始预训练模型,监测训练损失和模型参数与健康节点基准的差异(参数漂移)。b) 在多个下游问答任务上对预训练模型进行指令微调,评估最终模型性能(测试准确率)以及与基准模型预测的分歧百分比,同时监测微调过程中的训练损失曲线,观察是否存在损失尖峰。

主要研究结果 研究揭示了现实世界SDC在LLM训练中复杂而多样的影响模式,主要结果如下:

子模块计算层面(RQ1),研究发现:1) SDC的影响在不同不健康节点间差异巨大。有些节点(如节点10、11)表现出较高的失配频率,而另一些节点(如节点2、3)在实验设置下未观测到任何SDC。2) SDC的发生在时间上不均匀,常以突发性尖峰的形式出现,而非持续发生。这可能与系统级负载、温度等复合因素有关。3) 某些SDC会导致极大的数值偏差,失配严重性指标显示,有些节点的部分张量元素计算结果相差上百甚至上千倍。4) 传统的ABFT检测方法效果有限。在大多数不健康节点上,ABFT未能有效标记出SDC错误,这可能与SDC发生的低频率、低影响幅度或发生在矩阵乘法计算之外有关。

单步梯度层面(RQ2),研究发现:尽管子模块计算可能出现较大偏差,但在单个优化器步骤内,SDC引起的梯度噪声相对较小。最坏情况下(节点11),梯度差异的L2范数也仅占真实梯度范数的约5.1%。这表明,尽管SDC可能污染中间计算,但其在单步内对整体优化方向的直接影响是有限的。

累积影响层面(RQ3),研究获得了关键且深刻的发现:1) 参数漂移:在预训练实验中,尽管所有不健康节点上的训练损失曲线与健康节点几乎完全重合,但模型参数却逐渐且持续地偏离了基准参数。这表明SDC将模型优化推向了不同的局部最优解,即“收敛于不同的最优值”。2) 损失表面的关键作用:参数漂移的速率在不同节点间相似,尽管它们的SDC频率和严重性不同。这暗示漂移速率更多由损失曲面的尖锐性驱动,SDC更像是一个“触发器”,将优化轨迹推离原路径。3) 下游任务微调中的风险:在大多数情况下,在不健康节点上微调得到的模型性能与健康节点相近,预测分歧率也与仅改变数据洗牌随机种子所产生的分歧率相当。这再次印证了SDC导致模型收敛到不同但性能相近的局部最优。然而,研究也发现了SDC可能带来的严重风险:在一些节点的微调过程中,出现了训练损失尖峰。虽然部分损失尖峰后训练能恢复稳定,但在极端情况下(如节点6在CosmosQA任务上),损失尖峰会完全破坏模型权重,导致最终模型性能崩溃(测试准确率为0)。

结论与意义 本研究的核心结论是,现实世界中的SDC对LLM训练的影响是复杂且“静默”的。虽然多数情况下其对计算和梯度的即时扰动相对较小,且训练损失可能看起来正常,但它们会无声地导致模型参数漂移,收敛到不同的最优点。在极端情况下,SDC可能引发训练损失尖峰,对模型造成毁灭性破坏。SDC的影响模式因节点而异,且与训练任务的损失曲面特性密切相关。

本研究的价值体现在:1) 学术价值:首次系统、实证地刻画了真实SDC在LLM训练全链条中的影响,填补了该领域的研究空白。研究提出的“锁步并行”和参数同步方法,为在不可预测的真实硬件故障环境下进行可控、精细化的研究提供了创新方法论。2) 应用价值:研究结果对大规模AI基础设施和训练系统的设计与运维具有重要指导意义。它揭示了仅监控训练损失不足以发现SDC,强调了开发更精细、可靠的在线检测机制的必要性(例如,基于影子副本的冗余计算比对)。同时,研究指出通过优化算法平滑损失曲面,可能有助于增强训练过程对SDC等扰动的鲁棒性。

研究亮点 本研究的突出亮点在于:1) 研究对象的真实性:直接使用从生产环境中退役的真实故障硬件进行研究,所得结论比基于故障注入的模拟研究更具现实意义和说服力。2) 研究方法的创新性与精细度:通过精心设计的同步机制,成功地将SDC影响隔离到不同粒度进行分析,实现了对复杂训练动态中故障影响的“显微镜”式观察。3) 发现了“静默参数漂移”这一关键现象:即训练损失正常而模型权重却持续偏离,这一发现深刻揭示了SDC潜在危害的隐蔽性,是本研究最重要的发现之一。4) 揭示了损失表面与SDC影响的关联:将硬件故障的影响与模型优化的几何特性联系起来,为从算法层面增强训练鲁棒性提供了新的思路。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com