大型语言模型(例如 GPT-3)由于在训练和推理过程中的计算需求而需要大量能量。能源使用情况根据模型的大小、任务复杂性、硬件规格和操作持续时间等因素而存在显著差异。
训练这些模型需要大量的计算资源,通常涉及高性能 GPU 或 TPU,导致长时间的大量能量消耗。估计训练像 GPT-3 这样的大型语言模型可能使用相当于多个家庭在几天或几周内消耗的电量。
优化能源消耗至关重要,且需要在不降低模型效率的情况下进行。研究人员旨在减少大语言模型训练中没有吞吐量损失可以消除的能量消耗。分布式执行规划中,每个流水线阶段的计算量是一个重要问题。由于深度神经网络(DNN)是粗粒度的张量运算,计算量各不相同,因此平衡每个阶段是不可能的。
密歇根大学和华盛顿大学的研究人员发现,在训练过程中,并非所有能量消耗都直接对整体训练吞吐量有贡献,可以大幅减少能量消耗而不会减缓训练速度。他们发现能量膨胀的内在和外在原因,并提出了一个名为“Perseus”的单一优化框架来最小化它们。
内在能量膨胀的原因是计算不平衡,而外在能量膨胀是多个流水线并行运行,同步扩展到庞大的数据集进行训练。快于行动迟钝算法的流水线是快速的,浪费了不会影响整体训练吞吐量的能量。
Perseus以高效的方式预先表征整个迭代时间的能量,在正常操作条件下最小化内在能量膨胀。通过次优能量减少,它减轻了外在能量膨胀。它通过精确地减慢流水线中的计算来寻找非阻塞流水线的能量最优迭代时间。
研究人员在各种强扩展配置中使用混合并行性来模拟训练大型模型的迟行者。他们测量了能量膨胀的数量和Perseus的外在能量节省。在计算完成后,其他非迟行者等待迟行者完成计算,导致外在能量膨胀。他们减少了微批次的数量和每个流水线迭代的开头和结尾的流水线气泡比例。这消除了内在能量膨胀,从而减少了能量消耗。
将Perseus集成到训练工作流程中对人工智能发展的未来具有重要影响。他们的工作有潜力极大地增强LLM和GenAI的分布式训练的可持续性。