Command Palette
Search for a command to run...
Blagoev Nikolay Ersoy O\u011fuzhan Chen Lydia Yiyu

摘要
在分散且计算能力较弱的节点(例如,多个现场实例)上训练大语言模型(LLMs),可以降低训练成本并促进模型的民主化。然而,这一过程中不可避免的挑战是由于节点故障和操作者的调度策略导致的节点变动,这可能会使模型的一部分丢失。传统的故障恢复方法包括检查点机制(checkpointing),即定期将整个模型的副本发送到额外的存储设备,以及冗余计算。即使在没有故障的情况下,这些方法也会产生显著的通信和/或计算开销,并且在处理大型模型时扩展性较差。本文提出了一种高效的恢复方法——CheckFree,该方法通过用最接近的邻居阶段的加权平均值来替代故障阶段。与现有技术相比,CheckFree不需要额外的计算或存储资源。然而,由于其依赖于邻居阶段的平均值,因此只能恢复中间阶段的故障。为了进一步提高系统的鲁棒性,我们提出了CheckFree+方法,通过无序流水线执行来容忍首尾阶段的崩溃。借助无序流水线技术,首尾阶段的行为可以通过其相邻阶段来模拟,从而使CheckFree+能够通过简单地从相邻阶段复制权重来进行恢复。为了能够恢复嵌入层和解嵌入层((de)embedding layers),CheckFree+会将这些层复制到相邻阶段,这需要相对较小的存储开销。我们在不同故障频率下对124M至1.5B参数规模的LLaMa模型进行了广泛的评估。当故障率较低或中等(5-10%)时,CheckFree和CheckFree+在实际时间内的收敛速度比检查点机制和冗余计算高出超过12%。我们的两种方案均可通过以下代码实现:https://github.com/gensyn-ai/CheckFree。
代码仓库
gensyn-ai/checkfree
官方
pytorch