结论先行:训练必须定期保存checkpoint,包括模型权重、优化器状态、训练步数。实例异常中断后从最近checkpoint恢复,不要从头重跑。
一、checkpoint存什么
模型权重、优化器状态、学习率调度器状态、当前步数。四项缺一不可,缺了恢复后训练会重头开始或loss异常。
二、保存策略
每N步保存一次,通常每100到500步。保留最近3个checkpoint,自动删除更早的。重要节点额外保存一份到对象存储。
三、恢复训练
加载checkpoint后,模型、优化器、调度器全部load_state_dict,epoch和step从保存值继续。注意随机种子要固定才能复现。
四、常见问题
checkpoint太大占满磁盘,定期清理旧版本。保存时直接断电会损坏文件,用atomic write先写临时文件再rename。
补充:训练前先把checkpoint路径挂在数据盘上,不要写在系统盘,否则系统盘满了训练直接崩。多卡训练时只在主卡进程保存,其他卡跳过,避免重复写。
大模型训练建议定期保存checkpoint到对象存储,GPU实例可在GPU算力平台选择。




