摘要
在大型基础模型(LFM)的开发过程中,检查点保存训练状态至关重要,以便在发生各种故障或 GPU 资源和并行配置发生变化时恢复训练。此外,保存的检查点被分派到评估任务或在不同的训练阶段(例如,从预训练到后训练)之间转移。所有这些场景都需要将分布式检查点从一种并行性重新切片到另一种并行性。在生产中,不同的 LFM 使用不同的框架和存储后端进行训练,具体取决于模型的大小和训练规模。一个高性能的检查点系统是实现大规模高效检查点管理所必需的。本文介绍了 ByteCheckpoint,一个用于大规模 LFM 训练的工业级检查点系统。ByteCheckpoint 采用了一种与并行性无关的检查点表示,可以实现高效的加载时检查点重新切片。ByteCheckpoint 提倡一种通用的检查点保存/加载工作流程,以适应多个训练框架并支持不同的存储后端。为了确保高 I/O 效率,我们采用了一种全栈方法来优化保存/加载计划生成、检查点管道的重要阶段以及重新切片所需的非规则张量处理。为了保证 ByteCheckpoint 在大规模训练中的可扩展性,我们增强了存储系统,以高效地处理大量检查点 I/O 请求,设计了检查点工作流程内的通信优化,并引入了一套监控工具来分析性能和检测瓶颈。与现有的开源检查点系统 [40, 46] 相比,ByteCheckpoint 显着减少了运行时检查点停顿,平均减少了 54.20 倍。在保存和加载时间方面,ByteCheckpoint 分别实现了高达 9.96 倍和 8.80 倍的改进。